> But now I've a real strange situation: > For clearing the OSD (full transparent) I've to use Clear(r, b, g, a) with > Clear(0, 0, 0, 0) which is "normal" transparent black. > > But for OSD drawing into the surface I've to invert alpha: > transparent black is (0, 0, 0, 0xff) solid black is (0, 0, 0, 0) .
I was just looking into that, thinking it was probably an obvious typo on my part but I'm not sure it is. What's puzzling me is that Clear(r,g,b,a) is equivalent to SetColor(r,g,b,a) SetDrawingFlags(DSDRAW_NOFX) FillRectangle(...) If you're seeing a difference, I can only assume that you're using some other drawing flags, e.g. DSDRAW_BLEND. If that's the case then your drawing operations will be using the software fallback since we can't do hardware accelerated blending on AiRGB surfaces. So it looks to me like the problem is in the software renderer, which is not my area of expertise I'm afraid. Perhaps you could confirm that you're using some drawing flags other than DSDRAW_NOFX or DSDRAW_XOR and perhaps check what happens if you change the flags. Mark _______________________________________________ directfb-dev mailing list [email protected] http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
