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@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr