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

#include <ImageLoader.h>

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

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

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

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

LODFile_Spriteslod
 
unsigned int palette_id
 
unsigned int lod_sprite_id
 
- Защищенные данные унаследованные от ImageLoader
String resource_name
 
Loglog
 

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

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

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

◆ Sprites_LOD_Loader()

Sprites_LOD_Loader::Sprites_LOD_Loader ( LODFile_Sprites lod,
unsigned int  palette_id,
const String filename,
unsigned int  lod_sprite_id 
)
inline

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

141  {
142  this->resource_name = filename;
143  this->lod = lod;
144  this->palette_id = palette_id;
146  }

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

Методы

◆ Load()

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

Замещает ImageLoader.

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

334  {
335  *width = 0;
336  *height = 0;
337  *out_pixels = nullptr;
339 
340  HWLTexture *hwl = render->LoadHwlSprite(this->resource_name.c_str());
341  if (hwl) {
342  int dst_width = hwl->uWidth;
343  int dst_height = hwl->uHeight;
344 
345  int num_pixels = dst_width * dst_height;
346  auto pixels = new uint16_t[num_pixels];
347  if (pixels) {
348  // linear scaling
349  for (int s = 0; s < dst_height; ++s) {
350  for (int t = 0; t < dst_width; ++t) {
351  unsigned int resampled_x = t * hwl->uWidth / dst_width,
352  resampled_y = s * hwl->uHeight / dst_height;
353 
354  unsigned short sample =
355  hwl->pPixels[resampled_y * hwl->uWidth + resampled_x];
356 
357  pixels[s * dst_width + t] = sample;
358  }
359  }
360 
361  delete[] hwl->pPixels;
362  delete hwl;
363 
364  *width = dst_width;
365  *height = dst_height;
367  }
368 
369  *out_pixels = pixels;
370  return true;
371  }
372 
373  return false;
374 }

Перекрестные ссылки IMAGE_FORMAT_A1R5G5B5, IMAGE_INVALID_FORMAT, HWLTexture::pPixels, render, ImageLoader::resource_name, HWLTexture::uHeight и HWLTexture::uWidth.

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

◆ lod

LODFile_Sprites* Sprites_LOD_Loader::lod
protected

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

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

◆ palette_id

unsigned int Sprites_LOD_Loader::palette_id
protected

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

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

◆ lod_sprite_id

unsigned int Sprites_LOD_Loader::lod_sprite_id
protected

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

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


Объявления и описания членов классов находятся в файлах:
uint16_t
unsigned __int16 uint16_t
Definition: SDL_config.h:37
s
GLdouble s
Definition: SDL_opengl.h:2063
height
EGLSurface EGLint EGLint EGLint EGLint height
Definition: SDL_egl.h:1596
IMAGE_INVALID_FORMAT
@ IMAGE_INVALID_FORMAT
Definition: Image.h:12
HWLTexture
Definition: HWLContainer.h:9
format
SDL_AudioFormat format
Definition: SDL_audio.h:194
Sprites_LOD_Loader::lod_sprite_id
unsigned int lod_sprite_id
Definition: ImageLoader.h:154
width
EGLSurface EGLint EGLint EGLint width
Definition: SDL_egl.h:1596
HWLTexture::uHeight
unsigned int uHeight
Definition: HWLContainer.h:18
HWLTexture::uWidth
unsigned int uWidth
Definition: HWLContainer.h:17
ImageLoader::resource_name
String resource_name
Definition: ImageLoader.h:21
HWLTexture::pPixels
uint16_t * pPixels
Definition: HWLContainer.h:21
t
GLdouble GLdouble t
Definition: SDL_opengl.h:2071
Sprites_LOD_Loader::palette_id
unsigned int palette_id
Definition: ImageLoader.h:153
IMAGE_FORMAT_A1R5G5B5
@ IMAGE_FORMAT_A1R5G5B5
Definition: Image.h:6
Sprites_LOD_Loader::lod
LODFile_Sprites * lod
Definition: ImageLoader.h:152
pixels
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: SDL_opengl.h:1572
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52