improvements

This commit is contained in:
2025-12-14 22:46:45 +02:00
parent 860ec0c422
commit 5d4c587bf2
5 changed files with 81 additions and 33 deletions

View File

@@ -48,6 +48,7 @@ enum EVulkanCommandParameterType
enum EDependencyMode
{
DEPENDENCY_MODE_SHADER_IMAGE_READ,
DEPENDENCY_MODE_SHADER_BUFFER_READ,
DEPENDENCY_MODE_SHADER_IMAGE_WRITE,
@@ -60,8 +61,11 @@ enum EDependencyMode
DEPENDENCY_MODE_IMAGE_SOURCE,
DEPENDENCY_MODE_IMAGE_DESTINATION,
DEPENDENCY_MODE_ALL_COMMANDS,
DEPENDENCY_MODE_IMAGE_PRESENT,
DEPENDENCY_MODE_COLOR_CLEAR_DESTINATION,
DEPENDENCY_MODE_COUNT,
};
@@ -83,7 +87,7 @@ struct VulkanCommandParameter_t
abstract_class CVkCommand
{
public:
virtual void Execute( VkCommandBuffer hCommandBuffer ) = 0;
virtual void Execute( VkCommandBuffer hCommandBuffer, int iCurrentFrame ) = 0;
//virtual const char *GetName();
CUtlVector<VulkanCommandDepenency_t> m_depedencies;
@@ -123,7 +127,7 @@ public:
class CVk##name##Command : public CVkCommand \
{ \
public: \
virtual void Execute( VkCommandBuffer hCommandBuffer ) override; \
virtual void Execute( VkCommandBuffer hCommandBuffer, int iCurrentFrame ) override; \
#define END_VULKAN_COMMAND( name ) \
}; \
@@ -131,7 +135,7 @@ public: \
#define DECLARE_VULKAN_COMMAND(name) \
CVkCommand *_VulkanCommandCreate_##name() { return new CVk##name##Command; } \
CVkCommandRegistry _VulkanCommandRegistry_##name( #name, _VulkanCommandCreate_##name ); \
void CVk##name##Command::Execute( VkCommandBuffer hCommandBuffer ) \
void CVk##name##Command::Execute( VkCommandBuffer hCommandBuffer, int iCurrentFrame ) \
#undef __cplusplus
#include "vulkan/vk_enum_string_helper.h"
@@ -169,6 +173,9 @@ public:
VkImage m_image;
VkImageView m_imageView;
VmaAllocation m_allocation;
VkImageLayout m_eImageLayout = VK_IMAGE_LAYOUT_UNDEFINED;
EDependencyMode m_eLastUsage;
};
#endif