Hi all, Thanks to the awesome work of Ville Syrjala I can now use my G400's TV output as an interlaced framebuffer. With the kernel patch on his site, I can also successfully wait for the retrace and get an interrupt every field. I can also query the card to have it return which field is currently being displayed. The next part is to return that information to my application. Once I have that, I think my DVD player should successfully be able to output an interlaced stream correctly without tearing or displaying fields out of order.
So, the question now is where to put some of these pieces in the API, and how this should work. DirectFB's API is sweet in that I can have interlaced surfaces, but there are no previsions for interlaced output surfaces AFAICT. Proposal: 1. I need to know which field is currently being displayed on the DisplayLayer so that I don't draw to it (and tear). I think this should go as part of IDirectFBDisplayLayer. I will add it using SetOpacity as my example. I don't think it makes sense as part of IDirectFBSurface since for a non-output surface, it could be, say, displaying its even field but being blit into the odd field of the output. I think it would be confusing. 2. Why is WaitForSync part of IDirectFB? The G400 for example has two heads, each with a separate sync signal (and VBI interrupt!). I'd really like to use both at once. I'd like to move WaitForSync into IDirectFBDisplayLayer. If it's there, I'd like it to also return which field is being displayed (have the information available in two places), since I think it would be cleaner. 3. Right now, an interlaced IDirectFBSurface means nothing except in special cases. I'd like to update all the drawing functions so that they can act on fields independently, otherwise I might tear etc. So, ClearField, BlitField, DrawRectangleField, etc. Thoughts? Should maybe the clip rects be updated so that they have a stride? It's awkward that these functions work on rects rather than starting position+stride as the latter is much easier to work with when dealing with interlaced buffers (just set stride=linestride*2, height/=2). Thoughts? I'm just really concerned about 1 since I'm going to code it today so that I can code more tests. -- Billy Biggs [EMAIL PROTECTED] -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe directfb-dev" as subject.
