[openbeos] Re: openbeos Digest V8 #104
- From: Stephan Assmus <superstippi@xxxxxx>
- To: openbeos@xxxxxxxxxxxxx
- Date: Thu, 26 Jun 2008 16:27:18 +0200
Sergei Dolgov wrote:
> One of most serious obstacles when we tried to improve Mozilla speed was
> too high price of freqent calls to app_server (not any thread
> fine-graining issues:). E.g. even DrawBitmapAsync was too pricey, when we
> draw backgrounds (so called tiled-drawing). Imagine quite usual case when
> web-developes set background consisting of 1*1 pix images. or
> 1*1000000 pix. We found workaround, but straight way of using DrawBitmap
> could hang Mozilla for 20 minutes at each Invalidate() call on
> simply-looking sites.
>
> Another issues were also related to intensive communication to app_server
> - like getting char widths for text drawing with "justification" (most
> frequent case) or for text with positioning array (generic case). Btw, it
> is also nice to have DrawString() with additional positioning array
> parameter (like it exists in Win API), instead that one which gets single
> escapement_delta, but that's another story, not exactly on-topic.
Makes a lot of sense. Please do create enhencement tickets, so that these
remarks don't get lost. Even BTextView uses a "width cache buffer" to avoid
too many calls for getting the width of glyphs. Maybe this can be done on
the BFont level instead of on the individual view class level. As for
drawing thousands of 1x1 bitmaps, I would be surprised if the Firefox
implementation on other platforms indeed used API calls to draw those.
Doesn't Firefox draw into a bitmap anyways (ie client side drawing)? Only
stuff like font rendering would have to go through the app_server, unless
you use Freetype yourself, but even that is possible if it needs to be
done. All one would be left with is one DrawBitmap() call for the entire
resulting view bitmap that actually reaches app_server in the extreme case.
I am not saying this is necessarily how it should be done, but a good
ballance should be possible where Firefox uses partly it's own client side
drawing and partly app_server based drawing. I am guessing that Firefox or
any browser could depend implementing a drawing API that is more capable
and advanced than what app_server offers, so it needs to implement its own
drawing anyways.
Best regards,
-Stephan
- Follow-Ups:
- [openbeos] Re: openbeos Digest V8 #104
- From: Stefano Ceccherini
- [openbeos] Re: openbeos Digest V8 #104
- From: Sergei Dolgov
- References:
- [openbeos] Re: openbeos Digest V8 #104
- From: François Revol
- [openbeos] Re: openbeos Digest V8 #104
- From: Stephan Assmus
- [openbeos] Re: openbeos Digest V8 #104
- From: Sergei Dolgov
Other related posts:
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- » [openbeos] Re: openbeos Digest V8 #104
- [openbeos] Re: openbeos Digest V8 #104
- From: Stefano Ceccherini
- [openbeos] Re: openbeos Digest V8 #104
- From: Sergei Dolgov
- [openbeos] Re: openbeos Digest V8 #104
- From: François Revol
- [openbeos] Re: openbeos Digest V8 #104
- From: Stephan Assmus
- [openbeos] Re: openbeos Digest V8 #104
- From: Sergei Dolgov