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

#include <ImageLoader.h>

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

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

 Image16bit_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 строка 42

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

◆ Image16bit_LOD_Loader()

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

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

45  {
46  this->resource_name = filename;
47  this->lod = lod;
48  }

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

Методы

◆ Load()

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

Замещает ImageLoader.

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

110  {
111  *out_width = 0;
112  *out_height = 0;
113  *out_pixels = nullptr;
114  *out_format = IMAGE_INVALID_FORMAT;
115 
116  Texture_MM7 *tex = lod->GetTexture(
117  lod->LoadTexture(resource_name.c_str(), TEXTURE_24BIT_PALETTE));
118  if ((tex == nullptr) || (tex->pPalette24 == nullptr) ||
119  (tex->paletted_pixels == nullptr)) {
120  return false;
121  }
122 
123  if (tex->header.pBits & 512) {
124  *out_pixels = MakeImageAlpha(tex->header.uTextureWidth,
125  tex->header.uTextureHeight,
126  tex->paletted_pixels, tex->pPalette24);
127  } else {
128  *out_pixels = MakeImageSolid(tex->header.uTextureWidth,
129  tex->header.uTextureHeight,
130  tex->paletted_pixels, tex->pPalette24);
131  }
132 
133  if (*out_pixels == nullptr) {
134  return false;
135  }
136 
137  *out_width = tex->header.uTextureWidth;
138  *out_height = tex->header.uTextureHeight;
139  *out_format = IMAGE_FORMAT_A8R8G8B8;
140 
141  return true;
142 }

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

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

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

◆ lod

LODFile_IconsBitmaps* Image16bit_LOD_Loader::lod
protected

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

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


Объявления и описания членов классов находятся в файлах:
MakeImageSolid
uint32_t * MakeImageSolid(unsigned int width, unsigned int height, uint8_t *pixels, uint8_t *palette)
Definition: ImageLoader.cpp:12
Image16bit_LOD_Loader::lod
LODFile_IconsBitmaps * lod
Definition: ImageLoader.h:54
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
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