Enhancing RTSurface: 'surface' now private

This commit is contained in:
Hombre
2019-03-19 20:45:12 +01:00
parent 28b785682a
commit d059caa7de
4 changed files with 13 additions and 3 deletions

View File

@@ -896,7 +896,7 @@ void OPIcon::drawImage(Cairo::RefPtr<RTSurface> &img,
rtengine::Coord tl, br; // Coordinate of the rectangle in the CropBuffer coordinate system rtengine::Coord tl, br; // Coordinate of the rectangle in the CropBuffer coordinate system
drivenPointToRectangle(pos, tl, br, imgW, imgH); drivenPointToRectangle(pos, tl, br, imgW, imgH);
cr->set_source(img->surface, tl.x, tl.y); cr->set_source(img->get(), tl.x, tl.y);
cr->set_line_width(0.); cr->set_line_width(0.);
cr->rectangle(tl.x, tl.y, imgW, imgH); cr->rectangle(tl.x, tl.y, imgW, imgH);
cr->fill(); cr->fill();

View File

@@ -205,7 +205,7 @@ void LWButton::redraw (Cairo::RefPtr<Cairo::Context> context)
} }
if (icon) { if (icon) {
context->set_source (icon->surface, xpos + dilat, ypos + dilat); context->set_source (icon->get(), xpos + dilat, ypos + dilat);
context->paint (); context->paint ();
} }
} }

View File

@@ -132,3 +132,8 @@ bool RTSurface::hasSurface() const
{ {
return surface ? true : false; return surface ? true : false;
} }
const Cairo::RefPtr<Cairo::ImageSurface>& RTSurface::get() const
{
return surface;
}

View File

@@ -26,12 +26,15 @@
*/ */
class RTSurface : public RTScalable class RTSurface : public RTScalable
{ {
private:
static double dpiBack; // used to keep track of master dpi change static double dpiBack; // used to keep track of master dpi change
static int scaleBack; // used to keep track of master scale change static int scaleBack; // used to keep track of master scale change
Cairo::RefPtr<Cairo::ImageSurface> surface;
void changeImage (Glib::ustring imageName); void changeImage (Glib::ustring imageName);
public: public:
Cairo::RefPtr<Cairo::ImageSurface> surface;
RTSurface (); RTSurface ();
RTSurface (const RTSurface& other); RTSurface (const RTSurface& other);
@@ -42,6 +45,8 @@ public:
int getHeight() const; int getHeight() const;
bool hasSurface() const; bool hasSurface() const;
const Cairo::RefPtr<Cairo::ImageSurface>& get() const;
static void init(); static void init();
static void updateImages (); static void updateImages ();
static void setDPInScale (const double newDPI, const int newScale); static void setDPInScale (const double newDPI, const int newScale);