something
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user