summaryrefslogtreecommitdiff
path: root/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx')
-rw-r--r--src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx b/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
index 5e0b636f5..e55e69583 100644
--- a/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
+++ b/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
@@ -27,7 +27,6 @@
#include <windows.h>
class Fl_GDI_Image_Surface_Driver : public Fl_Image_Surface_Driver {
- friend class Fl_Image_Surface;
virtual void end_current_(Fl_Surface_Device*);
public:
Fl_Surface_Device *previous;
@@ -51,8 +50,14 @@ Fl_Image_Surface_Driver *Fl_Image_Surface_Driver::newImageSurfaceDriver(int w, i
Fl_GDI_Image_Surface_Driver::Fl_GDI_Image_Surface_Driver(int w, int h, int high_res, Fl_Offscreen off) : Fl_Image_Surface_Driver(w, h, high_res, 0) {
previous = 0;
+ float d = fl_graphics_driver->scale();
+ if (!off && d != 1 && high_res) {
+ w = int(w*d);
+ h = int(h*d);
+ }
offscreen = off ? off : CreateCompatibleBitmap( (fl_graphics_driver->gc() ? (HDC)fl_graphics_driver->gc() : fl_GetDC(0) ) , w, h);
driver(new Fl_GDI_Graphics_Driver);
+ if (d != 1 && high_res) driver()->scale(d);
_sgc = NULL;
}