Big endian changes

This commit is contained in:
John Lorentzson 2025-04-12 17:44:22 +02:00
parent 962bb9d477
commit 638918b4df

View file

@ -121,9 +121,9 @@ void RenderBackend_UploadSurface(RenderBackend_Surface *surface, const unsigned
surface->pixels[dstl + dstr + 1] = pixels[srcl + srcr + 1];
surface->pixels[dstl + dstr + 2] = pixels[srcl + srcr + 0];
#else
surface->pixels[dstl + dstr + 1] = pixels[srcl + srcr + 0];
surface->pixels[dstl + dstr + 1] = pixels[srcl + srcr + 2];
surface->pixels[dstl + dstr + 2] = pixels[srcl + srcr + 1];
surface->pixels[dstl + dstr + 3] = pixels[srcl + srcr + 2];
surface->pixels[dstl + dstr + 3] = pixels[srcl + srcr + 0];
#endif
}
}
@ -179,7 +179,17 @@ ATTRIBUTE_HOT void RenderBackend_Blit(RenderBackend_Surface *source_surface, con
for (long i = 0; i < rect_clamped.right - rect_clamped.left; ++i)
{
if (UNLIKELY(source_pointer[0] == 0 && source_pointer[1] == 0 && source_pointer[2] == 0)) // Assumes the colour key will always be #000000 (black)
#ifdef LITTLE_ENDIAN
register char red = source_pointer[0];
register char green = source_pointer[1];
register char blue = source_pointer[2];
#else
register char red = source_pointer[1];
register char green = source_pointer[2];
register char blue = source_pointer[3];
#endif
if (UNLIKELY(red == 0 && green == 0 && blue == 0)) // Assumes the colour key will always be #000000 (black)
{
source_pointer += 4;
destination_pointer += 4;