World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Класс Alpha_LOD_Loader

#include <ImageLoader.h>

+ Граф наследования:Alpha_LOD_Loader:
+ Граф связей класса Alpha_LOD_Loader:

Открытые члены

 Alpha_LOD_Loader (LODFile_IconsBitmaps *lod, const String &filename)
 
virtual bool Load (unsigned int *width, unsigned int *height, void **pixels, IMAGE_FORMAT *format)
 
- Открытые члены унаследованные от ImageLoader
 ImageLoader ()
 
virtual String GetResourceName () const
 

Защищенные данные

LODFile_IconsBitmapslod
 
- Защищенные данные унаследованные от ImageLoader
String resource_name
 
Loglog
 

Подробное описание

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

Конструктор(ы)

◆ Alpha_LOD_Loader()

Alpha_LOD_Loader::Alpha_LOD_Loader ( LODFile_IconsBitmaps lod,
const String filename 
)
inline

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

59  {
60  this->resource_name = filename;
61  this->lod = lod;
62  }

Перекрестные ссылки lod и ImageLoader::resource_name.

Методы

◆ Load()

bool Alpha_LOD_Loader::Load ( unsigned int *  width,
unsigned int *  height,
void **  pixels,
IMAGE_FORMAT format 
)
virtual

Замещает ImageLoader.

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

145  {
146  *out_width = 0;
147  *out_height = 0;
148  *out_pixels = nullptr;
149  *out_format = IMAGE_INVALID_FORMAT;
150 
151  Texture_MM7 *tex = lod->GetTexture(
152  lod->LoadTexture(resource_name.c_str(), TEXTURE_24BIT_PALETTE));
153  if ((tex == nullptr) || (tex->pPalette24 == nullptr) ||
154  (tex->paletted_pixels == nullptr)) {
155  return false;
156  }
157 
158  if ((tex->header.pBits == 0) || (tex->header.pBits & 512)) {
159  *out_pixels = MakeImageAlpha(tex->header.uTextureWidth,
160  tex->header.uTextureHeight,
161  tex->paletted_pixels, tex->pPalette24);
162  } else {
163  *out_pixels = MakeImageColorKey(
165  tex->paletted_pixels, tex->pPalette24, 0x7FF);
166  }
167 
168  if (*out_pixels == nullptr) {
169  return false;
170  }
171 
172  *out_width = tex->header.uTextureWidth;
173  *out_height = tex->header.uTextureHeight;
174  *out_format = IMAGE_FORMAT_A8R8G8B8;
175 
176  return true;
177 }

Перекрестные ссылки Texture_MM7::header, IMAGE_FORMAT_A8R8G8B8, IMAGE_INVALID_FORMAT, MakeImageAlpha(), MakeImageColorKey(), Texture_MM7::paletted_pixels, TextureHeader::pBits, Texture_MM7::pPalette24, ImageLoader::resource_name, TEXTURE_24BIT_PALETTE, TextureHeader::uTextureHeight и TextureHeader::uTextureWidth.

+ Граф вызовов:

Данные класса

◆ lod

LODFile_IconsBitmaps* Alpha_LOD_Loader::lod
protected

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

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


Объявления и описания членов классов находятся в файлах:
Alpha_LOD_Loader::lod
LODFile_IconsBitmaps * lod
Definition: ImageLoader.h:68
IMAGE_INVALID_FORMAT
@ IMAGE_INVALID_FORMAT
Definition: Image.h:12
TextureHeader::pBits
uint32_t pBits
Definition: Image.h:91
Texture_MM7::paletted_pixels
uint8_t * paletted_pixels
Definition: Image.h:102
TEXTURE_24BIT_PALETTE
@ TEXTURE_24BIT_PALETTE
Definition: LOD.h:17
IMAGE_FORMAT_A8R8G8B8
@ IMAGE_FORMAT_A8R8G8B8
Definition: Image.h:7
Texture_MM7::header
TextureHeader header
Definition: Image.h:101
MakeImageColorKey
uint32_t * MakeImageColorKey(unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette, uint16_t color_key)
Definition: ImageLoader.cpp:50
TextureHeader::uTextureWidth
uint16_t uTextureWidth
Definition: Image.h:82
ImageLoader::resource_name
String resource_name
Definition: ImageLoader.h:21
Texture_MM7
Definition: Image.h:97
TextureHeader::uTextureHeight
uint16_t uTextureHeight
Definition: Image.h:83
Texture_MM7::pPalette24
uint8_t * pPalette24
Definition: Image.h:104
MakeImageAlpha
uint32_t * MakeImageAlpha(unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette)
Definition: ImageLoader.cpp:29
lod
GLint lod
Definition: SDL_opengl_glext.h:3478