You.i Engine
CYITextureAtlas Class Reference

Detailed Description

Class for a texture atlas.

#include <graphics/YiTextureAtlas.h>

Inheritance diagram for CYITextureAtlas:

Public Member Functions

 CYITextureAtlas ()
 
virtual ~CYITextureAtlas ()
 
bool CreateNewAtlas (uint32_t unWidth, uint32_t unHeight, uint32_t unPages)
 
YI_REGION GetRegion (int32_t nWidth, int32_t nHeight)
 
virtual void SetRegion (ssize_t ID, void *pReference, YI_REGION Region, const uint8_t *data, const int32_t nStride)
 
virtual YI_TEXTURE_DETAILSGetTexture (ssize_t ID, void *pReference)
 
void UpdateAtlas ()
 
const std::shared_ptr< CYIBitmapGetBitmap () const
 
const std::vector< glm::ivec4 > * GetNodes (uint32_t unPage) const
 
virtual std::shared_ptr< CYIAssetTextureGetGLTexture () const
 
const std::shared_ptr< CYIAssetTextureGetTextureAsset ()
 
YI_LOADED_TEXTURESGetLoadedTextures ()
 
void SetTextureFilter (CYIAssetTexture::YI_MIN_MAG_FILTER minificationFilter, CYIAssetTexture::YI_MIN_MAG_FILTER magnificationFilter)
 
void SetTextureWrap (CYIAssetTexture::YI_TEXTURE_WRAP wrapS, CYIAssetTexture::YI_TEXTURE_WRAP wrapT)
 
void SetName (const CYIString &name)
 
const CYIStringGetName () const
 
float GetAtlasPercentageUsed () const
 
bool RenderAtlasToPng (const CYIString &filePath) const
 
void Reset ()
 

Protected Member Functions

int32_t Fit (uint32_t unPage, uint32_t unIndex, int32_t nWidth, int32_t nHeight)
 
void Merge (uint32_t unPage)
 

Protected Attributes

CYIString m_name
 
std::shared_ptr< CYIBitmapm_Image
 
std::vector< glm::ivec4 > m_Nodes [4]
 
std::shared_ptr< CYIAssetTexturem_pTextureAsset
 
YI_LOADED_TEXTURES m_Textures
 
int32_t m_nWidth
 
int32_t m_nHeight
 
uint32_t m_unPages
 
CYIAssetTexture::YI_TEXTURE_CONFIG m_textureConfiguration
 
uint32_t m_unPixelsUsed
 
uint32_t m_unLastUpdatedSize
 

Constructor & Destructor Documentation

CYITextureAtlas::CYITextureAtlas ( )
virtual CYITextureAtlas::~CYITextureAtlas ( )
virtual

Member Function Documentation

bool CYITextureAtlas::CreateNewAtlas ( uint32_t  unWidth,
uint32_t  unHeight,
uint32_t  unPages 
)
int32_t CYITextureAtlas::Fit ( uint32_t  unPage,
uint32_t  unIndex,
int32_t  nWidth,
int32_t  nHeight 
)
protected
float CYITextureAtlas::GetAtlasPercentageUsed ( ) const

Returns the atlas usage as a percentage. The calculation is total pixels / used pixels. Note that this is the exact pixel usage of the atlas. If the packing method used isn't 100% efficient then the atlas will never reach 100% usage. This function returns a value in the range from 0.0 to 1.0.

const std::shared_ptr<CYIBitmap> CYITextureAtlas::GetBitmap ( ) const
virtual std::shared_ptr<CYIAssetTexture> CYITextureAtlas::GetGLTexture ( ) const
virtual
YI_LOADED_TEXTURES* CYITextureAtlas::GetLoadedTextures ( )
const CYIString& CYITextureAtlas::GetName ( ) const
const std::vector<glm::ivec4>* CYITextureAtlas::GetNodes ( uint32_t  unPage) const
YI_REGION CYITextureAtlas::GetRegion ( int32_t  nWidth,
int32_t  nHeight 
)
virtual YI_TEXTURE_DETAILS* CYITextureAtlas::GetTexture ( ssize_t  ID,
void *  pReference 
)
virtual

Reimplemented in CYIAbstractTextAtlas.

const std::shared_ptr<CYIAssetTexture> CYITextureAtlas::GetTextureAsset ( )
inline
void CYITextureAtlas::Merge ( uint32_t  unPage)
protected
bool CYITextureAtlas::RenderAtlasToPng ( const CYIString filePath) const

Renders the current contents of the texture atlas to the given file path. Returns true if the image was successfully written.

void CYITextureAtlas::Reset ( )

Resets all regions in the atlas and clears the contents of the underlying texture.

void CYITextureAtlas::SetName ( const CYIString name)
virtual void CYITextureAtlas::SetRegion ( ssize_t  ID,
void *  pReference,
YI_REGION  Region,
const uint8_t *  data,
const int32_t  nStride 
)
virtual
void CYITextureAtlas::SetTextureFilter ( CYIAssetTexture::YI_MIN_MAG_FILTER  minificationFilter,
CYIAssetTexture::YI_MIN_MAG_FILTER  magnificationFilter 
)
void CYITextureAtlas::SetTextureWrap ( CYIAssetTexture::YI_TEXTURE_WRAP  wrapS,
CYIAssetTexture::YI_TEXTURE_WRAP  wrapT 
)
void CYITextureAtlas::UpdateAtlas ( )

Member Data Documentation

std::shared_ptr<CYIBitmap> CYITextureAtlas::m_Image
protected
CYIString CYITextureAtlas::m_name
protected
int32_t CYITextureAtlas::m_nHeight
protected
std::vector<glm::ivec4> CYITextureAtlas::m_Nodes[4]
protected
int32_t CYITextureAtlas::m_nWidth
protected
std::shared_ptr<CYIAssetTexture> CYITextureAtlas::m_pTextureAsset
protected
CYIAssetTexture::YI_TEXTURE_CONFIG CYITextureAtlas::m_textureConfiguration
protected
YI_LOADED_TEXTURES CYITextureAtlas::m_Textures
protected
uint32_t CYITextureAtlas::m_unLastUpdatedSize
protected
uint32_t CYITextureAtlas::m_unPages
protected
uint32_t CYITextureAtlas::m_unPixelsUsed
protected

The documentation for this class was generated from the following file: