Re: [cairo] Color fonts



Thanks.Β  That looks unrelated.Β  Please file a bug against Pango.Β  Can you try with Pango master?

On Sat, Jul 29, 2017 at 6:05 PM, <iofelben gmail com> wrote:
Another crash:

Paste this into gedit:

Β πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š ✊ ✌ πŸ‘‹ βœ‹ πŸ‘ πŸ‘† πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ ☝ πŸ‘ πŸ’ͺ πŸ’… ⬇ β¬… ➑ β†— β†– β†˜ ↙ ↔
↕ πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ ↩ β†ͺ βͺ ⏩ ⏫ ⏬ ‡ ‴ πŸ”€ πŸ” πŸ”‚ πŸ” πŸ”š πŸ”™ πŸ”› πŸ”œ πŸ”ƒ πŸ”Ί πŸ”» ⬆

and then select it


Pango:ERROR:pango-glyph-item.c:320:pango_glyph_item_iter_next_cluster:
assertion failed: (iter->end_char <= item->num_chars)


#0Β  0x00007fd51d29a68b in raise () at /lib64/libc.so.6
#1Β  0x00007fd51d29c417 in abort () at /lib64/libc.so.6
#2Β  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-
2.0.so.0
#3Β  0x00007fd51d8da2fa in g_assertion_message_expr () at
/lib64/libglib-2.0.so.0
#4Β  0x00007fd51f178076 inΒ  () at /lib64/libpango-1.0.so.0
#5Β  0x00007fd51f3b110f in pango_cairo_renderer_draw_glyph_item () at
/lib64/libpangocairo-1.0.so.0
(gdb) bt 300
#0Β  0x00007fd51d29a68b in raise () at /lib64/libc.so.6
#1Β  0x00007fd51d29c417 in abort () at /lib64/libc.so.6
#2Β  0x00007fd51d8da26d in g_assertion_message () at /lib64/libglib-
2.0.so.0
#3Β  0x00007fd51d8da2fa in g_assertion_message_expr () at
/lib64/libglib-2.0.so.0
#4Β  0x00007fd51f178076 inΒ  () at /lib64/libpango-1.0.so.0
#5Β  0x00007fd51f3b110f in pango_cairo_renderer_draw_glyph_item () at
/lib64/libpangocairo-1.0.so.0
#6Β  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at
/lib64/libpango-1.0.so.0
#7Β  0x00007fd51f3b15fd in pango_cairo_show_glyph_item () at
/lib64/libpangocairo-1.0.so.0
#8Β  0x00007fd51fba7816 in gtk_text_renderer_draw_glyph_item
(renderer=0x39caad6040, text=0x39c9fe7c50 "πŸ‘ πŸ‘Ž πŸ‘Œ πŸ‘Š ✊ ✌ πŸ‘‹ βœ‹ πŸ‘ πŸ‘†
πŸ‘‡ πŸ‘‰ πŸ‘ˆ πŸ™Œ πŸ™ ☝ πŸ‘ πŸ’ͺ πŸ’… ⬇ β¬… ➑ β†— β†– β†˜ ↙ ↔ ↕ πŸ”„ β—€ β–Ά πŸ”Ό πŸ”½ ↩ β†ͺ βͺ ⏩ ⏫ ⏬
Β \265 ‴ πŸ”€ πŸ” πŸ”‚", <incomplete sequence \360\237\224>.
.., glyph_item=0x39ca1cf810, x=932864, y=14336) at gtktextdisplay.c:334
#9Β  0x00007fd51f184e1e in pango_renderer_draw_glyph_item () at
/lib64/libpango-1.0.so.0
#10 0x00007fd51f1858b1 in pango_renderer_draw_layout_line () at
/lib64/libpango-1.0.so.0
#11 0x00007fd51fba817a in render_para (selection_end_index=-1,
selection_start_index=-1, line_display=<optimized out>,
text_renderer=<optimized out>) at gtktextdisplay.c:705
#12 0x00007fd51fba817a in gtk_text_layout_draw (layout=0x39ca4e5d40, wi
dget=widget@entry=0x39ca5e8610, cr=cr@entry=0x39cab3ab70, widgets=widge
ts@entry=0x0)
Β  Β  at gtktextdisplay.c:942
#13 0x00007fd51fbc6504 in gtk_text_view_paint (cr=0x39cab3ab70,
widget=0x39ca5e8610) at gtktextview.c:5867
#14 0x00007fd51fbc6504 in draw_text (cr=0x39cab3ab70,
user_data=0x39ca5e8610) at gtktextview.c:5908
#15 0x00007fd51fb333f0 in _gtk_pixel_cache_repaint
(user_data=0x39ca5e8610, canvas_rect=0x7ffc9f295740,
view_rect=0x7ffc9f295730, draw=0x7fd51fbc6290 <draw_text>,
window=0x39caae2340, cache=0x39ca5e0d00) at gtkpixelcache.c:357
#16 0x00007fd51fb333f0 in _gtk_pixel_cache_draw (cache=0x39ca5e0d00, cr
=cr@entry=0x39ca4fc8b0, window=window@entry=0x39caae2340, view_rect=vie
w_rect@entry=0x7ffc9f295730, canvas_rect=canvas_rect@entry=0x7ffc9f2957
40, draw=draw@entry=0x7fd51fbc6290 <draw_text>, user_data=0x39ca5e8610)
at gtkpixelcache.c:447
#17 0x00007fd51fbcb970 in gtk_text_view_draw (widget=0x39ca5e8610,
cr=0x39ca4fc8b0) at gtktextview.c:5998
#18 0x00007fd52040db2d in gtk_source_view_draw () at
/lib64/libgtksourceview-3.0.so.1
#19 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#20 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca32f7f0, child=0x39ca5e8610, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#21 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca32f7f0,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#22 0x00007fd51fb6164b in gtk_scrolled_window_render (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, data="" at
gtkscrolledwindow.c:2078
#23 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#24 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca4095e0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#25 0x00007fd51fb5f931 in gtk_scrolled_window_draw (widget=<optimized
out>, cr=<optimized out>) at gtkscrolledwindow.c:2989
#26 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#27 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05c2c0, child=0x39ca32f7f0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#28 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05c2c0, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#29 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#30 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#31 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca409660,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#32 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#33 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#34 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca49a3c0, child=0x39ca05c2c0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#35 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca49a3c0,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#36 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#37 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca3a9870, child=0x39ca49a3c0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#38 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca3a9870, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#39 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data="" at gtkgrid.c:1713
#40 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#41 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b260,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#42 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,
cr=<optimized out>) at gtkgrid.c:1722
#43 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#44 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b9660, child=0x39ca3a9870, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#45 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b9660,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#46 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#47 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39c9fcdf10, child=0x39ca2b9660, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#48 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39c9fcdf10, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#49 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#50 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#51 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca22b4e0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#52 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#53 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#54 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2ba260, child=0x39c9fcdf10, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#55 0x00007fd51fb03bb2 in gtk_notebook_draw_stack (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtknotebook.c:2515
#56 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#57 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=gadget@entry=0x39
ca1bd7a0, cr=cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877
#58 0x00007fd51f9c7d08 in gtk_box_gadget_draw (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>)
Β  Β  at gtkboxgadget.c:512
#59 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca258b30, cr=
cr@entry=0x39ca4fc8b0) at gtkcssgadget.c:877
#60 0x00007fd51fb0639c in gtk_notebook_draw (widget=<optimized out>,
cr=0x39ca4fc8b0) at gtknotebook.c:2530
#61 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#62 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b2a40, child=0x39ca2ba260, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#63 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b2a40, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#64 0x00007fd51fa93324 in gtk_grid_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data="" at gtkgrid.c:1713
#65 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#66 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd620,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#67 0x00007fd51fa94461 in gtk_grid_draw (widget=<optimized out>,
cr=<optimized out>) at gtkgrid.c:1722
#68 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#69 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05bbc0, child=0x39ca2b2a40, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#70 0x00007fd51fb12e50 in gtk_paned_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data="" at gtkpaned.c:1818
#71 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#72 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1bd1a0,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#73 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,
cr=<optimized out>) at gtkpaned.c:1782
#74 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#75 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05cf20, child=0x39ca05bbc0, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#76 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cf20, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#77 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#78 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#79 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca236f10,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#80 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#81 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#82 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05b800, child=0x39ca05cf20, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#83 0x00007fd51fb12dc0 in gtk_paned_render (gadget=<optimized out>,
cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>, width=<optimized
out>, height=<optimized out>, data="" at gtkpaned.c:1832
#84 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#85 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de400,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#86 0x00007fd51fb12c61 in gtk_paned_draw (widget=<optimized out>,
cr=<optimized out>) at gtkpaned.c:1782
#87 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#88 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca05cb00, child=0x39ca05b800, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#89 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca05cb00, cr=c
r@entry=0x39ca4fc8b0) at gtkcontainer.c:3658
#90 0x00007fd51f9c3b14 in gtk_box_draw_contents (gadget=<optimized
out>, cr=0x39ca4fc8b0, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>, unused=0x0) at
gtkbox.c:448
#91 0x00007fd51fa16b3d in gtk_css_custom_gadget_draw (gadget=<optimized
out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>,
width=<optimized out>, height=<optimized out>) at
gtkcsscustomgadget.c:159
#92 0x00007fd51fa1b8a3 in gtk_css_gadget_draw (gadget=0x39ca1de200,
cr=0x39ca4fc8b0) at gtkcssgadget.c:877
#93 0x00007fd51f9c64b1 in gtk_box_draw (widget=<optimized out>,
cr=<optimized out>) at gtkbox.c:457
#94 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#95 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca2b1860, child=0x39ca05cb00, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#96 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca2b1860,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#97 0x00007fd51fc2d7cb in gtk_widget_draw_internal (widget=widget@entry
=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0, clip_to_size=clip_to_size@entr
y=1) at gtkwidget.c:7017
#98 0x00007fd51fa11ad8 in gtk_container_propagate_draw (container=conta
iner@entry=0x39ca18d030, child=0x39ca2b1860, cr=cr@entry=0x39ca4fc8b0)
at gtkcontainer.c:3838
#99 0x00007fd51fa11bc2 in gtk_container_draw (widget=0x39ca18d030,
cr=0x39ca4fc8b0) at gtkcontainer.c:3658
#100 0x00007fd51fc3b5b3 in gtk_window_draw (widget=0x39ca18d030,
cr=0x39ca4fc8b0) at gtkwindow.c:10214
#101 0x00007fd51fc2d7cb in gtk_widget_draw_internal
(widget=0x39ca18d030, cr=0x39ca4fc8b0, clip_to_size=<optimized out>) at
gtkwidget.c:7017
#102 0x00007fd51fc36b38 in gtk_widget_render (widget=widget@entry=0x39c
a18d030, window=0x39ca441320, region=<optimized out>) at
gtkwidget.c:17512
#103 0x00007fd51fad7239 in gtk_main_do_event (event=<optimized out>) at
gtkmain.c:1824
#104 0x00007fd51f5eb465 in _gdk_event_emit (event=event@entry=0x7ffc9f2
97450) at gdkevents.c:73
#105 0x00007fd51f5fb7a5 in _gdk_window_process_updates_recurse_helper
(window=0x39ca441320, expose_region=<optimized out>) at
gdkwindow.c:3849
#106 0x00007fd51f5fc9a6 in gdk_window_process_updates_internal
(window=0x39ca441320) at gdkwindow.c:3995
#107 0x00007fd51f5fcba0 in gdk_window_process_updates_with_mode
(window=<optimized out>, recurse_mode=<optimized out>) at
gdkwindow.c:4189
#108 0x00007fd51db8d57d in g_closure_invoke () at /lib64/libgobject-
2.0.so.0
#109 0x00007fd51dba0e4e in signal_emit_unlocked_R () at
/lib64/libgobject-2.0.so.0
#110 0x00007fd51dba9975 in g_signal_emit_valist () at
/lib64/libgobject-2.0.so.0
#111 0x00007fd51dbaa2df in g_signal_emit () at /lib64/libgobject-
2.0.so.0
#112 0x00007fd51f5f428f in _gdk_frame_clock_emit_paint
(frame_clock=<optimized out>) at gdkframeclock.c:640
#113 0x00007fd51f5f49c1 in gdk_frame_clock_paint_idle
(data="" at gdkframeclockidle.c:430
#114 0x00007fd51f5dfb20 in gdk_threads_dispatch (data="" at
gdk.c:743
#115 0x00007fd51d8b3ffd in g_timeout_dispatch () at /lib64/libglib-
2.0.so.0
#116 0x00007fd51d8b3597 in g_main_context_dispatch () at
/lib64/libglib-2.0.so.0
#117 0x00007fd51d8b3938 in g_main_context_iterate.isra () at
/lib64/libglib-2.0.so.0
#118 0x00007fd51d8b39cc in g_main_context_iteration () at
/lib64/libglib-2.0.so.0
#119 0x00007fd51e3ea89d in g_application_run () at /lib64/libgio-
2.0.so.0
#120 0x00000039c94fddda in main ()


On Sat, 2017-07-29 at 17:43 +0100, Behdad Esfahbod wrote:
> Should be fixed.Β  Thanks!
>
> On Sat, Jul 29, 2017 at 4:45 PM, <iofelben gmail com> wrote:
> > Tried to run gnome-characters with Cairo master, switching to noto-
> > color-emoji crashes with:
> >
> > #0Β  0x00007fd0ecd2868b in raise () at /lib64/libc.so.6
> > #1Β  0x00007fd0ecd2a417 in abort () at /lib64/libc.so.6
> > #2Β  0x00007fd0ecd208fa in __assert_fail_base () at /lib64/libc.so.6
> > #3Β  0x00007fd0ecd20972 inΒ  () at /lib64/libc.so.6
> > #4Β  0x00007fd0f1370b6e in _cairo_error (status=status@entry=3646361
> > 312)
> > at cairo-error.c:68
> > #5Β  0x00007fd0f1367802 in _cairo_set_error (cr=0x3dd89ecc00,
> > status=3646361312) at cairo.c:400
> > #6Β  0x00007fd0f13691b1 in cairo_show_text_glyphs (cr=0x3dd89ecc00,
> > utf8=0x3dd8a41b40 "πŸ˜€", utf8_len=4, glyphs=0x7fffada90d60
> > , num_glyphs=1
> > , clusters=0x7fffada91640, num_clusters=1, cluster_flags=(unknown:
> > 0))
> > at cairo.c:3742
> > #7Β  0x00007fd0f0283f69 in
> > pango_cairo_renderer_show_text_glyphs.isra ()
> > at /lib64/libpangocairo-1.0.so.0
> > #8Β  0x00007fd0f0284161 in pango_cairo_renderer_draw_glyph_item ()
> > at
> > /lib64/libpangocairo-1.0.so.0
> > #9Β  0x00007fd0f0057e1e in pango_renderer_draw_glyph_item () at
> > /lib64/libpango-1.0.so.0
> > #10 0x00007fd0f00588b1 in pango_renderer_draw_layout_line () at
> > /lib64/libpango-1.0.so.0
> > #11 0x00007fd0f0058c65 in pango_renderer_draw_layout () at
> > /lib64/libpango-1.0.so.0
> > #12 0x00007fd0f028443a in _pango_cairo_do_layout () at
> > /lib64/libpangocairo-1.0.so.0
> > #13 0x00007fd0ef560bde in ffi_call_unix64 () at /lib64/libffi.so.6
> > #14 0x00007fd0ef56054f in ffi_call () at /lib64/libffi.so.6
> > #15 0x00007fd0f10ab6f6 inΒ  () at /lib64/libgjs.so.0
> > #16 0x00007fd0f10ad066 inΒ  () at /lib64/libgjs.so.0
> > #17 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #18 0x00007fd0ee3584cd in Interpret(JSContext*, js::RunState&) ()
> > at
> > /lib64/libmozjs-38.so
> > #19 0x00007fd0ee362324 in js::RunScript(JSContext*, js::RunState&)
> > ()
> > at /lib64/libmozjs-38.so
> > #20 0x00007fd0ee362614 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #21 0x00007fd0ee664f13 in js_fun_apply(JSContext*, unsigned int,
> > JS::Value*) () at /lib64/libmozjs-38.so
> > #22 0x00007fd0ee3626a8 in js::Invoke(JSContext*, JS::CallArgs,
> > js::MaybeConstruct) () at /lib64/libmozjs-38.so
> > #23 0x00007fd0ee363243 in js::Invoke(JSContext*, JS::Value const&,
> > JS::Value const&, unsigned int, JS::Value const*,
> > JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-38.so
> > #24 0x00007fd0ee4b5485 in js::jit::DoCallFallback(JSContext*,
> > js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int,
> > JS::Value*, JS::MutableHandle<JS::Value>) ()
> >Β  Β  Β at /lib64/libmozjs-38.so
> > #25 0x00007fd0f1877510 inΒ  ()
> > #26 0x00007fffada948a0 inΒ  ()
> > #27 0x00007fffada94368 inΒ  ()
> > #28 0x0000000000000000 inΒ  ()
> >
> > On Sat, 2017-07-29 at 16:30 +0100, Behdad Esfahbod wrote:
> > > On Sat, Jul 29, 2017 at 11:58 AM, Uli Schlachter <psychon znc in>
> > > wrote:
> > > > Hi Behdad
> > > >
> > > > I don't think that is my decision to make. When thinking about
> > > > "fonts in
> > > > cairo", I'm thinking "Behdad". I'm just asking weird questions
> > from
> > > > the
> > > > sideline. :-)
> > >
> > > Thanks. :-)Β  Pushed!!!!Β  At least ten people already asked me
> > "what's
> > > up with emoji" at GUADEC...
> > >
> > > > Uli
> > > >
> > > > P.S.: How relevant and up to date is the CC list here? I always
> > get
> > > > a
> > > > "your message to gtk-devel-list awaits moderator approval"-mail
> > > > when
> > > > replying to this thread...
> > > >
> > >
> > > My messages go through, yours probably don't because you are not
> > a
> > > member.Β  It's valuable still.
> > >
> > > Cheers,
> > > b
> > >
> > > > On 28.07.2017 16:38, Behdad Esfahbod wrote:
> > > > > Uli,
> > > > >
> > > > > Can we commit this?Β  I don't think waiting another few years
> > will
> > > > result in
> > > > > a superior patchset. :)
> > > > >
> > > > > Cheers,
> > > > >
> > > > > behdad
> > > > >
> > > > > On Wed, Jul 19, 2017 at 1:53 AM, Behdad Esfahbod <behdad@behd
> > ad.o
> > > > rg> wrote:
> > > > >
> > > > >> Right.Β  In the future we would want to make it show glyphs
> > in
> > > > the input
> > > > >> order, ie. not separate color vs non-color.Β  That's the
> > order
> > > > required by
> > > > >> CSS for example.Β  In a show-text-glyphs call with
> > > > CAIRO_TEXT_CLUSTER_FLAG_BACKWARD,
> > > > >> it might be desirable to show back-to-front.
> > > > >>
> > > > >> On Tue, Jul 18, 2017 at 1:59 PM, Matthias Clasen <
> > > > >> matthias clasen gmail com> wrote:
> > > > >>
> > > > >>> On Sat, Jul 15, 2017 at 4:05 AM, Uli Schlachter <psychon@zn
> > c.in
> > > > > wrote:
> > > > >>>
> > > > >>>> On 07.07.2017 15:23, Matthias Clasen wrote:
> > > > >>>>> On Sat, Jul 1, 2017 at 2:25 AM, Uli Schlachter <psychon@z
> > nc.i
> > > > n> wrote:
> > > > >>>>>> On 30.06.2017 17:29, Behdad Esfahbod wrote:
> > > > >>>>>>> On Jun 30, 2017 7:51 PM, "Matthias Clasen" <mclasen@red
> > hat.
> > > > com>
> > > > >>>> wrote:
> > > > >>>>>>> On Fri, 2017-06-30 at 17:02 +0200, Uli Schlachter
> > wrote:
> > > > >>>>>>>> On 28.06.2017 14:23, Behdad Esfahbod wrote:
> > > > >>>>>>>>> All of you have asked me about the status of color
> > fonts
> > > > in
> > > > >>>>>>>>> cairo.Β  There's
> > > > >>>>>>>>> some discussion here:
> > > > >>>>>>>>
> > > > >>>>>>>> what was the solution to make this fit into cairo's
> > > > drawing model?
> > > > >>>>>>>> Text
> > > > >>>>>>>> / glyphs are used as a mask and a mask does not have
> > > > colors.
> > > > >>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> There is no solution to that. The assumption in cairo's
> > > > drawing model
> > > > >>>>>>> about glyphs/fonts has simply been invalidated by
> > reality.
> > > > >>>>>>>
> > > > >>>>>>>
> > > > >>>>>>> Correct.
> > > > >>>>>>
> > > > >>>>>> Okay... so what is the new model? What happens when I
> > draw a
> > > > color
> > > > >>>> glyph
> > > > >>>>>> with operator XOR and a red source?
> > > > >>>>>
> > > > >>>>>
> > > > >>>>> The red source is ignored for color glyphs because they
> > are
> > > > used as the
> > > > >>>>> source.
> > > > >>>>
> > > > >>>> Hi again,
> > > > >>>>
> > > > >>>> I just came up with another question: How are overlapping
> > > > glyphs handled?
> > > > >>>>
> > > > >>>> Let's say I have a red glyph and a blue glyph and I draw
> > them
> > > > in such a
> > > > >>>> way that they overlap. Let's say this additionally
> > overlaps
> > > > with a
> > > > >>>> non-colored glyph in the same position and I use a green
> > > > source with 50%
> > > > >>>> alpha (cairo_set_source_rgba(cr, 0, 1, 0, 0.5)).
> > > > >>>>
> > > > >>>> What's the visible result?
> > > > >>>>
> > > > >>>>
> > > > >>> Here is what my implementation does: It renders the color
> > > > glyphs, in
> > > > >>> order, followed by the non-color glyphs.
> > > > >>>
> > > > >>> In practice, I don't think the case of mixed color and non-
> > > > color glyphs
> > > > >>> in the same call will be all that common.
> > > > >>> Most apps will explicitly set a color font just for the
> > emoji
> > > > and they
> > > > >>> won't render regular text with an emoji font,
> > > > >>> with the result that runs of color glyphs and non-color
> > glyphs
> > > > will
> > > > >>> typically be in separate calls.
> > > > >>>
> > > > >>
> > > > >>
> > > > >>
> > > > >> --
> > > > >> behdad
> > > > >> http://behdad.org/
> > > > >>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > "Why make things difficult, when it is possible to make them
> > > > cryptic
> > > > and totally illogical, with just a little bit more effort?" --
> > A.
> > > > P. J.
> > >
> > >
> > >
> > > _______________________________________________
> > > gtk-devel-list mailing list
> > > gtk-devel-list gnome org
> > > https://mail.gnome.org/mailman/listinfo/gtk-devel-list
>
>
>



--


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]