improve blt_colorfill performance
This commit is contained in:
parent
09ca2fcbf8
commit
f4a403f434
1 changed files with 30 additions and 9 deletions
21
src/blt.c
21
src/blt.c
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue