discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bitmap code - 3rd alpha version


From: Pete French
Subject: Bitmap code - 3rd alpha version
Date: Thu, 31 Jan 2002 17:05:15 +0000

O.K., a 3rd try. This one includes optimisations for the visibleon
screen rectangle so non visibleparts are not calculated. This will
speed up code somewhat.

Also, ater all the "its slow" comment, I added the flag to disable the
nice minification. By default the code now compiles to just choose the
nearest point when the destination area is smaller than the source. This
is a lot faster (or rather the speed is relative to the size of the
destination as opposed to the source). I got a speedup of
about 15 times rendering a 1000x1000 tiff into a 150x200 view.

It does look ugly though - o.k. on photographs, but anything with fine
detail or grids on it gives unpleasent aliasing effects. As I work with
maps this is a bit horrid to me.

If you want to re-enable the old behaviour then line 1700 in XGGState.m
sets the fast minimisation flag to YES - change it to NO and the old behaviour
comes back. Somehow I want this to be selectable at runtime for particular
images, but for now live with it as a compile option.

cheers,

-bat. [patch relative to current CVS code]

begin 644 bitmap.patch.gz
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
L)&J4_:DU<:$&K>N.C@95`T$-SR7L>XJ+49]Z)M"NX*_+"/\#A>38*?)Z````
`
end



reply via email to

[Prev in Thread] Current Thread [Next in Thread]