World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Пространство имен zlib

Функции

int Uncompress (void *dest, unsigned int *destLen, const void *source, unsigned int sourceLen)
 
int Compress (void *dest, unsigned int *destLen, void *source, unsigned int sourceLen)
 
PMemBuffer Compress (PMemBuffer source)
 
PMemBuffer Uncompress (PMemBuffer source)
 

Функции

◆ Uncompress() [1/2]

int zlib::Uncompress ( void dest,
unsigned int *  destLen,
const void source,
unsigned int  sourceLen 
)

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

7  {
8  return uncompress((Bytef *)dest, (uLongf *)destLen, (Bytef *)source, sourceLen);
9 }

Используется в LOD::File::LoadCompressed(), LOD::File::LoadCompressedTexture(), AudioPlayer::LoadSound(), LODFile_Sprites::LoadSpriteFromFile(), HWLContainer::LoadTexture(), LODFile_IconsBitmaps::LoadTextureFromLOD() и LODFile_IconsBitmaps::ReloadTexture().

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

◆ Compress() [1/2]

int zlib::Compress ( void dest,
unsigned int *  destLen,
void source,
unsigned int  sourceLen 
)

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

11  {
12  return compress((Bytef *)dest, (uLongf *)destLen, (Bytef *)source, sourceLen);
13 }

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

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

◆ Compress() [2/2]

PMemBuffer zlib::Compress ( PMemBuffer  source)

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

15  {
16  uLongf destLen = source->GetSize();
17  Bytef *dest = nullptr;
18  int res = Z_BUF_ERROR;
19  while (res == Z_BUF_ERROR) {
20  if (dest != nullptr) {
21  free(dest);
22  dest = nullptr;
23  destLen *= 2;
24  }
25  dest = (Bytef*)malloc(destLen);
26  res = compress(dest, &destLen, (Bytef*)source->GetData(), source->GetSize());
27  }
28 
29  PMemBuffer result = nullptr;
30  if (res == Z_OK) {
31  result = AllocMemBuffer(destLen);
32  memcpy((void*)result->GetData(), dest, destLen);
33  }
34  free(dest);
35  return result;
36 }

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

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

◆ Uncompress() [2/2]

PMemBuffer zlib::Uncompress ( PMemBuffer  source)

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

38  {
39  uLongf destLen = source->GetSize() * 4;
40  Bytef *dest = nullptr;
41  int res = Z_BUF_ERROR;
42  while (res == Z_BUF_ERROR) {
43  if (dest != nullptr) {
44  free(dest);
45  dest = nullptr;
46  destLen *= 2;
47  }
48  dest = (Bytef*)malloc(destLen);
49  res = uncompress(dest, &destLen, (Bytef*)source->GetData(), source->GetSize());
50  }
51 
52  PMemBuffer result = nullptr;
53  if (res == Z_OK) {
54  result = AllocMemBuffer(destLen);
55  memcpy((void*)result->GetData(), dest, destLen);
56  }
57  free(dest);
58  return result;
59 }

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

+ Граф вызовов:
Bytef
Byte FAR Bytef
Definition: zconf.h:402
source
GLsizei GLsizei GLchar * source
Definition: SDL_opengl_glext.h:680
result
GLuint64EXT * result
Definition: SDL_opengl_glext.h:9435
AllocMemBuffer
PMemBuffer AllocMemBuffer(size_t size)
Definition: MemBuffer.cpp:20
uLongf
uLong FAR uLongf
Definition: zconf.h:407
res
GLuint res
Definition: SDL_opengl_glext.h:7940
PMemBuffer
std::shared_ptr< IMemBuffer > PMemBuffer
Definition: MemBuffer.h:13