Help getting started porting to eInk prototyping platform

Bert Freudenberg bert at impara.de
Sat Nov 26 10:51:28 UTC 2005


Am 25.11.2005 um 23:44 schrieb Bob Courchaine:

> Bert Freudenberg wrote:
>> Regarding endianness: BitBlt now deals fine with LSB forms, I   
>> thought.
>> Works fine for 8 bpp at least, not sure about 2, though ...
>
> Looks like it's been there since 2001, Bert.

It's been that long already? Rats, I'm getting old ... To my defense  
I could say that 4 years is still rather recent compared to the 30  
years BitBlt has been around in Smalltalk ;-)

At least any VM in use now should have little-endian BitBlt support.

But it still is a lesser know feature - if even Tim didn't know or  
remember, who would? ;-)

> And this note implies down
> to 1 bpp IIRC.
>
> (from
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2001-May/ 
> 000076.html)
>
> 3984BitBltExtensions-ar -- Andreas Raab -- 4 May 2001
> The change set includes various extensions for BitBlt with the goal of
> migrating the useful features from FXBlt into the general BitBlt
> mechanisms. These include:
> * Handling of LSB and MSB forms:
> BitBlt now handles both, MSB and LSB forms (and their conversions).  
> Only
> instances of Bitmap are assumed to contain big-endian pixels. All  
> others
> are assumed to be little endian (reason is that we can only identify
> Bitmap here). Note that 'LSB' and 'MSB' refers to PIXELS, that is a  
> 1bpp
> LSB form has its left most pixel in the lowest bit whereas a 1bpp MSB
> form has its left-most pixel in the highest bit.
> For pixel depths < 8 this can be different from what your OS supplies
> (as an example, Windows bitmaps < 8 are big-endian pixels in
> little-endian words; we might call them 'middle-endian'). We simply
> don't deal with those - forms are either big or little endian but
> nothing inbetween.
> BitBlt has got an extra combination rule for swapping pixels in the
> destination form. This can be used to make byte swapping much more
> efficient (as soon as we've got more VMs with support for it).

It might just work if you request -2 bpp for display:

ioHasDisplayDepth(int d)
{
	return d == -2;
}

- Bert -




More information about the Squeak-dev mailing list