apology & question

Peter C. Mehlitz peter at transvirtual.com
Wed Sep 30 10:52:25 PDT 1998

>Does Kaffe's up-to-date version provide incremental(async.)
>image loading?  I doubt it.

Not completely true. (1) If there is a ImageObserver (i.e. you rely on
notifications), it will be informed. (2) If you produce images from URLs, this
will be async with respect to reading data from the relevant InputStream.
What we don't do is to break up external image production (jpeg, png, gif) into
scanlines, notifying the ImageObservers on each scanline. 

>If not, Anybody have a detailed idea where to modify to support
>incremental image loading? 

Two issues:
(1) Make the native image lib based production (libjpeg, libungif, libpng)
reentrant. This probably has to be done by turning each production into a
thread of its own (quite expensive, and thread pools just make it more
expensive with respect to memory). This also means that you have to add
native image lib input methods which can block on InputStreams (or even worse,
you have to rebuild/statically link the libs with the SystemCallInterface).

(2) Break up the image lib conversion into scanlines. This actually might be
much more complicated (think of interlaced PNGs, for example), since it
requires that you have to modify the native image libs.

If you just think of doing all the productions (each in one sweep) from a
separate thread, that is easy (just uses the already existing URL mech). But I
don't see a good reason for that, since the native image libs are really fast
(i.e. we actually save some Image related repaints with the immediate

If you really want the production in chunks of separate scanlines, that would
be a considerable work (and I don't know if it is worth the effort - what do
you gain?)

-- Peter

More information about the kaffe mailing list