1
0

Implement GLOAD (1)

This commit is contained in:
otya128
2016-12-18 18:19:59 +09:00
parent be421321bf
commit cafa8ece85

View File

@@ -1174,12 +1174,34 @@ class Graphic2 : Graphic
gsaveTempl(x, y, w, h, array, flag);
}
void gloadTempl(T)(int x, int y, int w, int h, T[] array, int flag, int copymode)
{
int arrayH = h, arrayW = w;
int sx, sy;
if (clipXYWH(writeArea[petitcom.displaynum], x, y, w, h, sx, sy, w, h))
return;
for (int iy = sy; iy < h; iy++)
{
for (int ix = sx; ix < w; ix++)
{
auto c = cast(int)array[iy * arrayW + ix];
if (flag)
c = RGBA16ToARGB32Color(c);
if (copymode || c >> 24)
*(buffer + (iy + y) * width + (x + ix)) = c;
}
}
df = true;
}
override void gload(int x, int y, int w, int h, int[] array, int flag, int copymode)
{
gloadTempl(x, y, w, h, array, flag, copymode);
}
override void gload(int x, int y, int w, int h, double[] array, int flag, int copymode)
{
gloadTempl(x, y, w, h, array, flag, copymode);
}
}