[發明專利]一種多線程渲染的方法和裝置有效
| 申請號: | 201710524166.7 | 申請日: | 2017-06-30 |
| 公開(公告)號: | CN109213607B | 公開(公告)日: | 2021-07-23 |
| 發明(設計)人: | 楊亮;張文明;陳少杰 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06T1/20 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多線程 渲染 方法 裝置 | ||
本發明實施例提供了一種多線程渲染的方法和裝置,用于實現提高渲染效率的技術效果。所述方法包括:在入口接口中創建命令執行隊列;在所述命令執行隊列中創建N個命令列表,N為大于等于2的整數;創建與N個所述命令列表一一對應的N個渲染子線程;通過N個所述渲染子線程向N個所述命令列表提交渲染指令;當N個所述命令列表的渲染指令提交完成后,通過所述命令執行隊列執行N個所述命令列表的渲染指令進行渲染。
技術領域
本發明涉及計算機技術領域,尤其涉及一種多線程渲染的方法和裝置。
背景技術
直接三維Direct 3D是由微軟公司所制定的3D規格界面,與Windows 95和WindowsNT操作系統兼容性好,可繞過圖形顯示接口直接進行支持接口的各種硬件的底層操作。然而,相關技術在利用Direct 3D進行游戲編程時,通常使用單線程渲染,即所有的繪制指令操作都只能在一個線程中執行。這對于大型的游戲或者實時性要求很高的游戲而言,單線程渲染的效率是達不到期望的。
發明內容
本發明實施例提供了一種多線程渲染的方法和裝置,用于實現提高渲染效率的技術效果。
第一方面,本發明提供了一種多線程渲染的方法,包括:
在入口接口中創建命令執行隊列;
在所述命令執行隊列中創建N個命令列表,N為大于等于2的整數;
創建與N個所述命令列表一一對應的N個渲染子線程;
通過N個所述渲染子線程向N個所述命令列表提交渲染指令;
當N個所述命令列表的渲染指令提交完成后,通過所述命令執行隊列執行N個所述命令列表的渲染指令進行渲染。
可選的,所述方法還包括:
在每個所述渲染子線程中創建信號事件;
如果所述渲染子線程未完成向對應的所述命令列表提交所有渲染指令,將所述渲染子線程對應的所述信號事件設置為無信號狀態;
如果所述渲染子線程完成向對應的所述命令列表提交所有渲染指令,將所述渲染子線程對應的所述信號事件設置為有信號狀態。
可選的,所述方法還包括:
如果所述渲染主線程監測到N個所述信號事件均為所述有信號狀態,確定N個所述命令列表的渲染指令提交完成。
可選的,在通過N個所述渲染子線程向N個所述命令列表提交渲染指令之前,所述方法還包括:
獲得每個所述命令列表所要對應實現的渲染功能的渲染參數;
基于所述渲染參數生成所述渲染指令。
第二方面,本發明提供了一種多線程渲染的裝置,包括:
第一創建模塊,用于在入口接口中創建命令執行隊列;
第二創建模塊,用于在所述命令執行隊列中創建N個命令列表,N為大于等于2的整數;
第三創建模塊,用于創建與N個所述命令列表一一對應的N個渲染子線程;
提交模塊,用于通過N個所述渲染子線程向N個所述命令列表提交渲染指令;
執行模塊,用于當N個所述命令列表的渲染指令提交完成后,通過所述命令執行隊列執行N個所述命令列表的渲染指令進行渲染。
可選的,所述裝置還包括:
第四創建模塊,用于在每個所述渲染子線程中創建信號事件;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710524166.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種數據交互的方法和裝置
- 下一篇:用于加速的高效操作數多播





