use RenderCmdBuffer instead RenderCommand,
use TextureCmdBuffer instead TextureCommand.
This commit is contained in:
parent
a91d8140c7
commit
722ab900d6
2
CMCore
2
CMCore
@ -1 +1 @@
|
||||
Subproject commit 28bf928b3b7bc78c601ad2224bff487f3751e882
|
||||
Subproject commit 41b70d47446a8da4dfaaf6ce3c89750495678ceb
|
@ -53,7 +53,7 @@ private:
|
||||
struct
|
||||
{
|
||||
RenderTarget *rt=nullptr;
|
||||
RenderCommand *cmd=nullptr;
|
||||
RenderCmdBuffer *cmd=nullptr;
|
||||
|
||||
public:
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
||||
/**
|
||||
|
@ -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 *);
|
||||
|
||||
|
@ -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;}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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
|
||||
|
@ -101,4 +101,4 @@ void SavePipelineCacheData(VkDevice device,VkPipelineCache cache,const VkPhysica
|
||||
|
||||
SaveMemoryToFile(fullname,data,size);
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
VK_NAMESPACE_END
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ namespace hgl
|
||||
}
|
||||
}
|
||||
|
||||
bool RenderList::Render(RenderCommand *cb)
|
||||
bool RenderList::Render(RenderCmdBuffer *cb)
|
||||
{
|
||||
if(!cb)
|
||||
return(false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user