1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

improve blt_colorfill performance

This commit is contained in:
FunkyFr3sh 2022-09-13 09:53:29 +02:00
parent 09ca2fcbf8
commit f4a403f434

View File

@ -387,20 +387,34 @@ void blt_colorfill(
if (bpp == 8) if (bpp == 8)
{ {
for (int i = 0; i < dst_h; i++) if (size == dst_p)
{ {
memset(dst, color, size); memset(dst, color, dst_p * dst_h);
dst += dst_p; }
else
{
for (int i = 0; i < dst_h; i++)
{
memset(dst, color, size);
dst += dst_p;
}
} }
} }
else if (bpp == 16) else if (bpp == 16)
{ {
if ((color & 0xFF) == ((color >> 8) & 0xFF)) if ((color & 0xFF) == ((color >> 8) & 0xFF))
{ {
for (int i = 0; i < dst_h; i++) if (size == dst_p)
{ {
memset(dst, color, size); memset(dst, color, dst_p * dst_h);
dst += dst_p; }
else
{
for (int i = 0; i < dst_h; i++)
{
memset(dst, color, size);
dst += dst_p;
}
} }
} }
else else
@ -425,10 +439,17 @@ void blt_colorfill(
(color & 0xFF) == ((color >> 16) & 0xFF) && (color & 0xFF) == ((color >> 16) & 0xFF) &&
(color & 0xFF) == ((color >> 24) & 0xFF)) (color & 0xFF) == ((color >> 24) & 0xFF))
{ {
for (int i = 0; i < dst_h; i++) if (size == dst_p)
{ {
memset(dst, color, size); memset(dst, color, dst_p * dst_h);
dst += dst_p; }
else
{
for (int i = 0; i < dst_h; i++)
{
memset(dst, color, size);
dst += dst_p;
}
} }
} }
else else