bypp=(bpp+7)/8;
}
stride=x*bypp;
- if (bpp==8)
- {
- clut.colors=256;
- clut.data=new gRGB[clut.colors];
- } else
- {
- clut.colors=0;
- clut.data=0;
- }
+ clut.colors=0;
+ clut.data=0;
data=malloc(x*y*bypp);
}
{
for (unsigned int i=0; i<clip.rects.size(); ++i)
{
- eRect area=eRect(pos, src.getSize());
+ eRect area=eRect(pos, src.size());
area&=clip.rects[i];
- area&=eRect(ePoint(0, 0), getSize());
+ area&=eRect(ePoint(0, 0), size());
if ((area.width()<0) || (area.height()<0))
continue;
eRect srcarea=area;
srcarea.moveBy(-pos.x(), -pos.y());
-
+
if ((surface->bpp == 8) && (src.surface->bpp==8))
{
__u8 *srcptr=(__u8*)src.surface->data;
__u8 *dstptr=(__u8*)surface->data;
- srcptr+=srcarea.left()*surface->bypp+srcarea.top()*src.surface->stride;
+ srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride;
dstptr+=area.left()*surface->bypp+area.top()*surface->stride;
for (int y=0; y<area.height(); y++)
{
pal[i]^=0xFF000000;
}
- srcptr+=srcarea.left()*surface->bypp+srcarea.top()*src.surface->stride;
+ srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride;
dstptr+=area.left()*surface->bypp+area.top()*surface->stride;
for (int y=0; y<area.height(); y++)
{
{
if ((!surface->clut.colors) || (!target.surface->clut.colors))
return;
+
gColor *lookup=new gColor[surface->clut.colors];
for (int i=0; i<surface->clut.colors; i++)
ttd+=td;
if (ttd>=difference)
continue;
+ if (!ttd)
+ return t;
difference=ttd;
best_choice=t;
}