summaryrefslogtreecommitdiff
path: root/src/drivers/Xlib
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/Xlib')
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
index a7b2ec560..ed30b2e36 100644
--- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
@@ -828,7 +828,11 @@ int Fl_Xlib_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, int WP,
const Fl_Region clipr = fl_clip_region();
if (clipr)
XRenderSetPictureClipRegion(fl_display, dst, clipr);
- XTransform mat = {rgb->w()/float(WP),0,0,0,rgb->h()/float(HP),0,0,0,1};
+ XTransform mat = {{
+ { XDoubleToFixed( rgb->w()/double(WP) ), XDoubleToFixed( 0 ), XDoubleToFixed( 0 ) },
+ { XDoubleToFixed( 0 ), XDoubleToFixed( rgb->h()/double(HP) ), XDoubleToFixed( 0 ) },
+ { XDoubleToFixed( 0 ), XDoubleToFixed( 0 ), XDoubleToFixed( 1 ) }
+ }};
XRenderSetPictureTransform(fl_display, src, &mat);
XRenderComposite(fl_display, rgb->d()%2==0 ? PictOpOver: PictOpSrc, src, None, dst, 0, 0, 0, 0, XP, YP, WP, HP);
XRenderFreePicture(fl_display, src);