Switch back to normal swapping

This commit is contained in:
Luke Benstead 2019-03-25 12:38:34 +00:00
parent 0e71588e6c
commit 8fd90bd040

View File

@ -538,22 +538,29 @@ static inline void transformNormalToEyeSpace(GLfloat* normal) {
/* FIXME: SH4 has a swap.w instruction, we should leverage it here! */ /* FIXME: SH4 has a swap.w instruction, we should leverage it here! */
#define _XOR_SWAP32(x, y) \ #define _SWAP32(x, y) \
do { \
uint32_t t = *((uint32_t*) &x); \
*((uint32_t*) &x) = *((uint32_t*) &y); \
*((uint32_t*) &y) = t; \
} while(0)
/*
*((uint32_t*) &x) = *((uint32_t*) &x) ^ *((uint32_t*) &y); \ *((uint32_t*) &x) = *((uint32_t*) &x) ^ *((uint32_t*) &y); \
*((uint32_t*) &y) = *((uint32_t*) &x) ^ *((uint32_t*) &y); \ *((uint32_t*) &y) = *((uint32_t*) &x) ^ *((uint32_t*) &y); \
*((uint32_t*) &x) = *((uint32_t*) &x) ^ *((uint32_t*) &y); *((uint32_t*) &x) = *((uint32_t*) &x) ^ *((uint32_t*) &y); */
#define swapVertex(a, b) \ #define swapVertex(a, b) \
do { \ do { \
_XOR_SWAP32(a->flags, b->flags); \ _SWAP32(a->flags, b->flags); \
_XOR_SWAP32(a->xyz[0], b->xyz[0]); \ _SWAP32(a->xyz[0], b->xyz[0]); \
_XOR_SWAP32(a->xyz[1], b->xyz[1]); \ _SWAP32(a->xyz[1], b->xyz[1]); \
_XOR_SWAP32(a->xyz[2], b->xyz[2]); \ _SWAP32(a->xyz[2], b->xyz[2]); \
_XOR_SWAP32(a->uv[0], b->uv[0]); \ _SWAP32(a->uv[0], b->uv[0]); \
_XOR_SWAP32(a->uv[1], b->uv[1]); \ _SWAP32(a->uv[1], b->uv[1]); \
_XOR_SWAP32(a->bgra, b->bgra); \ _SWAP32(a->bgra, b->bgra); \
_XOR_SWAP32(a->w, b->w); \ _SWAP32(a->w, b->w); \
} while(0) } while(0)