something

This commit is contained in:
2025-12-14 15:54:21 +02:00
parent c4406d1891
commit a583969fc3
3 changed files with 18 additions and 44 deletions

View File

@@ -1,18 +1,17 @@
#include "../vulkan_state.h"
DECLARE_VULKAN_COMMAND(Draw)
{
}
BEGIN_VULKAN_COMMAND_DATA(Draw)
{"", VULKAN_PARAMETER_TYPE_UINT32},
END_VULKAN_COMMAND_DATA()
BEGIN_DECLARE_VULKAN_COMMAND(ClearColor)
float r;
float g;
float b;
float a;
IImage *pImage;
END_DECLARE_VULKAN_COMMAND(ClearColor)
DECLARE_VULKAN_COMMAND(ClearColor)
{
CVkImage *pImage = (CVkImage*)GetImageParam("Image");
CVkImage *pImage = (CVkImage*)pImage;
VkClearColorValue color = {.float32 = {1,0,1,0}};
VkImageSubresourceRange range = {
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
@@ -20,13 +19,4 @@ DECLARE_VULKAN_COMMAND(ClearColor)
.layerCount = 1,
};
vkCmdClearColorImage(hCommandBuffer, pImage->m_image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &color, 1, &range);
}
BEGIN_VULKAN_COMMAND_DATA(ClearColor)
{"R", VULKAN_PARAMETER_TYPE_FLOAT},
{"G", VULKAN_PARAMETER_TYPE_FLOAT},
{"B", VULKAN_PARAMETER_TYPE_FLOAT},
{"A", VULKAN_PARAMETER_TYPE_FLOAT},
{"Image", VULKAN_PARAMETER_TYPE_IMAGE},
END_VULKAN_COMMAND_DATA()

View File

@@ -474,11 +474,10 @@ void CVkRenderContext::Init()
g_pCommandBufferManager->Init();
IVkCommandBuffer *pCommandBuffer = g_pCommandBufferManager->CreateCommandBuffer();
CVkCommand *pCommand = g_pCommandBufferManager->CreateCommand("Draw");
CVkCommand *pCommand = g_pCommandBufferManager->CreateCommand("ClearColor");
pCommand->AddDependency(g_vkSwapchainImages[0], DEPENDENCY_MODE_COLOR_CLEAR_DESTINATION);
pCommand->SetImageParam("Image", g_vkSwapchainImages[0]);
pCommandBuffer->AddCommand(pCommand);
pCommandBuffer->Render();
}

View File

@@ -89,13 +89,6 @@ public:
CUtlVector<VulkanCommandDepenency_t> m_depedencies;
EVulkanCommandType m_eType;
void SetUIntParam( const char *szName, uint32_t uintParam );
uint32_t GetUIntParam( const char *szName );
void SetImageParam( const char *szName, IImage *pImageParam );
IImage *GetImageParam( const char *szName );
virtual CUtlVector<VulkanCommandParameter_t> GetDataTemplate() = 0;
CUtlVector<VulkanCommandParameter_t> m_parameters;
};
abstract_class IVkCommandBuffer
@@ -125,27 +118,19 @@ public:
CVkCommandRegistry( const char *szName, fnCreateVulkanCommand_t pfnCreate );
};
#define DECLARE_VULKAN_COMMAND( name ) \
class VulkanCommand_##name : public CVkCommand \
#define BEGIN_DECLARE_VULKAN_COMMAND( name ) \
class CVk##Command : public CVkCommand \
{ \
public: \
virtual void Execute( VkCommandBuffer hCommandBuffer ) override; \
virtual CUtlVector<VulkanCommandParameter_t> GetDataTemplate() override; \
#define END_DECLARE_VULKAN_COMMAND( name ) \
}; \
CVkCommand *_VulkanCommandCreate_##name() { return new VulkanCommand_##name; } \
#define DECLARE_VULKAN_COMMAND(name) \
CVkCommand *_VulkanCommandCreate_##name() { return new CVk##Command; } \
CVkCommandRegistry _VulkanCommandRegistry_##name( #name, _VulkanCommandCreate_##name ); \
void VulkanCommand_##name::Execute( VkCommandBuffer hCommandBuffer ) \
#define BEGIN_VULKAN_COMMAND_DATA(name) \
CUtlVector<VulkanCommandParameter_t> VulkanCommand_##name::GetDataTemplate() \
{ \
CUtlVector<VulkanCommandParameter_t> parameters = {
#define END_VULKAN_COMMAND_DATA() \
}; \
return parameters; \
};
void CVk##Command::Execute( VkCommandBuffer hCommandBuffer ) \
#undef __cplusplus
#include "vulkan/vk_enum_string_helper.h"