改动swap chain切换API(改动完成前引擎将暂不可用)
This commit is contained in:
parent
ae7ec4b229
commit
62c1ed785d
@ -198,9 +198,22 @@ public: //Command Buffer 相关
|
|||||||
public: //提交相关
|
public: //提交相关
|
||||||
|
|
||||||
bool Wait (bool wait_all=VK_TRUE,uint64_t time_out=HGL_NANO_SEC_PER_SEC*0.1); ///<等待队列完成
|
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 SubmitTexture (const VkCommandBuffer *cmd_bufs,const uint32_t count=1); ///<提交纹理处理到队列
|
||||||
|
|
||||||
bool PresentBackbuffer (); ///<等待绘制队列完成,并将后台缓冲区呈现到前台
|
bool PresentBackbuffer (); ///<等待绘制队列完成,并将后台缓冲区呈现到前台
|
||||||
};//class Device
|
};//class Device
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
@ -172,18 +172,22 @@ bool Device::Wait(bool wait_all,uint64_t time_out)
|
|||||||
return(true);
|
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);
|
return(false);
|
||||||
|
|
||||||
submit_info.commandBufferCount = count;
|
submit_info.waitSemaphoreCount =wait_sems.GetCount();
|
||||||
submit_info.pCommandBuffers = cmd_bufs;
|
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];
|
VkFence fence=*fence_list[current_fence];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user