On Thu, 27 Feb 2003, Kendall Bennett wrote:

> Keith Packard <[EMAIL PROTECTED]> wrote:
> 
> > I think the interfaces currently provided by XAA will probably remain 
> > usable, so you might as well implement them.
> 
> Ok.
> 
> > Plus, we should have XAA expose special higher level functions for
> > glyph rendering to the driver so that the graphics card can use the
> > higher level data structures to speed this operation, rather than
> > having the MI layer break the text operation into a (long) sequence
> > of primitive Composite operations. 

   What are you guys talking about?  XAA already has hooks all over
the place.

> 
> Yes, most definitely. The current mechanism is not exactly efficient, and 
> in fact is the reason why I want to hook some functions at a higher level 
> so we can make this faster.
> 
> Also when it comes to rendering text, one of the fastest ways of doing 
> this is the way that OS/2 does it. Instead of caching any glyphs in 
> offscreen video memory (terribly wasteful of offscreen video memory and 
> no faster than using system memory bitmaps), you maintain a single large 
> bitmap that matches the physical resolution of the screen (ie: 1280x1024 
> mono bitmap). When you need to draw text, you render the text into the 
> mono bitmap in software at the necessary place on the screen, and when 
> that is done pass the entire bitmap to be drawn to the hardware with a 
> clip rectangle that covers just the text you just rendered into the 
> bitmap. The clipping is real easy to do in the software setup stages for 
> text rendering, and then you can blit the entire string to the hardware 
> in one shot.

   XAA already does this!!!  XAA has never cached glyphs in video ram.

> 
> So fast, efficient text could be done in XFree86 if a single function was 
> used to transfer an entire bitmap in the driver code (pre-clipping could 
> easily be done before the driver code is called), and some high level 
> code to maintain and render the glyphs into the pre-allocated large 
> bitmap.
> 
> > > Also I have been wondering about the accelerated anti-aliased text. Is 
> > > all anti-aliased text in XFree86 done via the XRENDER extension and alpha 
> > > blits? It is possible to implement accelerated anti-aliased text using 
> > > simple 4-8 levels of mono bitmap blits using FreeType (that is what we 
> > > used for it in our MGL graphics library).
> > 
> > Yes, all AA text is done with the Render glyph operations which
> > are defined in terms of the basic image composition primitive. 
> > Once you have hardware acceleration for image compositing, that's
> > going to be a lot faster than any non-standard rendering path. 

   That's why XAA hooks "Glyphs" and doesn't do it that way.
XAA does not break glyph rendering into the Composite operator.

> 
> Granted, if you have hardware alpha blits that will be the fastest way to 
> do this. But if you don't have hardware alpha blits (and lots of cards 
> supported by XFree86 do not), you can still speed up anti-aliased text 
> quite a lot by using a 4 or 8 level scheme using multiple mono bitmaps.

   No you can't.  This text is ALPHA BLENDED into whatever the background
is.  It is not text "ImageText" - ie. it is not an alpha blended string
on top of a solid backing rectangle.


                        Mark

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to