[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re[4]: [Gnash-dev] opengl->agg?
From: |
Jon Steinhart |
Subject: |
Re: Re[4]: [Gnash-dev] opengl->agg? |
Date: |
Tue, 08 May 2007 10:42:06 -0700 |
> Tuesday, May 8, 2007, 6:56:28 PM, you wrote:
> MG> A good distinction; I assume most of that is just running at control
> MG> rate though.
>
> Yes, only complex graphics (lots of edges) will slow things down.
>
> MG> Ultimately just filling in screen area is the killer I
> MG> should think, or at least hope :)
>
> Filling with a solid color should not be the killer. AGG basically
> works like this:
>
> As most graphics libs, it works using scanlines (threats each Y
> coordinate separately and renders that line in one pass).
>
> It looks for all X coordinates crossing that scanline and loads a
> "span". That are the pixels between one X coordinate and the other.
> For a solid color it knows that it can de some memset stuff (or
> similar).
>
> For all other fills (gradient, bitmap) there are special "span
> allocators" that return the pixels required to render this part of the
> scanline. Anti-aliasing is applied afterwards.
Sorry that I don't have time to be more useful on this, but a few comments
from an lifetime earlier in which I did graphics.
There are modifications to span processing that make it much more efficient.
A major improvement is to allow "blocks", where a block spans multiple scan
lines. A span is a degenerate one-pixel high block.
Just about all graphics processors and even software implementations can fill
blocks very quickly. The problem with doing it a line at a time is that the
setup time dwarfs the drawing time.
I don't know anything about the internal structure of gnash, but if it's
filling rectangles a line at a time performance improvement shouldn't be
too difficult.
Jon
- [Gnash-dev] opengl->agg?, Martin Guy, 2007/05/08
- Re: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/08
- Re: [Gnash-dev] opengl->agg?, Martin Guy, 2007/05/08
- Re[2]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/08
- Re: Re[2]: [Gnash-dev] opengl->agg?, Martin Guy, 2007/05/08
- Re[4]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/08
- Re: Re[4]: [Gnash-dev] opengl->agg?,
Jon Steinhart <=
- Re[6]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/08
- Re: Re[6]: [Gnash-dev] opengl->agg?, Martin Guy, 2007/05/08
- Re[8]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/08
- Re: Re[8]: [Gnash-dev] opengl->agg?, Martin Guy, 2007/05/08
- Re: Re[8]: [Gnash-dev] opengl->agg?, Jon Steinhart, 2007/05/08
- Re[10]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/09
- Re[10]: [Gnash-dev] opengl->agg?, Udo Giacomozzi, 2007/05/09
- Re: Re[6]: [Gnash-dev] opengl->agg?, mark cox, 2007/05/08
- Re: [Gnash-dev] opengl->agg?, Rob Savoye, 2007/05/09
Re: [Gnash-dev] opengl->agg?, strk, 2007/05/08