luna engine
software engine
Loading...
Searching...
No Matches
luna::vulkan::vulkanTextureAtlas Class Reference

textureAtlas api. More...

#include <vulkanTexture.h>

Inheritance diagram for luna::vulkan::vulkanTextureAtlas:
Collaboration diagram for luna::vulkan::vulkanTextureAtlas:

Classes

struct  freeStripeBlock
 
struct  stripe
 

Public Member Functions

 vulkanTextureAtlas (const std::string &filePath, const glm::vec2 &texDimensions, const glm::vec2 &tileDimensions)
 
 vulkanTextureAtlas (const std::string &filePath, const glm::vec2 &texDimensions)
 
virtual ~vulkanTextureAtlas ()=default
 
virtual uint32_t getTileWidth () override
 
virtual uint32_t getTileWidth (const uint16_t &xIndex, const uint16_t &yIndex) override
 
virtual uint32_t getTileHeight () override
 
virtual uint32_t getTileHeight (const uint16_t &xIndex, const uint16_t &yIndex) override
 
virtual glm::vec2 addTile (const glm::vec2 &dimensions)
 
virtual glm::vec2 addTile (const uint32_t &width, const uint32_t &height) override
 
virtual glm::vec2 getTileDimensions (const glm::vec2 &textureindex) override
 
virtual glm::vec2 getTextureUv (const glm::vec2 &textureindex) override
 
ref< renderer::texturegetTileAsTexture (const glm::vec2 &textureindex)
 
- Public Member Functions inherited from luna::renderer::textureAtlas
virtual ~textureAtlas ()=default
 
virtual uint32_t getTileWidth ()=0
 
virtual uint32_t getTileWidth (const uint16_t &xIndex, const uint16_t &yIndex)=0
 
virtual uint32_t getTileHeight ()=0
 
virtual uint32_t getTileHeight (const uint16_t &xIndex, const uint16_t &yIndex)=0
 
virtual glm::vec2 addTile (const glm::vec2 &dimensions)=0
 
virtual glm::vec2 addTile (const uint32_t &width, const uint32_t &height)=0
 
virtual glm::vec2 getTileDimensions (const glm::vec2 &textureindex)=0
 
virtual glm::vec2 getTextureUv (const glm::vec2 &textureindex)=0
 
- Public Member Functions inherited from luna::renderer::texture
virtual ~texture ()=default
 
virtual uint32_t getWidth () const =0
 
virtual uint32_t getHeight () const =0
 
virtual const std::string & getPath () const =0
 
virtual void setData (void *data, uint32_t size)=0
 
virtual void bind (uint32_t slot=0) const =0
 
virtual bool isLoaded () const =0
 
void setDestroy (const bool &destroy)
 
void setUv (const glm::vec2 &_uvStart, const glm::vec2 &_uvEnd)
 
std::vector< glm::vec2 > getUv ()
 
uint64_t handle ()
 

Private Member Functions

freeStripeBlockcheckStripe (stripe &stripe, const uint32_t &width, const uint32_t &height)
 

Private Attributes

uint32_t tileWidths
 
uint32_t tileHeight
 
std::vector< std::vector< glm::vec4 > > tileCustomTexCoords
 
std::vector< stripeatlas
 
VkBuffer buffer = VK_NULL_HANDLE
 
VkImage imageHandle = VK_NULL_HANDLE
 
VkImageView imageViewHandle = VK_NULL_HANDLE
 

Additional Inherited Members

- Static Public Member Functions inherited from luna::renderer::texture
static ref< texturecreate (const std::string &filePath)
 
static ref< texturecreate (const uint64_t &handle, const glm::vec2 &dimensions)
 
- Protected Attributes inherited from luna::renderer::texture
bool destroy = true
 
uint64_t _handle
 
void * data
 
uint32_t width
 
uint32_t height
 
glm::vec2 uvStart = {0.0f,0.0f}
 
glm::vec2 uvEnd = { 1.0f,1.0f }
 

Detailed Description

textureAtlas api.

See also
texture
Note
see specific platform implementation for explenation with functions

Constructor & Destructor Documentation

◆ vulkanTextureAtlas() [1/2]

luna::vulkan::vulkanTextureAtlas::vulkanTextureAtlas ( const std::string &  filePath,
const glm::vec2 &  texDimensions,
const glm::vec2 &  tileDimensions 
)

◆ vulkanTextureAtlas() [2/2]

luna::vulkan::vulkanTextureAtlas::vulkanTextureAtlas ( const std::string &  filePath,
const glm::vec2 &  texDimensions 
)

◆ ~vulkanTextureAtlas()

virtual luna::vulkan::vulkanTextureAtlas::~vulkanTextureAtlas ( )
virtualdefault

Member Function Documentation

◆ addTile() [1/2]

glm::vec2 luna::vulkan::vulkanTextureAtlas::addTile ( const glm::vec2 &  dimensions)
virtual

◆ addTile() [2/2]

glm::vec2 luna::vulkan::vulkanTextureAtlas::addTile ( const uint32_t &  width,
const uint32_t &  height 
)
overridevirtual

◆ checkStripe()

vulkanTextureAtlas::freeStripeBlock * luna::vulkan::vulkanTextureAtlas::checkStripe ( stripe stripe,
const uint32_t &  width,
const uint32_t &  height 
)
private

◆ getTextureUv()

glm::vec2 luna::vulkan::vulkanTextureAtlas::getTextureUv ( const glm::vec2 &  textureindex)
overridevirtual

◆ getTileAsTexture()

ref< renderer::texture > luna::vulkan::vulkanTextureAtlas::getTileAsTexture ( const glm::vec2 &  textureindex)

◆ getTileDimensions()

glm::vec2 luna::vulkan::vulkanTextureAtlas::getTileDimensions ( const glm::vec2 &  textureindex)
overridevirtual

◆ getTileHeight() [1/2]

uint32_t luna::vulkan::vulkanTextureAtlas::getTileHeight ( )
overridevirtual

◆ getTileHeight() [2/2]

uint32_t luna::vulkan::vulkanTextureAtlas::getTileHeight ( const uint16_t &  xIndex,
const uint16_t &  yIndex 
)
overridevirtual

◆ getTileWidth() [1/2]

uint32_t luna::vulkan::vulkanTextureAtlas::getTileWidth ( )
overridevirtual

◆ getTileWidth() [2/2]

uint32_t luna::vulkan::vulkanTextureAtlas::getTileWidth ( const uint16_t &  xIndex,
const uint16_t &  yIndex 
)
overridevirtual

Member Data Documentation

◆ atlas

std::vector<stripe> luna::vulkan::vulkanTextureAtlas::atlas
private

◆ buffer

VkBuffer luna::vulkan::vulkanTextureAtlas::buffer = VK_NULL_HANDLE
private

◆ imageHandle

VkImage luna::vulkan::vulkanTextureAtlas::imageHandle = VK_NULL_HANDLE
private

◆ imageViewHandle

VkImageView luna::vulkan::vulkanTextureAtlas::imageViewHandle = VK_NULL_HANDLE
private

◆ tileCustomTexCoords

std::vector<std::vector<glm::vec4> > luna::vulkan::vulkanTextureAtlas::tileCustomTexCoords
private

◆ tileHeight

uint32_t luna::vulkan::vulkanTextureAtlas::tileHeight
private

◆ tileWidths

uint32_t luna::vulkan::vulkanTextureAtlas::tileWidths
private

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