Plasma Engine
2.0
Loading...
Searching...
No Matches
TexturePacker.h
1
#pragma once
2
3
#include <Foundation/Containers/DynamicArray.h>
4
#include <Foundation/Math/Vec2.h>
5
#include <Texture/TextureDLL.h>
6
7
class
PL_TEXTURE_DLL
plTexturePacker
8
{
9
public
:
10
struct
Texture
11
{
12
PL_DECLARE_POD_TYPE();
13
14
plVec2U32
m_Size;
15
plVec2U32
m_Position;
16
plInt32 m_Priority = 0;
17
};
18
19
plTexturePacker
();
20
~plTexturePacker
();
21
22
void
SetTextureSize(plUInt32 uiWidth, plUInt32 uiHeight, plUInt32 uiReserveTextures = 0);
23
24
void
AddTexture(plUInt32 uiWidth, plUInt32 uiHeight);
25
26
const
plDynamicArray<Texture>
& GetTextures()
const
{
return
m_Textures; }
27
28
plResult
PackTextures();
29
30
private
:
31
bool
CanPlaceAt(
plVec2U32
pos,
plVec2U32
size);
32
bool
TryPlaceAt(
plVec2U32
pos,
plVec2U32
size);
33
plUInt32 PosToIndex(plUInt32 x, plUInt32 y)
const
;
34
bool
TryPlaceTexture(plUInt32 idx);
35
36
plUInt32 m_uiWidth = 0;
37
plUInt32 m_uiHeight = 0;
38
39
plDynamicArray<Texture>
m_Textures;
40
plDynamicArray<bool>
m_Grid;
41
};
plDynamicArray
Definition
DynamicArray.h:81
plTexturePacker
Definition
TexturePacker.h:8
plVec2Template< plUInt32 >
plResult
Default enum for returning failure or success, instead of using a bool.
Definition
Types.h:54
plTexturePacker::Texture
Definition
TexturePacker.h:11
Code
Engine
Texture
Utils
TexturePacker.h
Generated by
1.11.0