[cairo-bugs] [Bug 4618] New: BadMatch error when drawing gradient on rgba GtkWindow

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Sep 28 01:33:24 PDT 2005


Please do not reply to this email: if you want to comment on the bug, go to    
       
the URL shown below and enter yourcomments there.     
   
https://bugs.freedesktop.org/show_bug.cgi?id=4618          
     
           Summary: BadMatch error when drawing gradient on rgba GtkWindow
           Product: cairo
           Version: 1.1.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: xlib backend
        AssignedTo: cworth at cworth.org
        ReportedBy: remenic at gmail.com
         QAContact: cairo-bugs at cairographics.org


First off, I'm not sure if this bug is caused by cairo or GTK+. Hopefully
someone is able to tell after reading this report.

With GTK+ 2.8 it is possible to create a window with an RGBA colormap when using
the COMPOSITE extension plus a Compositor. This means that the window supports
per pixel alpha transparency.

I have discovered that drawing a linear gradient on such a surface (created with
gdk_cairo_create (widget->surface) will cause a "BadMatch" error. For some
reason this ONLY happens with patterns (tried only linear). It doesn't matter if
I use fill or stroke.

I have an older version of Xephyr as well in which the test app seems to work
just fine. Could it be that there's an extension missing for drawing gradients?

The backtrace I get is this:
Breakpoint 2, gdk_x_error (display=0xbfc38cb0, error=0xbfc38cb0) at
gdkmain-x11.c:599
599       if (error->error_code)
(gdb) bt
#0  gdk_x_error (display=0xbfc38cb0, error=0xbfc38cb0) at gdkmain-x11.c:599
#1  0xb77fb733 in _XError () from /usr/lib/libX11.so.6
#2  0xb77f9d0b in _XReply () from /usr/lib/libX11.so.6
#3  0xb77f1965 in XSync () from /usr/lib/libX11.so.6
#4  0xb77f1a27 in XSync () from /usr/lib/libX11.so.6
#5  0xb77ea4f7 in XPutImage () from /usr/lib/libX11.so.6
#6  0xb7aa449e in _draw_image_surface (surface=0x807f790, image=0x8080a68,
dst_x=10, dst_y=10) at cairo-xlib-surface.c:700
#7  0xb7aa45a8 in _cairo_xlib_surface_release_dest_image
(abstract_surface=0x807f790, interest_rect=0xbfc39004, image=0x8080a68, 
    image_rect=0xbfc39010, image_extra=0x0) at cairo-xlib-surface.c:766
#8  0xb7a97276 in _cairo_surface_release_dest_image (surface=0x807f790,
interest_rect=0xbfc39004, image=0x8080a68, 
    image_rect=0xbfc39010, image_extra=0x0) at cairo-surface.c:661
#9  0xb7a97422 in _fallback_fini (state=0xbfc39000) at cairo-surface.c:771
#10 0xb7a974f5 in _fallback_composite (operator=CAIRO_OPERATOR_OVER,
src=0xbfc39290, mask=0x0, dst=0x807f790, src_x=10, src_y=10, 
    mask_x=10, mask_y=10, dst_x=10, dst_y=10, width=20, height=20) at
cairo-surface.c:806
#11 0xb7a9764e in _cairo_surface_composite (operator=CAIRO_OPERATOR_OVER,
src=0xbfc39290, mask=0x0, dst=0x807f790, src_x=10, 
    src_y=10, mask_x=10, mask_y=10, dst_x=10, dst_y=10, width=20, height=20) at
cairo-surface.c:851
#12 0xb7a8c11c in _composite_trap_region (clip=0x807f8fc, src=0xbfc39290,
operator=CAIRO_OPERATOR_OVER, dst=0x807f790, 
    trap_region=0x807fa80, extents=0xbfc39238) at cairo-gstate.c:1336
