World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Файл ImageFormatConverter.h

См. исходные тексты.

Определения типов

typedef bool(* ImageFormatConverter) (unsigned int num_pixels, const void *src, void *dst)
 

Функции

uint32_t R5G6B5_to_A8R8G8B8 (uint16_t color16, unsigned char alpha)
 
uint32_t R5G6B5_to_R8G8B8A8 (uint16_t color16, unsigned char alpha)
 
uint16_t A8R8G8B8_to_R5G6B5 (uint32_t c)
 
uint16_t A8R8G8B8_to_A1R5G5B5 (uint32_t c)
 
uint32_t A8R8G8B8_to_R8G8B8A8 (uint32_t c)
 
bool Image_A8R8G8B8_to_R8G8B8A8 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
bool Image_A8R8G8B8_to_R5G6B5 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
bool Image_A8R8G8B8_to_A1R5G5B5 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
bool Image_R5G6B5_to_A8R8G8B8 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
bool Image_R5G6B5_to_R8G8B8A8 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
unsigned int R5G6B5_extract_R (uint16_t c)
 
unsigned int R5G6B5_extract_G (uint16_t c)
 
unsigned int R5G6B5_extract_B (uint16_t c)
 
bool Image_R5G6B5_to_R8G8B8 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 
unsigned int A1R5G5B5_extract_A (uint16_t c)
 
unsigned int A1R5G5B5_extract_R (uint16_t c)
 
unsigned int A1R5G5B5_extract_G (uint16_t c)
 
unsigned int A1R5G5B5_extract_B (uint16_t c)
 
bool Image_A1R5G5B5_to_R8G8B8A8 (unsigned int num_pixels, const void *src_pixels, void *dst_pixels)
 

Типы

◆ ImageFormatConverter

typedef bool(* ImageFormatConverter) (unsigned int num_pixels, const void *src, void *dst)

См. определение в файле ImageFormatConverter.h строка 3

Функции

◆ R5G6B5_to_A8R8G8B8()

uint32_t R5G6B5_to_A8R8G8B8 ( uint16_t  color16,
unsigned char  alpha 
)
inline

См. определение в файле ImageFormatConverter.h строка 6

6  {
7  uint32_t c = color16;
8  unsigned int b = (c & 31) * 8;
9  unsigned int g = ((c >> 5) & 63) * 4;
10  unsigned int r = ((c >> 11) & 31) * 8;
11 
12  return ((unsigned int)alpha << 24) | (r << 16) | (g << 8) | b;
13 }

Используется в Image_R5G6B5_to_A8R8G8B8().

+ Граф вызова функции:

◆ R5G6B5_to_R8G8B8A8()

uint32_t R5G6B5_to_R8G8B8A8 ( uint16_t  color16,
unsigned char  alpha 
)
inline

См. определение в файле ImageFormatConverter.h строка 15

15  { // eh what?? ABGR
16  uint32_t c = color16;
17  unsigned int b = (c & 31) * 8;
18  unsigned int g = ((c >> 5) & 63) * 4;
19  unsigned int r = ((c >> 11) & 31) * 8;
20 
21  return (((unsigned int)alpha << 24) & 0xFF000000) | ((b << 16) & 0x00FF0000) | ((g << 8) & 0x0000FF00) | (r & 0x000000FF);
22 }

Используется в Image_R5G6B5_to_R8G8B8A8().

+ Граф вызова функции:

◆ A8R8G8B8_to_R5G6B5()

