On 05/29/07 22:05, Reinhard Nissl wrote:
> Hi,
> 
> Klaus Schmidinger wrote:
> 
>>>> Anti-aliased freetype fonts really do look good ;-)
>>> Have you tried either of the soft output methods (libxine,  
>>> softdevice), or are you still running FF cards only?
>> I'm only running a FF card (with 4MB memory, so I can display
>> the OSD with 256 colors).
> 
> vdr-xine can handle 16 fullscreen OSD areas with independent 256 color
> palettes. The only drawback is, that some of xine's video output devices
> only support overlays with 16 colors.
> 
> I hope that there will be an option to still get the "plain old" 16
> color STNG OSD. Or will it depend on the result of cOsd::CanHandleAreas()?

Here's how it will be handled:

  osd = cOsdProvider::NewOsd(Setup.OSDLeft, Setup.OSDTop);
  tArea Areas[] = { { x0, y0, x7 - 1, y7 - 1, 8 } };
  if (Setup.AntiAlias && osd->CanHandleAreas(Areas, sizeof(Areas) / 
sizeof(tArea)) == oeOk) {
     osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
     osd->SetAntiAliasHint(9, 7);
     }
  else {
     tArea Areas[] = { { x0, y0, x7 - 1, y7 - 1, 4 } };
     if (osd->CanHandleAreas(Areas, sizeof(Areas) / sizeof(tArea)) == oeOk)
        osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
     else {
        tArea Areas[] = { { x0, y0, x7 - 1, y3 - 1, 2 },
                          { x0, y3, x3 - 1, y4 - 1, 1 },
                          { x3, y3, x4 - 1, y4 - 1, 2 },
                          { x4, y3, x7 - 1, y4 - 1, 2 },
                          { x0, y4, x7 - 1, y7 - 1, 4 }
                        };
        osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
        }
     }

There's a global Setup.AntiAlias option through which the user can
turn off anti-aliasing. In that case it immediately falls back to
4bpp. If Setup.AntiAlias is on, it tries to use 8bpp and falls back
to 4bpp if that's not possible.

osd->SetAntiAliasHint(9, 7) tells the OSD how many colors will be used
at all, and how many color combinations will be used with anti-aliasing.
That way the OSD can evenly distribute the available palette entries
to the various color blends by limiting the number of color levels
per color combination.

Klaus



_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to