Re: another theory



hmmm...     I noticed that gdk_pixbuf_render_to_drawable_alpha() is
deprecated...   the recommended replacement:   gdk_draw_pixbuf() fixes
the bug... can we use this or are there outstanding support issues?

GdkGC *gc = renderer->gc;
gdk_draw_pixbuf(renderer->pixmap, gc, rgba, 0, 0, x, y, width, height,
GDK_RGB_DITHER_NONE, 0, 0);

....instead of:
gdk_pixbuf_render_to_drawable_alpha(rgba,
                                             renderer->pixmap,
                                             0, 0,
                                             x, y,
                                             width, height,
                                             GDK_PIXBUF_ALPHA_FULL,
                                             128,
                                             GDK_RGB_DITHER_NONE,
                                             0, 0);


regardless, i will get to the bottom of the transparency issue/invalid
sections of GdkPixbuf that we are writing/overwriting...

tk

On Apr 2, 2005 10:52 PM, Tom Kast <tomkast gmail com> wrote:
thanks a lot guys. i am looking at the GdkPixmap depth issue in
DiaGdkRenderer now.  i will also look into stefan's other idea about
pixmap regions being drawn then overdrawn without clearing (before
drawing the text)...

can i say wow?   ...it sure did not take you long to find that stefan...

On Apr 2, 2005 12:44 PM, Lars Clausen <lars raeder dk> wrote:
On Fri, 2005-04-01 at 10:32 +0200, Stefan wrote:
some minutes ago I observed the bahaviour on drawing text with
gdk_pixbuf_render_to_drawable_alpha() in diagdkrenderer.c:draw_string().
Supporting that, I used a fix alpha threshold in 'pixels[i*stride+j*4+3]
= graybitmap[i*rowstride+j];', i.e. 128. And what I explored is, that in
the situations the font is drawn ugly, now the intensity of the color
incresed. So ... there are some regions are still drawn and are
overdrawn by this method. The transparency then causes the uglyness and
egdy font.

That sounds much more like something that could actually cause this bug
that what we've look at before.

So the problem is actually a problem with uninvalidated, still present
regions in renderer->pixmap which have to be cleared, before redrawing
the text again. The update-area logic doesn't pay attention on this.

Notably, the effect also happens under libart renderer.  Which makes
sense with the explanation.

-Lars

--
Lars Clausen <lars raeder dk>

_______________________________________________
Dia-list mailing list
Dia-list gnome org
http://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://www.gnome.org/projects/dia/faq.html
Main page at http://www.gnome.org/projects/dia






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