uint16_t A8R8G8B8_to_R5G6B5 ( uint32_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 24

24  {
25  uint32_t b = ((c & 0xFF) / 8) & 31;
26  uint32_t g = (((c >> 8) & 0xFF) / 4) & 63;
27  uint32_t r = (((c >> 16) & 0xFF) / 8) & 31;
28 
29  return (uint16_t)((r << 11) | (g << 5) | b);
30 }

Используется в Image_A8R8G8B8_to_R5G6B5().

+ Граф вызова функции:

◆ A8R8G8B8_to_A1R5G5B5()

uint16_t A8R8G8B8_to_A1R5G5B5 ( uint32_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 32

32  {
33  uint32_t b = ((c & 0xFF) / 8) & 31;
34  uint32_t g = (((c >> 8) & 0xFF) / 8) & 31;
35  uint32_t r = (((c >> 16) & 0xFF) / 8) & 31;
36  uint32_t a = (((c >> 24) & 0xFF)) == 255;
37 
38  return (uint16_t)( (a << 15) |(r << 10) | (g << 5) | b);
39 }

Используется в Image_A8R8G8B8_to_A1R5G5B5().

+ Граф вызова функции:

◆ A8R8G8B8_to_R8G8B8A8()

uint32_t A8R8G8B8_to_R8G8B8A8 ( uint32_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 42

42  { // eh waht ?? ABGR
43  return (c & 0xFF000000) | (c & 0x000000FF) << 16 | (c & 0x0000FF00) | (c & 0x00FF0000) >> 16;
44 }

Используется в Image_A8R8G8B8_to_R8G8B8A8().

+ Граф вызова функции:

◆ Image_A8R8G8B8_to_R8G8B8A8()

bool Image_A8R8G8B8_to_R8G8B8A8 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 46

46  {
47  auto src = (uint32_t*)src_pixels;
48  auto dst = (uint32_t*)dst_pixels;
49 
50  for (unsigned int i = 0; i < num_pixels; ++i) {
51  dst[i] = A8R8G8B8_to_R8G8B8A8(src[i]);
52  }
53 
54  return true;
55 }

Перекрестные ссылки A8R8G8B8_to_R8G8B8A8().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ Image_A8R8G8B8_to_R5G6B5()

bool Image_A8R8G8B8_to_R5G6B5 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 57

58  {
59  auto src = (uint32_t*)src_pixels;
60  auto dst = (uint16_t*)dst_pixels;
61 
62  for (unsigned int i = 0; i < num_pixels; ++i) {
63  dst[i] = A8R8G8B8_to_R5G6B5(src[i]);
64  }
65 
66  return true;
67 }

Перекрестные ссылки A8R8G8B8_to_R5G6B5().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ Image_A8R8G8B8_to_A1R5G5B5()

bool Image_A8R8G8B8_to_A1R5G5B5 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 69

70  {
71 
72  auto src = (uint32_t*)src_pixels;
73  auto dst = (uint16_t*)dst_pixels;
74 
75  for (unsigned int i = 0; i < num_pixels; ++i) {
76  dst[i] = A8R8G8B8_to_A1R5G5B5(src[i]);
77  }
78 
79  return true;
80 }

Перекрестные ссылки A8R8G8B8_to_A1R5G5B5().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ Image_R5G6B5_to_A8R8G8B8()

bool Image_R5G6B5_to_A8R8G8B8 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 82

83  {
84  auto src = (uint16_t*)src_pixels;
85  auto dst = (uint32_t*)dst_pixels;
86 
87  for (unsigned int i = 0; i < num_pixels; ++i) {
88  dst[i] = R5G6B5_to_A8R8G8B8(src[i], 0xFF);
89  }
90 
91  return true;
92 }

Перекрестные ссылки R5G6B5_to_A8R8G8B8().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ Image_R5G6B5_to_R8G8B8A8()

bool Image_R5G6B5_to_R8G8B8A8 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 94

95  {
96  auto src = (uint16_t*)src_pixels;
97  auto dst = (uint32_t*)dst_pixels;
98 
99  for (unsigned int i = 0; i < num_pixels; ++i) {
100  dst[i] = R5G6B5_to_R8G8B8A8(src[i], 255);
101  }
102 
103  return true;
104 }

Перекрестные ссылки R5G6B5_to_R8G8B8A8().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ R5G6B5_extract_R()

unsigned int R5G6B5_extract_R ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 106

106  {
107  return 8 * ((c >> 11) & 0x1F);
108 }

Используется в Image_R5G6B5_to_R8G8B8().

+ Граф вызова функции:

◆ R5G6B5_extract_G()

unsigned int R5G6B5_extract_G ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 109

109  {
110  return 4 * ((c >> 5) & 0x3F);
111 }

Используется в Image_R5G6B5_to_R8G8B8().

+ Граф вызова функции:

◆ R5G6B5_extract_B()

unsigned int R5G6B5_extract_B ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 112

112  {
113  return 8 * ((c >> 0) & 0x1F);
114 }

Используется в Image_R5G6B5_to_R8G8B8().

+ Граф вызова функции:

◆ Image_R5G6B5_to_R8G8B8()

bool Image_R5G6B5_to_R8G8B8 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 116

117  {
118  auto src = (uint16_t*)src_pixels;
119  auto dst = (uint8_t*)dst_pixels;
120 
121  for (unsigned int i = 0; i < num_pixels; ++i) {
122  dst[i * 3 + 0] = R5G6B5_extract_R(src[i]);
123  dst[i * 3 + 1] = R5G6B5_extract_G(src[i]);
124  dst[i * 3 + 2] = R5G6B5_extract_B(src[i]);
125  }
126 
127  return true;
128 }

Перекрестные ссылки R5G6B5_extract_B(), R5G6B5_extract_G() и R5G6B5_extract_R().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:

◆ A1R5G5B5_extract_A()

unsigned int A1R5G5B5_extract_A ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 130

130  {
131  return c & 0x8000 ? 255 : 0;
132 }

Используется в Image_A1R5G5B5_to_R8G8B8A8().

+ Граф вызова функции:

◆ A1R5G5B5_extract_R()

unsigned int A1R5G5B5_extract_R ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 133

133  {
134  return 8 * ((c >> 10) & 0x1F);
135 }

Используется в Image_A1R5G5B5_to_R8G8B8A8().

+ Граф вызова функции:

◆ A1R5G5B5_extract_G()

unsigned int A1R5G5B5_extract_G ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 136

136  {
137  return 8 * ((c >> 5) & 0x1F);
138 }

Используется в Image_A1R5G5B5_to_R8G8B8A8().

+ Граф вызова функции:

◆ A1R5G5B5_extract_B()

unsigned int A1R5G5B5_extract_B ( uint16_t  c)
inline

См. определение в файле ImageFormatConverter.h строка 139

139  {
140  return 8 * ((c >> 0) & 0x1F);
141 }

Используется в Image_A1R5G5B5_to_R8G8B8A8().

+ Граф вызова функции:

◆ Image_A1R5G5B5_to_R8G8B8A8()

bool Image_A1R5G5B5_to_R8G8B8A8 ( unsigned int  num_pixels,
const void src_pixels,
void dst_pixels 
)
inline

См. определение в файле ImageFormatConverter.h строка 143

145  {
146  auto src = (uint16_t*)src_pixels;
147  auto dst = (uint8_t*)dst_pixels;
148 
149  for (unsigned int i = 0; i < num_pixels; ++i) {
150  dst[i * 4 + 0] = A1R5G5B5_extract_R(src[i]);
151  dst[i * 4 + 1] = A1R5G5B5_extract_G(src[i]);
152  dst[i * 4 + 2] = A1R5G5B5_extract_B(src[i]);
153  dst[i * 4 + 3] = A1R5G5B5_extract_A(src[i]);
154  }
155 
156  return true;
157 }

Перекрестные ссылки A1R5G5B5_extract_A(), A1R5G5B5_extract_B(), A1R5G5B5_extract_G() и A1R5G5B5_extract_R().

Используется в Image::GetPixels().

+ Граф вызовов:
+ Граф вызова функции:
uint16_t
unsigned __int16 uint16_t
Definition: SDL_config.h:37
A1R5G5B5_extract_A
unsigned int A1R5G5B5_extract_A(uint16_t c)
Definition: ImageFormatConverter.h:130
A1R5G5B5_extract_B
unsigned int A1R5G5B5_extract_B(uint16_t c)
Definition: ImageFormatConverter.h:139
A8R8G8B8_to_R5G6B5
uint16_t A8R8G8B8_to_R5G6B5(uint32_t c)
Definition: ImageFormatConverter.h:24
A8R8G8B8_to_A1R5G5B5
uint16_t A8R8G8B8_to_A1R5G5B5(uint32_t c)
Definition: ImageFormatConverter.h:32
alpha
GLfloat GLfloat GLfloat alpha
Definition: SDL_opengl_glext.h:415
src
GLenum src
Definition: SDL_opengl_glext.h:1740
A1R5G5B5_extract_R
unsigned int A1R5G5B5_extract_R(uint16_t c)
Definition: ImageFormatConverter.h:133
R5G6B5_extract_R
unsigned int R5G6B5_extract_R(uint16_t c)
Definition: ImageFormatConverter.h:106
dst
GLenum GLenum dst
Definition: SDL_opengl_glext.h:1740
R5G6B5_to_A8R8G8B8
uint32_t R5G6B5_to_A8R8G8B8(uint16_t color16, unsigned char alpha)
Definition: ImageFormatConverter.h:6
A8R8G8B8_to_R8G8B8A8
uint32_t A8R8G8B8_to_R8G8B8A8(uint32_t c)
Definition: ImageFormatConverter.h:42
uint8_t
unsigned __int8 uint8_t
Definition: SDL_config.h:35
R5G6B5_to_R8G8B8A8
uint32_t R5G6B5_to_R8G8B8A8(uint16_t color16, unsigned char alpha)
Definition: ImageFormatConverter.h:15
b
GLboolean GLboolean GLboolean b
Definition: SDL_opengl_glext.h:1112
r
GLdouble GLdouble GLdouble r
Definition: SDL_opengl.h:2079
c
const GLubyte * c
Definition: SDL_opengl_glext.h:11096
R5G6B5_extract_B
unsigned int R5G6B5_extract_B(uint16_t c)
Definition: ImageFormatConverter.h:112
a
GLboolean GLboolean GLboolean GLboolean a
Definition: SDL_opengl_glext.h:1112
R5G6B5_extract_G
unsigned int R5G6B5_extract_G(uint16_t c)
Definition: ImageFormatConverter.h:109
g
GLboolean GLboolean g
Definition: SDL_opengl_glext.h:1112
uint32_t
unsigned __int32 uint32_t
Definition: SDL_config.h:39
A1R5G5B5_extract_G
unsigned int A1R5G5B5_extract_G(uint16_t c)
Definition: ImageFormatConverter.h:136