blob: 6f9a7573ef67a48f23fc1ea727953ba78eb1a984 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#ifdef DEST_TYPE
#undef DEST_TYPE
#endif
#ifdef DEST_NAME
#undef DEST_NAME
#endif
#ifdef TEXSRC_TYPE
#undef TEXSRC_TYPE
#endif
#ifdef TEXSRC_TO_DEST
#undef TEXSRC_TO_DEST
#endif
#ifdef SRC_EQUALS_DEST
#undef SRC_EQUALS_DEST
#endif
#ifdef FUNC_NAME
#undef FUNC_NAME
#endif
#if SDL_TEXFORMAT == SDL_TEXFORMAT_ARGB32
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT32
#define TEXSRC_TO_DEST(src) (src)
#define SRC_EQUALS_DEST
#define FUNC_NAME(name) name ## _argb32
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB32
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT32
#define TEXSRC_TO_DEST(src) ((src) | 0xff000000)
#define FUNC_NAME(name) name ## _rgb32
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB32_PALETTED
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT32
#define TEXSRC_TO_DEST(src) \
(texsource->palette[0x200 + src.r()] | \
texsource->palette[0x100 + src.g()] | \
texsource->palette[src.b()] | 0xff000000)
#define FUNC_NAME(name) name ## _rgb32_paletted
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_PALETTE16
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) \
(0xff000000 | texsource->palette[src])
#define FUNC_NAME(name) name ## _palette16
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_PALETTE16A
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) \
(texsource->palette[src])
#define FUNC_NAME(name) name ## _palette16a
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB15
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) (0xff000000 | ((src & 0x7c00) << 9) | ((src & 0x03e0) << 6) | ((src & 0x001f) << 3) | \
((((src & 0x7c00) << 9) | ((src & 0x03e0) << 6) | ((src & 0x001f) << 3) >> 5) & 0x070707))
#define FUNC_NAME(name) name ## _rgb15
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB15_PALETTED
#define DEST_TYPE UINT32
#define DEST_NAME(name) name ## _32bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) (0xff000000 | texsource->palette[0x40 + ((src >> 10) & 0x1f)] | \
texsource->palette[0x20 + ((src >> 5) & 0x1f)] | texsource->palette[0x00 + ((src >> 0) & 0x1f)])
#define FUNC_NAME(name) name ## _rgb15_paletted
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_YUY16 && defined(SDLMAME_MACOSX)
#define DEST_TYPE UINT16
#define DEST_NAME(name) name ## _16bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) ((src >> 8) | (src << 8))
#define FUNC_NAME(name) name ## _yuv16_apple
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_YUY16_PALETTED && defined(SDLMAME_MACOSX)
#define DEST_TYPE UINT16
#define DEST_NAME(name) name ## _16bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) (texsource->palette[0x000 + (src >> 8)] | (src << 8))
#define FUNC_NAME(name) name ## _yuv16_paletted_apple
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_PALETTE16_ARGB1555
#define DEST_TYPE UINT16
#define DEST_NAME(name) name ## _16bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) \
((texsource->palette[src]&0xf80000) >> 9 | \
(texsource->palette[src]&0x00f800) >> 6 | \
(texsource->palette[src]&0x0000f8) >> 3 | 0x8000)
#define FUNC_NAME(name) name ## _palette16_argb1555
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB15_ARGB1555
#define DEST_TYPE UINT16
#define DEST_NAME(name) name ## _16bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) ((src) | 0x8000)
#define FUNC_NAME(name) name ## _rgb15_argb1555
#elif SDL_TEXFORMAT == SDL_TEXFORMAT_RGB15_PALETTED_ARGB1555
#define DEST_TYPE UINT16
#define DEST_NAME(name) name ## _16bpp
#define TEXSRC_TYPE UINT16
#define TEXSRC_TO_DEST(src) \
((texsource->palette[(src) >> 10] & 0xf8) << 7 | \
(texsource->palette[((src) >> 5) & 0x1f] & 0xf8) << 2 | \
(texsource->palette[(src) & 0x1f] & 0xf8) >> 3 | 0x8000)
#define FUNC_NAME(name) name ## _rgb15_paletted_argb1555
#else
#error Unknown SRC_TEXFORMAT
#endif
|