[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