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

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

Функции

uint32_tMakeImageSolid (unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette)
 
uint32_tMakeImageAlpha (unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette)
 
uint32_tMakeImageColorKey (unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette, uint16_t color_key)
 

Функции

◆ MakeImageSolid()

uint32_t* MakeImageSolid ( unsigned int  width,
unsigned int  height,
uint8_t pixels,
uint8_t palette 
)

См. определение в файле ImageLoader.cpp строка 12

13  {
14  uint32_t *res = new uint32_t[width * height];
15 
16  for (unsigned int y = 0; y < height; ++y) {
17  for (unsigned int x = 0; x < width; ++x) {
18  int index = pixels[y * width + x];
19  auto r = palette[(index * 3) + 0];
20  auto g = palette[(index * 3) + 1];
21  auto b = palette[(index * 3) + 2];
22  res[y * width + x] = Color32(r, g, b);
23  }
24  }
25 
26  return res;
27 }

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

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

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

◆ MakeImageAlpha()

uint32_t* MakeImageAlpha ( unsigned int  width,
unsigned int  height,
uint8_t pixels,
uint8_t palette 
)

См. определение в файле ImageLoader.cpp строка 29

30  {
31  uint32_t *res = new uint32_t[width * height];
32 
33  for (unsigned int y = 0; y < height; ++y) {
34  for (unsigned int x = 0; x < width; ++x) {
35  int index = pixels[y * width + x];
36  auto r = palette[(index * 3) + 0];
37  auto g = palette[(index * 3) + 1];
38  auto b = palette[(index * 3) + 2];
39  if (index == 0) {
40  res[y * width + x] = 0x00000000;
41  } else {
42  res[y * width + x] = Color32(r, g, b);
43  }
44  }
45  }
46 
47  return res;
48 }

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

Используется в ColorKey_LOD_Loader::Load(), Image16bit_LOD_Loader::Load() и Alpha_LOD_Loader::Load().

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

◆ MakeImageColorKey()

uint32_t* MakeImageColorKey ( unsigned int  width,
unsigned int  height,
uint8_t pixels,
uint8_t palette,
uint16_t  color_key 
)

См. определение в файле ImageLoader.cpp строка 50

52  {
53  uint32_t *res = new uint32_t[width * height];
54 
55  for (unsigned int y = 0; y < height; ++y) {
56  for (unsigned int x = 0; x < width; ++x) {
57  int index = pixels[y * width + x];
58  auto r = palette[(index * 3) + 0];
59  auto g = palette[(index * 3) + 1];
60  auto b = palette[(index * 3) + 2];
61  if (Color16(r, g, b) == color_key) {
62  res[y * width + x] = 0x00000000;
63  } else {
64  res[y * width + x] = Color32(r, g, b);
65  }
66  }
67  }
68 
69  return res;
70 }

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

Используется в ColorKey_LOD_Loader::Load() и Alpha_LOD_Loader::Load().

+ Граф вызовов:
+ Граф вызова функции:
height
EGLSurface EGLint EGLint EGLint EGLint height
Definition: SDL_egl.h:1596
Color32
uint32_t Color32(uint16_t color16)
Definition: Engine.cpp:135
index
GLuint index
Definition: SDL_opengl_glext.h:663
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
width
EGLSurface EGLint EGLint EGLint width
Definition: SDL_egl.h:1596
b
GLboolean GLboolean GLboolean b
Definition: SDL_opengl_glext.h:1112
r
GLdouble GLdouble GLdouble r
Definition: SDL_opengl.h:2079
res
GLuint res
Definition: SDL_opengl_glext.h:7940
Color16
uint16_t Color16(uint32_t r, uint32_t g, uint32_t b)
Definition: Engine.cpp:148
g
GLboolean GLboolean g
Definition: SDL_opengl_glext.h:1112
pixels
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: SDL_opengl.h:1572
uint32_t
unsigned __int32 uint32_t
Definition: SDL_config.h:39