2008-12-07, 16:49
jmarshall Wrote:VdpPresentationQueue doesn't appear (on a quick scan) to handle alpha blending, so if we're rendering the video in the background it'll be a no-go, similarly for alpha blended OSDs. I'm sure there must be some way to do it via the API, though I suspect it'll be tricky within the GL setup we have if the video is embedded in the skin and blended with other skin elements (as is frequently the case with newer skins).
Cheers,
Jonathan
I think you're right. Looking through the API and header, I see that VdpBitmapSurface is used for OSD or application UI compositing and it may be in one of the following formats:
Code:
00664 typedef uint32_t VdpRGBAFormat;
00665
00678 #define VDP_RGBA_FORMAT_B8G8R8A8 (VdpRGBAFormat)0
00679
00691 #define VDP_RGBA_FORMAT_R8G8B8A8 (VdpRGBAFormat)1
00692
00704 #define VDP_RGBA_FORMAT_R10G10B10A2 (VdpRGBAFormat)2
00705
00717 #define VDP_RGBA_FORMAT_B10G10R10A2 (VdpRGBAFormat)3
00718
00728 #define VDP_RGBA_FORMAT_A8 (VdpRGBAFormat)4
I've only just begun glancing through the XBMC sources, and it seems to me that even if it is possible, it would require a pretty major rewrite of all things video output related -- even to the extent that it would probably have to be branched off into a separate release.
EDIT: I'm unable to register with any of nvidia's forums because I didn't set up a *real* email account with my ISP. However, I've been able to determine that the "A" in the above formats does indeed stand for "Alpha". So I guess that means it's at least possible.
While I have you guys here, thanks for the best UI in town! I hope there's enough interest to take on this non-trivial task. I'll keep digging through the sources, but I don't know if I'll be of much help.