diff options
| author | Maxim Nikonov <maxim.nikonov@mlibren.com> | 2026-02-06 23:12:26 +0500 |
|---|---|---|
| committer | Maxim Nikonov <maxim.nikonov@mlibren.com> | 2026-02-06 23:12:26 +0500 |
| commit | 2e883d9bc3b20bf4c27036bd3b4ccb7f4dccb883 (patch) | |
| tree | 360eac846746271113be34ae7c1e215aadc2555f /src/drivers | |
| parent | 4a14a699dd1296cfbcba8d44f9746fa993e7f4bd (diff) | |
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx index 6c13f643f..9d54b02c8 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx @@ -542,9 +542,9 @@ static void innards(const uchar *buf, int X, int Y, int W, int H, }} xi.data = (char *)buffer; xi.bytes_per_line = linesize*sizeof(STORETYPE); + int j; if (buf) { buf += delta*dx+linedelta*dy; - int j; for (j =0; j<h; ) { STORETYPE *to = buffer; int k; @@ -677,9 +677,8 @@ static void alpha_blend(Fl_RGB_Image *img, int X, int Y, int W, int H, int cx, i if (img->d() == 2) { // Composite grayscale + alpha over RGB... - int y; - for (y = H; y > 0; y--, srcptr+=srcskip) - int x; + int x, y; + for (y = H; y > 0; y--, srcptr+=srcskip) { for (x = W; x > 0; x--) { srcg = *srcptr++; srca = *srcptr++; @@ -701,9 +700,11 @@ static void alpha_blend(Fl_RGB_Image *img, int X, int Y, int W, int H, int cx, i *dstptr++ = (srcg_pm + dstb * dsta) >> 8; } } + } } else { // Composite RGBA over RGB... - for (y = H; y > 0; y--, srcptr+=srcskip) + int x, y; + for (y = H; y > 0; y--, srcptr+=srcskip) { for (x = W; x > 0; x--) { srcr = *srcptr++; srcg = *srcptr++; @@ -726,6 +727,7 @@ static void alpha_blend(Fl_RGB_Image *img, int X, int Y, int W, int H, int cx, i *dstptr++ = (srcb * srca + dstb * dsta) >> 8; } } + } } fl_draw_image(dst, X, Y, W, H, 3, 0); |
