CommandBuffer增加几个Set

This commit is contained in:
HuYingzhuo 2019-04-25 11:38:57 +08:00
parent ffcf03dfd3
commit c56827a348
2 changed files with 49 additions and 4 deletions

View File

@ -96,7 +96,41 @@ bool CommandBuffer::Bind(VertexInput *vi)
vkCmdBindVertexBuffers(cmd_buf,0,count,vi->GetBuffer(),vi->GetOffset());
return(true);
}
void CommandBuffer::SetDepthBias(float constant_factor,float clamp,float slope_factor)
{
vkCmdSetDepthBias(cmd_buf,constant_factor,clamp,slope_factor);
}
void CommandBuffer::SetDepthBounds(float min_db,float max_db)
{
vkCmdSetDepthBounds(cmd_buf,min_db,max_db);
}
void CommandBuffer::SetStencilCompareMask(VkStencilFaceFlags faceMask,uint32_t compareMask)
{
vkCmdSetStencilCompareMask(cmd_buf,faceMask,compareMask);
}
void CommandBuffer::SetStencilWriteMask(VkStencilFaceFlags faceMask,uint32_t compareMask)
{
vkCmdSetStencilWriteMask(cmd_buf,faceMask,compareMask);
}
void CommandBuffer::SetStencilReference(VkStencilFaceFlags faceMask,uint32_t compareMask)
{
vkCmdSetStencilReference(cmd_buf,faceMask,compareMask);
}
void CommandBuffer::SetBlendConstants(const float constants[4])
{
vkCmdSetBlendConstants(cmd_buf,constants);
}
void CommandBuffer::SetLineWidth(float line_width)
{
vkCmdSetLineWidth(cmd_buf,line_width);
}
void CommandBuffer::Draw(const uint32_t vertex_count)
{
vkCmdDraw(cmd_buf,vertex_count,1,0,0);

View File

@ -26,6 +26,11 @@ public:
operator VkCommandBuffer(){return cmd_buf;}
bool Begin(RenderPass *rp,Framebuffer *fb);
bool Bind(Pipeline *p);
bool Bind(PipelineLayout *pl);
bool Bind(VertexInput *vi);
void SetRenderArea(const VkRect2D &ra){render_area=ra;}
void SetClearColor(float r,float g,float b,float a=1.0f)
{
@ -40,11 +45,17 @@ public:
clear_values[1].depthStencil.depth=d;
clear_values[1].depthStencil.stencil=s;
}
void SetDepthBias(float constant_factor,float clamp,float slope_factor);
void SetDepthBounds(float min_db,float max_db);
void SetStencilCompareMask(VkStencilFaceFlags faceMask,uint32_t compareMask);
void SetStencilWriteMask(VkStencilFaceFlags faceMask,uint32_t compareMask);
void SetStencilReference(VkStencilFaceFlags faceMask,uint32_t compareMask);
void SetBlendConstants(const float constants[4]);
void SetLineWidth(float);
bool Begin(RenderPass *rp,Framebuffer *fb);
bool Bind(Pipeline *p);
bool Bind(PipelineLayout *pl);
bool Bind(VertexInput *vi);
void Draw(const uint32_t vertex_count);
void Draw(const uint32_t vertex_count,const uint32_t instance_count,const uint32_t first_vertex=0,const uint32_t first_instance=0);
bool End();