This commit is contained in:
2026-02-20 19:35:09 +02:00
parent 3ed689f801
commit c00ecf4081
35 changed files with 576 additions and 99 deletions

View File

@@ -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 = {};