6#ifndef VCL_BGFX_TEXT_FONT_CUBE_ATLAS_H
7#define VCL_BGFX_TEXT_FONT_CUBE_ATLAS_H
31 uint16_t width, height;
36 return (Type) ( (mask >> 0) & 0x0000000F);
39 uint32_t getFaceIndex()
const
41 return (mask >> 4) & 0x0000000F;
44 uint32_t getComponentIndex()
const
46 return (mask >> 8) & 0x0000000F;
49 void setMask(Type _type, uint32_t _faceIndex, uint32_t _componentIndex)
51 mask = (_componentIndex << 8) + (_faceIndex << 4) + (uint32_t)_type;
61 Atlas(uint16_t _textureSize, uint16_t _maxRegionsCount = 4096);
69 Atlas(uint16_t _textureSize,
const uint8_t* _textureBuffer, uint16_t _regionCount,
const uint8_t* _regionBuffer, uint16_t _maxRegionsCount = 4096);
73 uint16_t addRegion(uint16_t _width, uint16_t _height,
const uint8_t* _bitmapBuffer, AtlasRegion::Type _type = AtlasRegion::TYPE_BGRA8, uint16_t outline = 0);
76 void updateRegion(
const AtlasRegion& _region,
const uint8_t* _bitmapBuffer);
88 void packUV(uint16_t _regionHandle, uint8_t* _vertexBuffer, uint32_t _offset, uint32_t _stride)
const;
89 void packUV(
const AtlasRegion& _region, uint8_t* _vertexBuffer, uint32_t _offset, uint32_t _stride)
const;
92 void packFaceLayerUV(uint32_t _idx, uint8_t* _vertexBuffer, uint32_t _offset, uint32_t _stride)
const;
95 bgfx::TextureHandle getTextureHandle()
const
97 return m_textureHandle;
101 const AtlasRegion& getRegion(uint16_t _handle)
const
103 return m_regions[_handle];
107 uint16_t getTextureSize()
const
109 return m_textureSize;
116 uint16_t getRegionCount()
const
118 return m_regionCount;
122 const AtlasRegion* getRegionBuffer()
const
128 uint32_t getTextureBufferSize()
const
130 return 6 * m_textureSize * m_textureSize * 4;
134 const uint8_t* getTextureBuffer()
const
136 return m_textureBuffer;
141 PackedLayer* m_layers;
142 AtlasRegion* m_regions;
143 uint8_t* m_textureBuffer;
145 uint32_t m_usedLayers;
146 uint32_t m_usedFaces;
148 bgfx::TextureHandle m_textureHandle;
149 uint16_t m_textureSize;
152 uint16_t m_regionCount;
153 uint16_t m_maxRegionCount;