From: Groepaz <gr...@gm...> - 2004-05-23 15:06:23
|
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 |