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 + 1] = pixels[srcl + srcr + 1];
surface->pixels[dstl + dstr + 2] = pixels[srcl + srcr + 0]; surface->pixels[dstl + dstr + 2] = pixels[srcl + srcr + 0];
#else #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 + 2] = pixels[srcl + srcr + 1];
surface->pixels[dstl + dstr + 3] = pixels[srcl + srcr + 2]; surface->pixels[dstl + dstr + 3] = pixels[srcl + srcr + 0];
#endif #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) 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; source_pointer += 4;
destination_pointer += 4; destination_pointer += 4;