summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-09-11 16:06:19 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-09-11 16:06:19 +0200
commit000807cc1d1a1c2f00274763f3e8e24145f1af00 (patch)
tree1b99e657246d079ef91e8e8f94943a88ad580d27
parentcb387bd6ff0489bc1be8896ab7d90e17750874e3 (diff)
Fix use of Xrender extension with old, 16-bit framebuffers.
Subject "Bug in 1.4 Displaying PNG under x64 Kernel x86 app." in fltk.general contains a report by Darren Legge that presents the problem, and a later post stating the code modification does fix the problem.
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx3
1 files changed, 2 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 1c9e9e6cb..adceeae4f 100644
--- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
@@ -776,8 +776,9 @@ int Fl_Xlib_Graphics_Driver::scale_and_render_pixmap(Fl_Offscreen pixmap, int de
memset(&srcattr, 0, sizeof(XRenderPictureAttributes));
static XRenderPictFormat *fmt24 = XRenderFindStandardFormat(fl_display, PictStandardRGB24);
static XRenderPictFormat *fmt32 = XRenderFindStandardFormat(fl_display, PictStandardARGB32);
+ static XRenderPictFormat *dstfmt = XRenderFindVisualFormat(fl_display, fl_visual->visual);
Picture src = XRenderCreatePicture(fl_display, pixmap, has_alpha ?fmt32:fmt24, 0, &srcattr);
- Picture dst = XRenderCreatePicture(fl_display, fl_window, fmt24, 0, &srcattr);
+ Picture dst = XRenderCreatePicture(fl_display, fl_window, dstfmt, 0, &srcattr);
if (!src || !dst) {
fprintf(stderr, "Failed to create Render pictures (%lu %lu)\n", src, dst);
return 0;