Index: trunk/src/draw_composite.c =================================================================== --- trunk/src/draw_composite.c (revision 10310) +++ trunk/src/draw_composite.c (revision 10311) @@ -207,7 +207,8 @@ /* Draw a layer group with fake or real compositing */ static void comp_draw_layer(comp_ctx_t *ctx, void (*draw_auto)(comp_ctx_t *ctx, void *data), void *auto_data) { - if (pcb_draw_layergrp_is_comp(ctx->grp)) + int enable_fake = (pcb_gui != NULL) && (pcb_gui->enable_fake_composite); + if (!enable_fake || pcb_draw_layergrp_is_comp(ctx->grp)) comp_draw_layer_real(ctx, draw_auto, auto_data); else comp_draw_layer_fake(ctx, draw_auto, auto_data); Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 10310) +++ trunk/src/hid.h (revision 10311) @@ -195,6 +195,14 @@ punches through everything. */ unsigned holes_after:1; + /* If set, enable the fake composite layer draw optimization, that is: + if all layers in a compositing layer group are positive, no composition + is done but layers are just drawn. Useful for software render HIDs with + no transluency; causes problems with transluent rendering: different + layers within the same group will be darker on overlap */ + unsigned enable_fake_composite:1; + + /* lesstif allows positive AND negative drawing in HID_MASK_CLEAR. gtk only allows negative drawing. using the mask is to get rat transparency */ Index: trunk/src_plugins/hid_gtk2_gdk/gtkhid-main.c =================================================================== --- trunk/src_plugins/hid_gtk2_gdk/gtkhid-main.c (revision 10310) +++ trunk/src_plugins/hid_gtk2_gdk/gtkhid-main.c (revision 10311) @@ -47,6 +47,7 @@ ghid_win32_init(); ghid_glue_hid_init(>k2_gdk_hid); + gtk2_gdk_hid.enable_fake_composite = 1; ghid_glue_common_init(); gtk2_gdk_hid.parse_arguments = gtk2_gdk_parse_arguments; Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 10310) +++ trunk/src_plugins/hid_lesstif/main.c (revision 10311) @@ -3730,6 +3730,7 @@ lesstif_hid.gui = 1; lesstif_hid.poly_before = 1; lesstif_hid.can_mask_clear_rats = 1; + lesstif_hid.enable_fake_composite = 1; lesstif_hid.get_export_options = lesstif_get_export_options; lesstif_hid.do_export = lesstif_do_export;