i'm playing with gamecubefb.c for a couple of days now and am
kindof stuck :/ maybe someone here has an idea, or can point
me to some information (although i've searched the net extensivly
with no success :/). if someone has implemented a framebuffer
driver for any device that doesnt have a straight rgb-framebuffer
to hardware-framebuffer mapping (like the gc) before, or knows a
person why did so, please speak up :=P
the problem is related to the fact that the framebuffer of the
gamecube is in a different format than rgb and thus can not be
directly mmap'ped and used by an application. (and the framebuffer
console). the interface in the driver used to handle this kind
of thing is located in fb_info->pixmap->outbuf and
fb_info->pixmap->inbuf (note: the current driver incorrectly uses
a different function, it patches the interface that writes _into_
the linear rgb frame buffer, not the one that reads from it and
moves the data to the hardware buffer). whatever, changing this
is no problem, and works great with the framebuffer console (and
also magically removes the kludges from fb.h) - but the problem
with applications that mmap the framebuffer remains. (but unlike
with the current driver you wont get a picture with messed up
colors, but no picture at all since the data wont get moved
to the hardware buffer)
so, from my understanding there must be some mechanism that
addresses this problem (some function that gets called whenever a
portion of the rgb framebuffer needs to be moved to the hardware
framebuffer for example). the closest to that i could find was
the "sync" interface, but this doesnt cut it either (and well,
yes, its probably wrong for that kind of thing :)). mmmh and
there is some flag to distinguish between "memory mapped" and
"io mapped" graphics memory that look suspicous aswell, but
i couldnt really figure out what difference they make either,
nor what kind of interface is related to that :(
oh well...any hints are highly appriciated :)
gpz
|