#13 0xb7a8c566 in _cairo_surface_clip_and_composite_trapezoids (src=0xbfc39290,
operator=CAIRO_OPERATOR_OVER, dst=0x807f790, 
    traps=0xbfc39350, clip=0x807f8fc, antialias=CAIRO_ANTIALIAS_DEFAULT) at
cairo-gstate.c:1505
#14 0xb7a8c686 in _cairo_gstate_clip_and_composite_trapezoids (gstate=0x807f878,
traps=0xbfc39350) at cairo-gstate.c:1544
#15 0xb7a8c7b1 in _cairo_gstate_fill (gstate=0x807f878, path=0x807f848) at
cairo-gstate.c:1590
#16 0xb7a86941 in *INT_cairo_fill_preserve (cr=0x807f840) at cairo.c:1598
#17 0xb7a86907 in cairo_fill (cr=0x807f840) at cairo.c:1576
#18 0x08048cb1 in on_alpha_window_expose ()
#19 0xb7d40374 in _gtk_marshal_BOOLEAN__BOXED (closure=0x80779a0,
return_value=0xbfc39510, n_param_values=2, 
    param_values=0xbfc39650, invocation_hint=0xbfc39538, marshal_data=0x0) at
gtkmarshalers.c:83
#20 0xb7a51365 in IA__g_closure_invoke (closure=0x80779a0,
return_value=0xbfc38cb0, n_param_values=3217263792, 
    param_values=0xbfc38cb0, invocation_hint=0xbfc38cb0) at gclosure.c:490
#21 0xb7a6456f in signal_emit_unlocked_R (node=0x8066a90, detail=0,
instance=0x806bd98, emission_return=0xbfc395e0, 
    instance_and_params=0xbfc39650) at gsignal.c:2490
#22 0xb7a633d8 in IA__g_signal_emit_valist (instance=0x806bd98, signal_id=0,
detail=0, 
    var_args=0xbfc397e0 "ø\227ÿ\200\230ÿ\b\230ÿtþä·ø\227ÿ") at gsignal.c:2259
#23 0xb7a63896 in IA__g_signal_emit (instance=0xbfc38cb0, signal_id=3217263792,
detail=3217263792) at gsignal.c:2293
#24 0xb7e50084 in gtk_widget_event_internal (widget=0x806bd98, event=0xbfc39880)
at gtkwidget.c:3735
#25 0xb7d3d47f in IA__gtk_main_do_event (event=0xbfc39880) at gtkmain.c:1355
#26 0xb7ba2c3e in gdk_window_process_updates_internal (window=0x80790b8) at
gdkwindow.c:2215
#27 0xb7ba2d8e in IA__gdk_window_process_all_updates () at gdkwindow.c:2268
#28 0xb7ba29f5 in gdk_window_update_idle (data=0x0) at gdkwindow.c:2136
#29 0xb79e6fc3 in g_idle_dispatch (source=0x807ee78, callback=0x80561a0,
user_data=0xbfc38cb0) at gmain.c:3813
#30 0xb79e3fc2 in g_main_dispatch (context=0x8062460) at gmain.c:1934
#31 0xb79e5038 in IA__g_main_context_dispatch (context=0x8062460) at gmain.c:2484
#32 0xb79e5370 in g_main_context_iterate (context=0x8062460, block=1,
dispatch=1, self=0x806fab0) at gmain.c:2565
#33 0xb79e5913 in IA__g_main_loop_run (loop=0x807ebb0) at gmain.c:2769
#34 0xb7d3cd43 in IA__gtk_main () at gtkmain.c:976
#35 0x08048e66 in main ()

Software used:
Xorg 6.8.2
Nvidia GLX 1.0.7174
Cairo CVS (Sept. 28, 1:04am CEST)
Metacity 2.10
xcompmgr CVS

If more details are needed, then let me know.
I'll attach the GTK+ crash app, but it requires the COMPOSITE extensions as well
as a Compositor (xcompmgr) running.          
     
     
--           
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email         
     
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.


More information about the cairo-bugs mailing list