textures
This commit is contained in:
@@ -57,8 +57,10 @@ enum EDependencyMode
|
||||
DEPENDENCY_MODE_DRAWCALL_INPUT_IMAGE,
|
||||
DEPENDENCY_MODE_DRAWCALL_MIXED_IMAGE,
|
||||
|
||||
DEPENDENCY_MODE_BUFFER_SOURCE,
|
||||
DEPENDENCY_MODE_IMAGE_SOURCE,
|
||||
DEPENDENCY_MODE_IMAGE_DESTINATION,
|
||||
DEPENDENCY_MODE_BUFFER_DESTINATION,
|
||||
|
||||
DEPENDENCY_MODE_BLIT_IMAGE_SOURCE,
|
||||
DEPENDENCY_MODE_BLIT_IMAGE_DESTINATION,
|
||||
@@ -140,8 +142,8 @@ class CVkCommandRegistry
|
||||
public:
|
||||
CVkCommandRegistry( const char *szName, fnCreateVulkanCommand_t pfnCreate );
|
||||
};
|
||||
#define CREATE_COMMAND(name) \
|
||||
(CVk##name##Command*)m_pCommandBufferManager->CreateCommand(#name)
|
||||
#define CREATE_COMMAND(cb, name) \
|
||||
(CVk##name##Command*)cb->CreateCommand(#name)
|
||||
|
||||
#define BEGIN_VULKAN_COMMAND( name ) \
|
||||
class CVk##name##Command : public CVkCommand \
|
||||
@@ -217,6 +219,7 @@ public:
|
||||
|
||||
VmaAllocation m_allocation;
|
||||
VkBuffer m_buffer;
|
||||
VkDescriptorType m_eDescriptorType;
|
||||
VkDeviceAddress m_address;
|
||||
uint32_t m_nSize;
|
||||
};
|
||||
@@ -287,6 +290,27 @@ private:
|
||||
|
||||
};
|
||||
|
||||
class CVkTextureArray: public ITextureArray
|
||||
{
|
||||
public:
|
||||
~CVkTextureArray();
|
||||
CVkTextureArray();
|
||||
virtual void Build() override;
|
||||
virtual void SetDebugName( const char *szName ) override;
|
||||
virtual uint32_t LoadTexture( const char *szPath ) override;
|
||||
virtual uint32_t GetTextureID( const char *szPath ) override;
|
||||
virtual void UnloadTexture( uint32_t uTextureID ) override;
|
||||
void Frame();
|
||||
|
||||
uint32_t CreateTexture( uint32_t i, const char *szPath );
|
||||
|
||||
VkDevice m_hDevice;
|
||||
IRenderContext *m_pRenderContext;
|
||||
IVkCommandBufferManager *m_pCommandBufferManager;
|
||||
VkSampler m_hSampler;
|
||||
CVkImage *m_pImages[128];
|
||||
};
|
||||
|
||||
class CVkMaterial: public IMaterial
|
||||
{
|
||||
public:
|
||||
@@ -300,9 +324,10 @@ public:
|
||||
|
||||
virtual void PSSetShaderResource( uint32_t uRegister, IRenderingObject *pResource ) override;
|
||||
virtual void PSSetConstantsBuffer( uint32_t uRegister, IBuffer *pConstants ) override;
|
||||
virtual void PSSetTextureArray( uint32_t uSet, ITextureArray *pArray ) override;
|
||||
|
||||
CVkShader *m_pVkShader;
|
||||
VkDescriptorSet m_hSet;
|
||||
CUtlVector<VkDescriptorSet> m_hSets;
|
||||
private:
|
||||
VkDescriptorPool m_hPool;
|
||||
CUtlVector<VkWriteDescriptorSet> m_writes = {};
|
||||
|
||||
Reference in New Issue
Block a user