[vdr] strange cPalette::SetBpp
Klaus Schmidinger
Klaus.Schmidinger at cadsoft.de
Thu Jan 19 17:42:12 CET 2006
Markus Hahn wrote:
> Hi there,
> with none default themes, I get the error messages
> like:
> "too many different colors used in palette"
> by using 16 different colors in theme file.
> As a result some Skins.Message are not displayed
>
> Digging deeper, I found cPalette::SetBpp osd.c
> give some strange values:
> At Start
> maxColors: 256
> maxColors: 2
> maxColors: 256
> maxColors: 4
> first call up menu
> maxColors: 16
> maxColors: 4
>
> etc.
>
> Why does the color resolution changed? Shoudn`t be at one value?
The color resolution can be different for the various
areas of the OSD. See the call to SetAreas() in the
skin. For instance
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));
}
tries to set one single area with 4bpp, and if that fails
it splits the whole OSD into 5 separate areas with smaller
bpp values.
Klaus
More information about the vdr
mailing list