/* $Id$
This file is part of libmspgl
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2009 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
float *ptr=array.append();
for(const unsigned char *c=array.get_format().begin(); c!=array.get_format().end(); ++c)
{
- uint size=(*c&3)+1;
- switch(*c>>2)
+ unsigned size=(*c&3)+1;
+ unsigned type=*c>>2;
+ switch(type)
{
case 0:
*ptr++=x;
case 3:
if(size==1)
{
- union { ubyte c[4]; float f; } u;
- u.c[0]=static_cast<ubyte>(cr*255);
- u.c[1]=static_cast<ubyte>(cg*255);
- u.c[2]=static_cast<ubyte>(cb*255);
- u.c[3]=static_cast<ubyte>(ca*255);
+ union { unsigned char c[4]; float f; } u;
+ u.c[0]=static_cast<unsigned char>(cr*255);
+ u.c[1]=static_cast<unsigned char>(cg*255);
+ u.c[2]=static_cast<unsigned char>(cb*255);
+ u.c[3]=static_cast<unsigned char>(ca*255);
*ptr++=u.f;
}
else
}
break;
default:
- const Attrib &a=av[(*c>>2)-4];
+ const Attrib &a=av[type-4];
*ptr++=a.x;
if(size>=2) *ptr++=a.y;
if(size>=3) *ptr++=a.z;