On 7/28/06, Patrick McNamara <[EMAIL PROTECTED]> wrote:
int progressive(unsigned int *buffer, unsigned int fb_width, unsigned int fb_height, unsigned int vp_widt h, unsigned int vp_height, unsigned int hfp, unsigned int hsync, unsigned int hbp, unsigned int vfp, unsi gned int vsync, unsigned int vbp, unsigned int viewport);
I just realized that vp_ means viewport. Excellent. What does the viewport parameter do? A few comments: I'm not sure that we really need a vp_height. Although we want to have a vp_width that is different from the fb_width, the height is simpler to deal with. Only as a matter of saving the user from having to compute the graphics memory address of the first scanline, we can provide a fb_address. Then we need offsets, vp_h_offset and vp_v_offset, which are how far to the right and down the vp is within the fb. You need both the vp_width and the fb_width because the memory could be wider than the screen, but the height is the height and it ends where it ends. I'm not sure if I'm communicating that all that well. Try this: The drawing engine needs to know drawable width (so it can compute address from x+y*w), but it doesn't need to know the height, because it can trust that we don't generate coordinates out of bounds. The only thing that needs height info there is the scissor (clipping) logic.
Calling that with the appropriate timing parameters will generate a video controller program to implement that video mode. As a note, I need to add an argument for sync polarity since this needs to be confurable on the fly.
What's the return value? The number of dwords in the program?
I'm not worried about getting the video controller to run at a given mode at boot time. My concern is how to figure out what that mode should be. How do I figure out what mode my old 20" Sun fixed frequency, sync on green, montor connected via a hd15->13W3 converter should run at boot time. Monitors that support DDC aren't a big problem, but ones that don't are very hard. Perhaps in the end, a user configurable default video mode should be available in situations where the card simply cannot tell what to do.
This is always going to be a problem. Early Tech Source GXTRA cards actually had a rotary switch that let the user manually select video modes for various fixed-frequency Sun monitors. But that was a known, limited set. For us, to deal with a special monitor requires a BIOS code change, done by someone who understands those things. _______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
