[Webkit-unassigned] [Bug 26467] Cross-platform image system architecture cleanup metabug

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 17 08:27:24 PDT 2009


yong.li at torchmobile.com changed:

           What    |Removed                     |Added
                 CC|                            |staikos at kde.org

------- Comment #5 from yong.li at torchmobile.com  2009-06-17 08:27 PDT -------

We've already done this in WINCE port. We also think this can be shared by 
other platforms. But so far we haven't got ready to merge all our code.

Take a look at this file:


What we've done is:

1. Define ImageFrameSink interface, which the platform-independent 
interface, but some of its methods must be implemented for specific 
platform. ImageFrameSink can support 16bit, and can also write directly to 
platform-specific image storage buffer.

2. In WINCE port, we implement ImageFrameSink with another utility class 
"SharedBitmap". The buffer that image decoder directly writes is also 
directly used to render the image.

It's very easy to implement ImageFrameSinkFoo.cpp with current RGB32Buffer.

3. We only support 16bit in 2 formats: RGB555 and RGB565, but it's 
determined by a macro switch. Images with alpha channel cannot use 16bit 
currently. Transparent GIF images with single transparent colors can also 
use 16bit if the transparent color doesn't conflict with other colors in the 
image after converting to 16bit.

4. We made changes in image decoders, and to make them work with 
ImageFrameSink and support 16bit.

5. We also support scaling huge images down to smaller size, and this is 
done on the fly of decoding, so there's no extra buffer-to-buffer scaling. 
Refer to ImageDecoder.h and ImageDecocer.cpp in our GIT repository. This 
feature is available when USE(IMAGEFRAMESINK) is true.

6. We also did some work for resource caching. We've implemented 
SharedBuffer in our way, and so that the buffer doesn't need to be flat 
Vector. Instead, it can be a series of segments. See the definition of 
OptimizedBuffer. And we make all image decoders (and other modules that uses 
text decoders) work with segmented source. This is currently only for WINCE 
& TORCHMOBILE. But we think it can be helpful for other platform, too.

7. Other things I cannot remember at this time.

We hope to get our efforts merged to upstream as much as we can, and wish
this can save your development time.

Best regards,

Yong Li

Torch Mobile, Inc.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the webkit-unassigned mailing list