[interfacekit] Re: R3 legacy code in R5 drivers?!?

Hi there,

It's working now!

It turns out to be a simple error in the R4 graphics drivers kit, and so also 
in my drivers:

In InitAccelerant.c, function:
status_t CLONE_ACCELERANT(void *data) {

The following
        /* the data is the device name */
        strcpy(path, "/dev");

should be replaced with:
        /* the data is the device name */
        strcpy(path, "/dev/");

So it's a simple matter of adding a '/' after '/dev' :-)

Pageflipper is running and allegro is working as expected now.

It looks like BWindowScreen does a partly translation only though.

Did not check all details, but these are confirmed now:

Allegro test:
-in 16 bit mode, blit does work sometimes (640x480 in 1280x480 virtual mode 
tested), sometimes it does not (640x480 in 640x480 so a non-virtual mode 
tested).
-rectangle fill doesn't work in any of these two modes.

Be Pageflipper test:
-in 8 bit mode, 640x480 in a 640 x 2048 virtualscreen blit works.

Of course the use of virtualscreens or other colordepths should not matter at 
all. R3 style drivers had different functions for different colordepths 
though. R5 drivers do not, at least I haven't seen that yet. Could be 
required by some old hardware though, but the user would not detect that as 
they would be accessible via the same hooks as ever with R5 style drivers.

So indeed the functions that rely on GraphicsCard.h (R3) are translated 
within BWindowScreen and the use of a cloned accelerant. All other functions 
are called via the primary accelerant AFAICT.

If only part of acceleration hooks would be done for OpenBeOS, blit and 
rect_fill are the most important, in that order ;-)
The GraphicsCard.h based information structs and BWindowScreen info functions 
should be translated as well, at least that would be nice..


Rudolf.


Other related posts: