> 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

Reply via email to