use RenderCmdBuffer instead RenderCommand,

use TextureCmdBuffer instead TextureCommand.
This commit is contained in:
hyzboy 2020-11-09 15:37:00 +08:00
parent a91d8140c7
commit 722ab900d6
20 changed files with 46 additions and 46 deletions

2
CMCore

@ -1 +1 @@
Subproject commit 28bf928b3b7bc78c601ad2224bff487f3751e882
Subproject commit 41b70d47446a8da4dfaaf6ce3c89750495678ceb

View File

@ -53,7 +53,7 @@ private:
struct
{
RenderTarget *rt=nullptr;
RenderCommand *cmd=nullptr;
RenderCmdBuffer *cmd=nullptr;
public:

View File

@ -22,7 +22,7 @@ class TestApp:public CameraAppFramework
struct:public RenderObject
{
RenderTarget * render_taget =nullptr;
RenderCommand * command_buffer =nullptr;
RenderCmdBuffer * command_buffer =nullptr;
Pipeline * pipeline =nullptr;
RenderableInstance *renderable_instance =nullptr;

View File

@ -53,7 +53,7 @@ protected:
int32_t swap_chain_count =0;
RenderCommand ** cmd_buf =nullptr;
RenderCmdBuffer ** cmd_buf =nullptr;
Color4f clear_color;
@ -166,14 +166,14 @@ public:
{
const VkExtent2D extent=sc_render_target->GetExtent();
cmd_buf=hgl_zero_new<RenderCommand *>(swap_chain_count);
cmd_buf=hgl_zero_new<RenderCmdBuffer *>(swap_chain_count);
for(int32_t i=0;i<swap_chain_count;i++)
cmd_buf[i]=device->CreateRenderCommandBuffer();
}
}
bool BuildCommandBuffer(RenderCommand *cb,RenderPass *rp,Framebuffer *fb,RenderableInstance *ri)
bool BuildCommandBuffer(RenderCmdBuffer *cb,RenderPass *rp,Framebuffer *fb,RenderableInstance *ri)
{
if(!ri)return(false);
@ -198,7 +198,7 @@ public:
return(true);
}
void BuildCommandBuffer(RenderCommand *cb,RenderTarget *rt,RenderableInstance *ri)
void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,RenderableInstance *ri)
{
if(!cb||!rt||!ri)
return;
@ -234,7 +234,7 @@ public:
{
if(!rl)return;
RenderCommand *cb=cmd_buf[index];
RenderCmdBuffer *cb=cmd_buf[index];
cb->Begin();
cb->BindFramebuffer(sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index));

View File

@ -11,7 +11,7 @@ namespace hgl
{
class RenderList
{
RenderCommand *cmd_buf;
RenderCmdBuffer *cmd_buf;
private:
@ -41,7 +41,7 @@ namespace hgl
void Add (SceneNode *node) {if(node)scene_node_list.Add(node);}
void Clear () {scene_node_list.ClearData();}
bool Render (RenderCommand *);
bool Render (RenderCmdBuffer *);
};//class RenderList
}//namespace graph
}//namespace hgl

View File

@ -46,8 +46,8 @@ using VAB=VertexAttribBuffer;
class IndexBuffer;
class GPUCmdBuffer;
class RenderCommand;
class TextureCommand;
class RenderCmdBuffer;
class TextureCmdBuffer;
class RenderPass;
class GPUFence;
class GPUSemaphore;

View File

@ -28,7 +28,7 @@ public:
bool End(){return(vkEndCommandBuffer(cmd_buf)==VK_SUCCESS);}
};//class GPUCmdBuffer
class RenderCommand:public GPUCmdBuffer
class RenderCmdBuffer:public GPUCmdBuffer
{
uint32_t cv_count;
VkClearValue *clear_values;
@ -45,8 +45,8 @@ class RenderCommand:public GPUCmdBuffer
public:
RenderCommand(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb);
~RenderCommand();
RenderCmdBuffer(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb);
~RenderCmdBuffer();
void SetRenderArea(const VkRect2D &ra){render_area=ra;}
void SetRenderArea(const VkExtent2D &);
@ -138,9 +138,9 @@ public: //draw
void NextSubpass(){vkCmdNextSubpass(cmd_buf,VK_SUBPASS_CONTENTS_INLINE);}
void EndRenderPass(){vkCmdEndRenderPass(cmd_buf);}
};//class RenderCommand:public GPUCmdBuffer
};//class RenderCmdBuffer:public GPUCmdBuffer
class TextureCommand:public GPUCmdBuffer
class TextureCmdBuffer:public GPUCmdBuffer
{
public:
@ -150,6 +150,6 @@ public:
template<typename ...ARGS> void CopyBufferToImage (ARGS...args){vkCmdCopyBufferToImage(cmd_buf,args...);}
template<typename ...ARGS> void CopyImageToBuffer (ARGS...args){vkCmdCopyImageToBuffer(cmd_buf,args...);}
template<typename ...ARGS> void BlitImage (ARGS...args){vkCmdBlitImage (cmd_buf,args...);}
};//class TextureCommand:public GPUCmdBuffer
};//class TextureCmdBuffer:public GPUCmdBuffer
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE

