DDNet documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
image_loader.h
Go to the documentation of this file.
1
#ifndef ENGINE_GFX_IMAGE_LOADER_H
2
#define ENGINE_GFX_IMAGE_LOADER_H
3
4
#include <
base/types.h
>
5
6
#include <
engine/image.h
>
7
8
#include <vector>
9
10
class
CByteBufferReader
11
{
12
const
uint8_t *
m_pData
;
13
size_t
m_Size
;
14
size_t
m_ReadOffset
= 0;
15
bool
m_Error
=
false
;
16
17
public
:
18
CByteBufferReader
(
const
uint8_t *pData,
size_t
Size) :
19
m_pData
(pData),
20
m_Size
(Size) {}
21
22
bool
Read
(
void
*pData,
size_t
Size);
23
bool
Error
()
const
{
return
m_Error
; }
24
};
25
26
class
CByteBufferWriter
27
{
28
std::vector<uint8_t>
m_vBuffer
;
29
30
public
:
31
void
Write
(
const
void
*pData,
size_t
Size
);
32
const
uint8_t *
Data
()
const
{
return
m_vBuffer
.data(); }
33
size_t
Size
()
const
{
return
m_vBuffer
.size(); }
34
};
35
36
class
CImageLoader
37
{
38
public
:
39
CImageLoader
() =
delete
;
40
41
enum
42
{
43
PNGLITE_COLOR_TYPE
= 1 << 0,
44
PNGLITE_BIT_DEPTH
= 1 << 1,
45
PNGLITE_INTERLACE_TYPE
= 1 << 2,
46
PNGLITE_COMPRESSION_TYPE
= 1 << 3,
47
PNGLITE_FILTER_TYPE
= 1 << 4,
48
};
49
50
static
bool
LoadPng
(
CByteBufferReader
&Reader,
const
char
*pContextName,
CImageInfo
&Image,
int
&PngliteIncompatible);
51
static
bool
LoadPng
(
IOHANDLE
File,
const
char
*pFilename,
CImageInfo
&Image,
int
&PngliteIncompatible);
52
53
static
bool
SavePng
(
CByteBufferWriter
&Writer,
const
CImageInfo
&Image);
54
static
bool
SavePng
(
IOHANDLE
File,
const
char
*pFilename,
const
CImageInfo
&Image);
55
};
56
57
#endif
// ENGINE_GFX_IMAGE_LOADER_H
CByteBufferReader
Definition
image_loader.h:11
CByteBufferReader::m_Size
size_t m_Size
Definition
image_loader.h:13
CByteBufferReader::m_pData
const uint8_t * m_pData
Definition
image_loader.h:12
CByteBufferReader::m_Error
bool m_Error
Definition
image_loader.h:15
CByteBufferReader::CByteBufferReader
CByteBufferReader(const uint8_t *pData, size_t Size)
Definition
image_loader.h:18
CByteBufferReader::Error
bool Error() const
Definition
image_loader.h:23
CByteBufferReader::Read
bool Read(void *pData, size_t Size)
Definition
image_loader.cpp:13
CByteBufferReader::m_ReadOffset
size_t m_ReadOffset
Definition
image_loader.h:14
CByteBufferWriter
Definition
image_loader.h:27
CByteBufferWriter::Data
const uint8_t * Data() const
Definition
image_loader.h:32
CByteBufferWriter::m_vBuffer
std::vector< uint8_t > m_vBuffer
Definition
image_loader.h:28
CByteBufferWriter::Size
size_t Size() const
Definition
image_loader.h:33
CByteBufferWriter::Write
void Write(const void *pData, size_t Size)
Definition
image_loader.cpp:31
CImageInfo
Definition
image.h:12
CImageLoader::LoadPng
static bool LoadPng(CByteBufferReader &Reader, const char *pContextName, CImageInfo &Image, int &PngliteIncompatible)
Definition
image_loader.cpp:137
CImageLoader::PNGLITE_COMPRESSION_TYPE
@ PNGLITE_COMPRESSION_TYPE
Definition
image_loader.h:46
CImageLoader::PNGLITE_BIT_DEPTH
@ PNGLITE_BIT_DEPTH
Definition
image_loader.h:44
CImageLoader::PNGLITE_COLOR_TYPE
@ PNGLITE_COLOR_TYPE
Definition
image_loader.h:43
CImageLoader::PNGLITE_FILTER_TYPE
@ PNGLITE_FILTER_TYPE
Definition
image_loader.h:47
CImageLoader::PNGLITE_INTERLACE_TYPE
@ PNGLITE_INTERLACE_TYPE
Definition
image_loader.h:45
CImageLoader::SavePng
static bool SavePng(CByteBufferWriter &Writer, const CImageInfo &Image)
Definition
image_loader.cpp:341
CImageLoader::CImageLoader
CImageLoader()=delete
image.h
IOHANDLE
void * IOHANDLE
Definition
logger.h:12
types.h
src
engine
gfx
image_loader.h
Generated by
1.18.0