improve blt_colorfill performance

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

View file

@ -386,6 +386,12 @@ void blt_colorfill(
dst += (dst_x * bytes_pp) + (dst_p * dst_y); dst += (dst_x * bytes_pp) + (dst_p * dst_y);
if (bpp == 8) if (bpp == 8)
{
if (size == dst_p)
{
memset(dst, color, dst_p * dst_h);
}
else
{ {
for (int i = 0; i < dst_h; i++) for (int i = 0; i < dst_h; i++)
{ {
@ -393,9 +399,16 @@ void blt_colorfill(
dst += dst_p; dst += dst_p;
} }
} }
}
else if (bpp == 16) else if (bpp == 16)
{ {
if ((color & 0xFF) == ((color >> 8) & 0xFF)) if ((color & 0xFF) == ((color >> 8) & 0xFF))
{
if (size == dst_p)
{
memset(dst, color, dst_p * dst_h);
}
else
{ {
for (int i = 0; i < dst_h; i++) for (int i = 0; i < dst_h; i++)
{ {
@ -403,6 +416,7 @@ void blt_colorfill(
dst += dst_p; dst += dst_p;
} }
} }
}
else else
{ {
unsigned short* first_row = (unsigned short*)dst; unsigned short* first_row = (unsigned short*)dst;
@ -424,6 +438,12 @@ void blt_colorfill(
if ((color & 0xFF) == ((color >> 8) & 0xFF) && if ((color & 0xFF) == ((color >> 8) & 0xFF) &&
(color & 0xFF) == ((color >> 16) & 0xFF) && (color & 0xFF) == ((color >> 16) & 0xFF) &&
(color & 0xFF) == ((color >> 24) & 0xFF)) (color & 0xFF) == ((color >> 24) & 0xFF))
{
if (size == dst_p)
{
memset(dst, color, dst_p * dst_h);
}
else
{ {
for (int i = 0; i < dst_h; i++) for (int i = 0; i < dst_h; i++)
{ {
@ -431,6 +451,7 @@ void blt_colorfill(
dst += dst_p; dst += dst_p;
} }
} }
}
else else
{ {
unsigned int* first_row = (unsigned int*)dst; unsigned int* first_row = (unsigned int*)dst;