… | |
… | |
1173 | && pmap_depth == target->depth) |
1173 | && pmap_depth == target->depth) |
1174 | flags = flags & ~isInvalid; |
1174 | flags = flags & ~isInvalid; |
1175 | } |
1175 | } |
1176 | # endif |
1176 | # endif |
1177 | |
1177 | |
1178 | XImage *result = NULL; |
|
|
1179 | # ifdef HAVE_AFTERIMAGE |
1178 | # ifdef HAVE_AFTERIMAGE |
1180 | if (original_asim |
1179 | if (original_asim |
1181 | || (background_flags & transpTransformations) != (flags & transpTransformations)) |
1180 | || (background_flags & transpTransformations) != (flags & transpTransformations)) |
1182 | { |
1181 | { |
1183 | if (render_asim (background_flags)) |
1182 | if (render_asim (background_flags)) |
1184 | flags = flags & ~isInvalid; |
1183 | flags = flags & ~isInvalid; |
1185 | } |
1184 | } |
1186 | else if (background_flags && pmap_depth != target->depth) |
1185 | # endif |
1187 | result = XGetImage (target->dpy, pixmap, 0, 0, pmap_width, pmap_height, AllPlanes, ZPixmap); |
|
|
1188 | |
1186 | |
1189 | # elif !XFT /* our own client-side tinting */ |
1187 | XImage *result = NULL; |
1190 | |
|
|
1191 | /* ATTENTION: We ASSUME that XFT will let us do all the tinting necessary server-side. |
|
|
1192 | This may need to be changed in need_client_side_rendering() logic is altered !!! */ |
|
|
1193 | |
1188 | |
1194 | if (background_flags && (flags & isInvalid)) |
1189 | if (background_flags && (flags & isInvalid)) |
1195 | { |
1190 | { |
1196 | result = XGetImage (target->dpy, pixmap, 0, 0, pmap_width, pmap_height, AllPlanes, ZPixmap); |
1191 | result = XGetImage (target->dpy, pixmap, 0, 0, pmap_width, pmap_height, AllPlanes, ZPixmap); |
1197 | |
1192 | |
|
|
1193 | # if !defined(HAVE_AFTERIMAGE) && !XFT |
|
|
1194 | /* our own client-side tinting */ |
|
|
1195 | /* ATTENTION: We ASSUME that XFT will let us do all the tinting necessary server-side. |
|
|
1196 | This may need to be changed in need_client_side_rendering() logic is altered !!! */ |
1198 | if (result != NULL && !(background_flags & transpPmapTinted) && (flags & tintNeeded)) |
1197 | if (result != NULL && !(background_flags & transpPmapTinted) && (flags & tintNeeded)) |
1199 | { |
1198 | { |
1200 | rgba c (rgba::MAX_CC,rgba::MAX_CC,rgba::MAX_CC); |
1199 | rgba c (rgba::MAX_CC,rgba::MAX_CC,rgba::MAX_CC); |
1201 | if (flags & tintSet) |
1200 | if (flags & tintSet) |
1202 | tint.get (c); |
1201 | tint.get (c); |
1203 | ShadeXImage (target, result, shade, c.r, c.g, c.b); |
1202 | ShadeXImage (target, result, shade, c.r, c.g, c.b); |
1204 | } |
1203 | } |
|
|
1204 | # endif |
1205 | } |
1205 | } |
1206 | # endif /* HAVE_AFTERIMAGE */ |
|
|
1207 | |
1206 | |
1208 | if (result) |
1207 | if (result) |
1209 | { |
1208 | { |
1210 | GC gc = XCreateGC (target->dpy, target->vt, 0UL, NULL); |
1209 | GC gc = XCreateGC (target->dpy, target->vt, 0UL, NULL); |
1211 | |
1210 | |