View File

@ -31,7 +31,7 @@ class GPUDevice
GPUDeviceAttribute *attr;
GPUQueue *textureSQ;
TextureCommand *texture_cmd_buf;
TextureCmdBuffer *texture_cmd_buf;
Swapchain *swapchain;
SwapchainRenderTarget *swapchainRT;
@ -190,10 +190,10 @@ public: //shader & material
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module);
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module);
public: //Command GPUBuffer 相关
public: //Command Buffer 相关
RenderCommand * CreateRenderCommandBuffer();
TextureCommand *CreateTextureCommandBuffer();
RenderCmdBuffer * CreateRenderCommandBuffer();
TextureCmdBuffer *CreateTextureCommandBuffer();
RenderPass * CreateRenderPass( const List<VkAttachmentDescription> &desc_list,
const List<VkSubpassDescription> &subpass,

View File

@ -64,7 +64,7 @@ public: //pipeline
public: // command buffer
GPUSemaphore * GetRenderCompleteSemaphore (){return render_complete_semaphore;}
virtual bool Submit (RenderCommand *,GPUSemaphore *present_complete_semaphore=nullptr);
virtual bool Submit (RenderCmdBuffer *,GPUSemaphore *present_complete_semaphore=nullptr);
};//class RenderTarget
/**

View File

@ -27,7 +27,7 @@ namespace hgl
protected:
virtual ThemeForm *CreateForm(Form *,RenderTarget *,RenderCommand *)=0;
virtual ThemeForm *CreateForm(Form *,RenderTarget *,RenderCmdBuffer *)=0;
virtual bool Render(ThemeForm *);

View File

@ -17,11 +17,11 @@ namespace hgl
Form *form;
RenderTarget *render_target;
RenderCommand *cmd_buf;
RenderCmdBuffer *cmd_buf;
public:
ThemeForm(Form *,RenderTarget *,RenderCommand *);
ThemeForm(Form *,RenderTarget *,RenderCmdBuffer *);
virtual ~ThemeForm();
RenderTarget * GetRenderTarget(){return render_target;}

View File

@ -18,12 +18,12 @@ namespace hgl
{
}
ThemeForm *DefaultThemeEngine::CreateForm(Form *f,RenderTarget *rt,RenderCommand *rc)
ThemeForm *DefaultThemeEngine::CreateForm(Form *f,RenderTarget *rt,RenderCmdBuffer *rc)
{
return(new DefaultThemeForm(f,rt,rc));
}
void DefaultThemeEngine::DrawPanel(RenderCommand *rc,const RectScope2f &rs)
void DefaultThemeEngine::DrawPanel(RenderCmdBuffer *rc,const RectScope2f &rs)
{
if(!rc)return;

View File

@ -33,11 +33,11 @@ namespace hgl
bool Init() override;
void Clear() override;
ThemeForm *CreateForm(Form *,RenderTarget *,RenderCommand *) override;
ThemeForm *CreateForm(Form *,RenderTarget *,RenderCmdBuffer *) override;
public:
void DrawPanel(RenderCommand *,const RectScope2f &);
void DrawPanel(RenderCmdBuffer *,const RectScope2f &);
};//class DefaultThemeEngine:public ThemeEngine
}//namespace gui
}//namespace hgl

View File

@ -5,7 +5,7 @@ namespace hgl
{
namespace gui
{
ThemeForm::ThemeForm(Form *f,RenderTarget *rt,RenderCommand *rc)
ThemeForm::ThemeForm(Form *f,RenderTarget *rt,RenderCmdBuffer *rc)
{
form=f;
render_target=rt;

View File

@ -4,7 +4,7 @@
#include<hgl/graph/VKRenderableInstance.h>
VK_NAMESPACE_BEGIN
RenderCommand::RenderCommand(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb):GPUCmdBuffer(dev,cp,cb)
RenderCmdBuffer::RenderCmdBuffer(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb):GPUCmdBuffer(dev,cp,cb)
{
cv_count=0;
clear_values=nullptr;
@ -18,13 +18,13 @@ RenderCommand::RenderCommand(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb):G
pipeline_layout=VK_NULL_HANDLE;
}
RenderCommand::~RenderCommand()
RenderCmdBuffer::~RenderCmdBuffer()
{
if(clear_values)
hgl_free(clear_values);
}
void RenderCommand::SetFBO(Framebuffer *fb)
void RenderCmdBuffer::SetFBO(Framebuffer *fb)
{
if(fbo==fb)return;
@ -53,14 +53,14 @@ void RenderCommand::SetFBO(Framebuffer *fb)
render_area.extent.height=0;
}
void RenderCommand::SetRenderArea(const VkExtent2D &ext2d)
void RenderCmdBuffer::SetRenderArea(const VkExtent2D &ext2d)
{
render_area.offset.x=0;
render_area.offset.y=0;
render_area.extent=ext2d;
}
bool RenderCommand::BindFramebuffer(RenderPass *rp,Framebuffer *fb)
bool RenderCmdBuffer::BindFramebuffer(RenderPass *rp,Framebuffer *fb)
{
if(!rp||!fb)return(false);
@ -86,7 +86,7 @@ bool RenderCommand::BindFramebuffer(RenderPass *rp,Framebuffer *fb)
return(true);
};
bool RenderCommand::BeginRenderPass()
bool RenderCmdBuffer::BeginRenderPass()
{
vkCmdBeginRenderPass(cmd_buf, &rp_begin, VK_SUBPASS_CONTENTS_INLINE);
@ -99,7 +99,7 @@ bool RenderCommand::BeginRenderPass()
return(true);
}
bool RenderCommand::BindVAB(RenderableInstance *ri)
bool RenderCmdBuffer::BindVAB(RenderableInstance *ri)
{
if(!ri)
return(false);

View File

@ -76,22 +76,22 @@ VkCommandBuffer GPUDevice::CreateCommandBuffer()
return cmd_buf;
}
RenderCommand *GPUDevice::CreateRenderCommandBuffer()
RenderCmdBuffer *GPUDevice::CreateRenderCommandBuffer()
{
VkCommandBuffer cb=CreateCommandBuffer();
if(cb==VK_NULL_HANDLE)return(nullptr);
return(new RenderCommand(attr->device,attr->cmd_pool,cb));
return(new RenderCmdBuffer(attr->device,attr->cmd_pool,cb));
}
TextureCommand *GPUDevice::CreateTextureCommandBuffer()
TextureCmdBuffer *GPUDevice::CreateTextureCommandBuffer()
{
VkCommandBuffer cb=CreateCommandBuffer();
if(cb==VK_NULL_HANDLE)return(nullptr);
return(new TextureCommand(attr->device,attr->cmd_pool,cb));
return(new TextureCmdBuffer(attr->device,attr->cmd_pool,cb));
}
/**

View File

@ -50,7 +50,7 @@ namespace
}
};//
void GenerateMipmaps(TextureCommand *texture_cmd_buf,VkImage image,VkImageAspectFlags aspect_mask,const int32_t width,const int32_t height,const uint32_t mipLevels)
void GenerateMipmaps(TextureCmdBuffer *texture_cmd_buf,VkImage image,VkImageAspectFlags aspect_mask,const int32_t width,const int32_t height,const uint32_t mipLevels)
{
//VkImage image, VkFormat imageFormat, int32_t texWidth, int32_t texHeight, uint32_t mipLevels) {
// Check if image format supports linear blitting

View File

@ -62,7 +62,7 @@ RenderTarget::~RenderTarget()
SAFE_CLEAR(render_pass);
}
bool RenderTarget::Submit(RenderCommand *command_buffer,GPUSemaphore *present_complete_semaphore)
bool RenderTarget::Submit(RenderCmdBuffer *command_buffer,GPUSemaphore *present_complete_semaphore)
{
return this->GPUQueue::Submit(*command_buffer,present_complete_semaphore,render_complete_semaphore);
}

View File

@ -85,7 +85,7 @@ namespace hgl
}
}
bool RenderList::Render(RenderCommand *cb)
bool RenderList::Render(RenderCmdBuffer *cb)
{
if(!cb)
return(false);