本發明專利技術實施例提供一種圖形繪制引擎及其實現方法,該方法包括:提取第一圖形設備接口和第二圖形設備接口的繪制功能信息;將所述第一圖形設備接口和第二圖形設備接口封裝為圖形繪制引擎接口;根據所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接口的成員函數;通過圖形繪制引擎接口調用所述第一圖形設備接口或第二圖形設備接口實現所述成員函數對應的繪制功能。本發明專利技術提供的圖形繪制引擎具有繪制效率高、CPU資源占用少、兼容性好和接口易用的優點。
【技術實現步驟摘要】
本專利技術涉及圖形處理技術,尤其涉及ー種圖形繪制引擎及其實現方法。
技術介紹
目前,在Windows操作系統下,絕大多數具備圖形界面的應用程序都需要專門的圖形設備接ロ對其進行繪制。除游戲外,絕大多數應用程序使用⑶KGraphics Device Interface,圖形設備接ロ)和GDI+對其圖形界面進行繪制。GDI繪制的基本原理是對內存中像素的運算和拷貝,使用者利用GDI或GDI+所提供的眾多函數就可以方便的在屏幕、打印機及其它輸出設備上輸出圖形,文本等操作。GDI和GDI+的出現使程序員無需要關心硬件設備及設備驅動,就可以將應用程序的輸出轉化為硬件設備上的輸出,實現了程序開發者與硬件設備的隔離,大 大方便了開發工作。⑶I和⑶I+在Windows平臺下有著廣泛、良好的兼容性。GDI和GDI+雖然兼容性好,但其致命缺點是繪制效率低。它被用在簡單的圖形應用程序中,效率尚可接受;但對于一些復雜的圖形應用場景,如游戲和專業的作圖、看圖程序中,⑶I和⑶I+的效率明顯低下。由于基于像素運算,⑶I和⑶I+對如下的渲染操作尤其低效 Alpha融合(即ー張圖像半透明地繪制到另ー張圖像上); 高質量圖像縮放; 圖像的任意角度旋轉。而⑶I+雖然號稱部分使用硬件加速,但其實際繪制效率比⑶I還要低。⑶I和⑶I+的另ー個缺點是占用CPU資源多。雖然現有技術中出現了用獨立于CPU,專門用于圖形渲染的具有強大的并行計算能力的GPU (Graphic Processing Unit,圖形處理器)進行加速的技術,但GDI和GDI+并沒有大量使用GPU來加速,依舊大大依賴著CPU。另ー種圖形設備接ロ是D3D (Direct3D),它是由微軟公司提供的3D圖形接ロ,被廣泛用于游戲等高級圖形應用程序中。它繪制效率高,使用專門的GPU進行硬件加速。還有一種圖形設備接ロ是OpenGL (Open Graphics Library),它定義了一個跨編程語言、跨平臺的編程接ロ的規格,它用于三維圖象(ニ維的亦可)的繪制。OpenGL是個專業的圖形程序接ロ,是ー個功能強大的底層圖形庫。但是D3D和OpenGL具有以下兩個缺點限制了它們難以被用于普通應用程序的繪制中 硬件相關性大,兼容性差,在圖形渲染過程中很可能受到硬件環境的影響而出錯; 接ロ復雜,一次渲染往往需要編寫大量代碼,不易于開發。專利技術人在本專利技術的創造過程中發現,用戶對于圖形處理的需求越來越高,不僅要求界面流暢華麗,更需要其性能更加快速高效優質。但現有技術中的圖形處理接ロ⑶I和⑶I+,以及D3D和OpenGL已經很難滿足對應用程序界面繪制的需求,因此提供ー種繪制效率高、CPU資源占用少、兼容性好和接ロ易用的圖形繪制引擎成為亟待解決的技術問題。
技術實現思路
本專利技術實施例要解決的技術問題在于,提供ー種圖形繪制引擎,其可以具有繪制效率高、CPU資源占用少、兼容性好和接ロ易用的特點,以滿足對應用程序的繪制需求。為解決上述技術問題,本專利技術提供一種圖形繪制引擎實現方法,包括 提取第一圖形設備接口和第二圖形設備接ロ的繪制功能信息; 將所述第一圖形設備接口和第二圖形設備接ロ封裝為圖形繪制引擎接ロ; 根據所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數;通過圖形繪制引擎接ロ調用所述第一圖形設備接ロ或第二圖形設備接ロ實現所述成員函數對應的繪制功能。相應地,本專利技術還提供了ー種圖形繪制引擎,包括 信息提取模塊,用于提取第一圖形設備接口和第二圖形設備接ロ的繪制功能信息; 接ロ封裝模塊,將所述第一圖形設備接口和第二圖形設備接ロ封裝為圖形繪制引擎接Π ; 函數定義模塊,用于根據所述信息提取模塊提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數; 繪制處理模塊,用于通過圖形繪制引擎接ロ調用所述第一圖形設備接ロ或第二圖形設備接ロ實現所述成員函數對應的繪制功能。實施本專利技術,具有如下有益效果 由于第一圖形設備接口和第二圖形設備接ロ是兩種不同的圖形設備接ロ,本專利技術中將兩種不同類型,各具優點的圖形設備接ロ封裝到一起,在對應用程序的界面進行繪制過程中,通過封裝的圖形繪制引擎接ロ對其中的一種圖形設備接ロ進行調用以實現相應的繪制功能,這種可以兼具兩種圖形設備接ロ的優點,從而具有繪制效率高、CPU資源占用少、兼容性好和接ロ易用的特點。附圖說明為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I是本專利技術提供的圖形繪制引擎的實現方法實施例一流程示意 圖2是本專利技術提供的圖形繪制引擎接ロ的成員函數的示意 圖3是本專利技術提供的圖形繪制引擎的實現方法的示意 圖4是本專利技術提供的圖形繪制引擎中封裝接ロ的示意 圖5是本專利技術提供的圖形繪制引擎實施例ニ的流程示意 圖6是本專利技術提供的圖形繪制引擎實現方法實施例三的流程示意 圖7是本專利技術提供的圖形繪制引擎實施例一的組成示意圖;圖8是本專利技術提供的圖形繪制引擎實施例ニ的組成示意 圖9是本專利技術提供的圖形繪制引擎實施例三的組成示意圖。具體實施例方式下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本專利技術一部分實施例,而不是全部的實施例。基于本專利技術中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術保護的范圍。在描述本專利技術實施例之前,首先對本專利技術中使用到的技術術語和概念做ー些介紹,以便本領域技術人員更好的理解本專利技術的技術方案。渲染引擎,位于軟件系統的最底層,為軟件提供界面渲染等繪圖服務。 ⑶I (Graphics Device Interface),微軟提供的圖形設備接ロ,用于在圖形設備(如顯示器)上進行圖形繪制。⑶1+(⑶I Plus),對⑶I的一套封裝和補充,ー些地方進行了優化,并增加了新的功能。以下在描述本專利技術實施例中,將⑶I和⑶I+統稱為⑶I。D3D(Direct3D),微軟提供的3D圖形接ロ,是DirectX產品的一部分,可以實現基于硬件加速的快速渲染。OpenGL (Open Graphics Library),它定義了ー個跨編程語言、跨平臺的編程接ロ的規格,它用于三維圖像(ニ維的亦可)的繪制。OpenGL是個專業的圖形程序接ロ,是ー個功能強大的底層圖形庫。CPU (Central Processing Unit),中央處理器,負責計算機的計算工作。GPU (Graphic Processing Unit),圖形處理器,是相對于CPU的一個概念,獨立于CPU,專門用于圖形渲染中的一些計算,有很強的并行計算能力。為了實現高繪制效率、低CPU占用、高兼容性和接ロ易用的目的,本專利技術實施例提供的圖形繪制引擎及其實現方法的核心如下 制定該圖形繪制引擎的接ロ,該接ロ是對D3D和GDI的封裝,或者是對OpenGL和GDI的封裝,封裝好本專利技術的圖形繪制引擎接ロ后,提供ー套D3D繪制功能的實現方案和ー套GDI的繪制功能的實現方案;或者提供ー套OpenGL繪制功能本文檔來自技高網...
【技術保護點】
一種圖形繪制引擎實現方法,其特征在于,包括:提取第一圖形設備接口和第二圖形設備接口的繪制功能信息;將所述第一圖形設備接口和第二圖形設備接口封裝為圖形繪制引擎接口;根據所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接口的成員函數;通過圖形繪制引擎接口調用所述第一圖形設備接口或第二圖形設備接口實現所述成員函數對應的繪制功能。
【技術特征摘要】
【專利技術屬性】
技術研發人員:黃淵,黃飛躍,吳永堅,董立乾,
申請(專利權)人:騰訊科技深圳有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。