diff options
Diffstat (limited to 'src/osd/sdl/blit13.h')
-rw-r--r-- | src/osd/sdl/blit13.h | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/osd/sdl/blit13.h b/src/osd/sdl/blit13.h index e415a81dbd0..0888f00da8c 100644 --- a/src/osd/sdl/blit13.h +++ b/src/osd/sdl/blit13.h @@ -53,47 +53,47 @@ INLINE UINT32 pixel_ycc_to_rgb_pal(UINT16 *pixel, const rgb_t *palette) #define OP_RGB32_ARGB32(_src) ((_src) | 0xff000000) #define OP_RGB32PAL_ARGB32(_src) \ - (texsource->palette[0x200 + (((_src) >> 16) & 0xff) ] | \ - texsource->palette[0x100 + (((_src) >> 8) & 0xff) ] | \ - texsource->palette[((_src) & 0xff) ] | 0xff000000) + (palbase[0x200 + (((_src) >> 16) & 0xff) ] | \ + palbase[0x100 + (((_src) >> 8) & 0xff) ] | \ + palbase[((_src) & 0xff) ] | 0xff000000) -#define OP_PAL16_ARGB32(_src) (0xff000000 | texsource->palette[_src]) +#define OP_PAL16_ARGB32(_src) (0xff000000 | palbase[_src]) -#define OP_PAL16A_ARGB32(_src) (texsource->palette[_src]) +#define OP_PAL16A_ARGB32(_src) (palbase[_src]) #define OP_RGB15_ARGB32(_src) (0xff000000 | ((_src & 0x7c00) << 9) | ((_src & 0x03e0) << 6) | ((_src & 0x001f) << 3) | \ ((((_src & 0x7c00) << 9) | ((_src & 0x03e0) << 6) | ((_src & 0x001f) << 3) >> 5) & 0x070707)) -#define OP_RGB15PAL_ARGB32(_src) (0xff000000 | texsource->palette[0x40 + ((_src >> 10) & 0x1f)] | \ - texsource->palette[0x20 + ((_src >> 5) & 0x1f)] | texsource->palette[0x00 + ((_src >> 0) & 0x1f)]) +#define OP_RGB15PAL_ARGB32(_src) (0xff000000 | palbase[0x40 + ((_src >> 10) & 0x1f)] | \ + palbase[0x20 + ((_src >> 5) & 0x1f)] | palbase[0x00 + ((_src >> 0) & 0x1f)]) #define OP_ARGB32_RGB32(_pixel) premult32(_pixel) -#define OP_PAL16A_RGB32(_src) premult32(texsource->palette[_src]) +#define OP_PAL16A_RGB32(_src) premult32(palbase[_src]) -#define OP_PAL16_ARGB1555(_src) ((texsource->palette[_src]&0xf80000) >> 9 | \ - (texsource->palette[_src]&0x00f800) >> 6 | \ - (texsource->palette[_src]&0x0000f8) >> 3 | 0x8000) +#define OP_PAL16_ARGB1555(_src) ((palbase[_src]&0xf80000) >> 9 | \ + (palbase[_src]&0x00f800) >> 6 | \ + (palbase[_src]&0x0000f8) >> 3 | 0x8000) #define OP_RGB15_ARGB1555(_src) ((_src) | 0x8000) -#define OP_RGB15PAL_ARGB1555(_src) ((texsource->palette[(_src) >> 10] & 0xf8) << 7 | \ - (texsource->palette[((_src) >> 5) & 0x1f] & 0xf8) << 2 | \ - (texsource->palette[(_src) & 0x1f] & 0xf8) >> 3 | 0x8000) +#define OP_RGB15PAL_ARGB1555(_src) ((palbase[(_src) >> 10] & 0xf8) << 7 | \ + (palbase[((_src) >> 5) & 0x1f] & 0xf8) << 2 | \ + (palbase[(_src) & 0x1f] & 0xf8) >> 3 | 0x8000) #define OP_YUV16_UYVY(_src) (_src) -#define OP_YUV16PAL_UYVY(_src) ((texsource->palette[((_src) >> 8) & 0xff] << 8) | ((_src) & 0x00ff)) +#define OP_YUV16PAL_UYVY(_src) ((palbase[((_src) >> 8) & 0xff] << 8) | ((_src) & 0x00ff)) -#define OP_YUV16PAL_YVYU(_src) ((texsource->palette[((_src) >> 8) & 0xff] & 0xff) | ((_src & 0xff) << 8)) +#define OP_YUV16PAL_YVYU(_src) ((palbase[((_src) >> 8) & 0xff] & 0xff) | ((_src & 0xff) << 8)) #define OP_YUV16_YVYU(_src) ((((_src) >> 8) & 0xff) | ((_src & 0xff) << 8)) #define OP_YUV16_YUY2(_src) ( ((_src) & 0xff00ff00) | \ (((_src)>>16)&0xff) | (((_src)<<16)&0xff0000) ) -#define OP_YUV16PAL_YUY2(_src) ( (texsource->palette[((_src)>>8) & 0xff]) | \ - (texsource->palette[((_src)>>24) & 0xff]<<16) | \ +#define OP_YUV16PAL_YUY2(_src) ( (palbase[((_src)>>8) & 0xff]) | \ + (palbase[((_src)>>24) & 0xff]<<16) | \ (((_src)<<8)&0xff00ff00) ) #define OP_YUV16_ARGB32(_src) \ @@ -101,12 +101,12 @@ INLINE UINT32 pixel_ycc_to_rgb_pal(UINT16 *pixel, const rgb_t *palette) | ((UINT64)ycc_to_rgb(((_src) >> 24) & 0xff, (_src) & 0xff , ((_src)>>16) & 0xff) << 32) #define OP_YUV16PAL_ARGB32(_src) \ - (UINT64)ycc_to_rgb(texsource->palette[((_src) >> 8) & 0xff], (_src) & 0xff , ((_src)>>16) & 0xff) \ - | ((UINT64)ycc_to_rgb(texsource->palette[((_src) >> 24) & 0xff], (_src) & 0xff , ((_src)>>16) & 0xff) << 32) + (UINT64)ycc_to_rgb(palbase[((_src) >> 8) & 0xff], (_src) & 0xff , ((_src)>>16) & 0xff) \ + | ((UINT64)ycc_to_rgb(palbase[((_src) >> 24) & 0xff], (_src) & 0xff , ((_src)>>16) & 0xff) << 32) #define OP_YUV16_ARGB32ROT(_src) pixel_ycc_to_rgb(&(_src)) -#define OP_YUV16PAL_ARGB32ROT(_src) pixel_ycc_to_rgb_pal(&(_src), texsource->palette) +#define OP_YUV16PAL_ARGB32ROT(_src) pixel_ycc_to_rgb_pal(&(_src), palbase) //============================================================ // Copy and rotation @@ -114,6 +114,7 @@ INLINE UINT32 pixel_ycc_to_rgb_pal(UINT16 *pixel, const rgb_t *palette) #define TEXCOPY_M( _name, _src_type, _dest_type, _op, _len_div) \ INLINE void texcopy_##_name (texture_info *texture, const render_texinfo *texsource) { \ + const rgb_t *palbase = texsource->palette(); \ int x, y; \ /* loop over Y */ \ for (y = 0; y < texsource->height; y++) { \ @@ -133,6 +134,7 @@ INLINE void texcopy_##_name (texture_info *texture, const render_texinfo *texsou #define TEXROT( _name, _src_type, _dest_type, _op) \ INLINE void texcopy_rot_##_name (texture_info *texture, const render_texinfo *texsource) { \ + const rgb_t *palbase = texsource->palette(); \ int x, y; \ quad_setup_data *setup = &texture->setup; \ int dudx = setup->dudx; \ |