改动swap chain切换API(改动完成前引擎将暂不可用)
This commit is contained in:
parent
ae7ec4b229
commit
62c1ed785d
@ -198,9 +198,22 @@ public: //Command Buffer 相关
|
||||
public: //提交相关
|
||||
|
||||
bool Wait (bool wait_all=VK_TRUE,uint64_t time_out=HGL_NANO_SEC_PER_SEC*0.1); ///<等待队列完成
|
||||
bool AcquireNextImage (); ///<请求获得下一帧的索引
|
||||
bool SubmitDraw (const VkCommandBuffer *,const uint32_t count=1); ///<提交绘制指令
|
||||
|
||||
/**
|
||||
* 请求获得下一帧的索引,并将确认信息发送到指定信号
|
||||
*/
|
||||
bool AcquireNextImage (VkSemaphore); ///<请求获得下一帧的索引
|
||||
|
||||
/**
|
||||
* 提交一批绘制指令
|
||||
* @param cmd_list 绘制指令
|
||||
* @param wait_sems 指令开始前要等待的确认的信号
|
||||
* @param complete_semaphores 绘制完成后发送的信号
|
||||
*/
|
||||
bool SubmitDraw (List<VkCommandBuffer> &cmd_list,List<VkSemaphore> &wait_sems,List<VkSemaphore> &complete_semaphores); ///<提交绘制指令
|
||||
|
||||
bool SubmitTexture (const VkCommandBuffer *cmd_bufs,const uint32_t count=1); ///<提交纹理处理到队列
|
||||
|
||||
bool PresentBackbuffer (); ///<等待绘制队列完成,并将后台缓冲区呈现到前台
|
||||
};//class Device
|
||||
VK_NAMESPACE_END
|
||||
|
@ -172,18 +172,22 @@ bool Device::Wait(bool wait_all,uint64_t time_out)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool Device::AcquireNextImage()
|
||||
bool Device::AcquireNextImage(VkSemaphore present_complete_semaphore)
|
||||
{
|
||||
return(vkAcquireNextImageKHR(attr->device,attr->swap_chain,UINT64_MAX,*present_complete_semaphore,VK_NULL_HANDLE,¤t_frame)==VK_SUCCESS);
|
||||
return(vkAcquireNextImageKHR(attr->device,attr->swap_chain,UINT64_MAX,present_complete_semaphore,VK_NULL_HANDLE,¤t_frame)==VK_SUCCESS);
|
||||
}
|
||||
|
||||
bool Device::SubmitDraw(const VkCommandBuffer *cmd_bufs,const uint32_t count)
|
||||
bool Device::SubmitDraw(List<VkCommandBuffer> &cmd_lists,List<VkSemaphore> &wait_sems,List<VkSemaphore> &complete_sems)
|
||||
{
|
||||
if(!cmd_bufs||count<=0)
|
||||
if(cmd_lists.GetCount()<=0)
|
||||
return(false);
|
||||
|
||||
submit_info.commandBufferCount = count;
|
||||
submit_info.pCommandBuffers = cmd_bufs;
|
||||
|
||||
submit_info.waitSemaphoreCount =wait_sems.GetCount();
|
||||
submit_info.pWaitSemaphores =wait_sems.GetData();
|
||||
submit_info.commandBufferCount =cmd_lists.GetCount();
|
||||
submit_info.pCommandBuffers =cmd_lists.GetData();
|
||||
submit_info.signalSemaphoreCount=complete_sems.GetCount();
|
||||
submit_info.pSignalSemaphores =complete_sems.GetData();
|
||||
|
||||
VkFence fence=*fence_list[current_fence];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user