欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種圖形繪制引擎及其實現(xiàn)方法

文檔序號:6428054閱讀:280來源:國知局
專利名稱:一種圖形繪制引擎及其實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖形處理技術(shù),尤其涉及ー種圖形繪制引擎及其實現(xiàn)方法。
背景技術(shù)
目前,在Windows操作系統(tǒng)下,絕大多數(shù)具備圖形界面的應(yīng)用程序都需要專門的圖形設(shè)備接ロ對其進行繪制。除游戲外,絕大多數(shù)應(yīng)用程序使用⑶KGraphics Device Interface,圖形設(shè)備接ロ)和GDI+對其圖形界面進行繪制。GDI繪制的基本原理是對內(nèi)存中像素的運算和拷貝,使用者利用GDI或GDI+所提供的眾多函數(shù)就可以方便的在屏幕、打印機及其它輸出設(shè)備上輸出圖形,文本等操作。GDI和GDI+的出現(xiàn)使程序員無需要關(guān)心硬件設(shè)備及設(shè)備驅(qū)動,就可以將應(yīng)用程序的輸出轉(zhuǎn)化為硬件設(shè)備上的輸出,實現(xiàn)了程序開發(fā)者與硬件設(shè)備的隔離,大 大方便了開發(fā)工作。⑶I和⑶I+在Windows平臺下有著廣泛、良好的兼容性。GDI和GDI+雖然兼容性好,但其致命缺點是繪制效率低。它被用在簡單的圖形應(yīng)用程序中,效率尚可接受;但對于一些復(fù)雜的圖形應(yīng)用場景,如游戲和專業(yè)的作圖、看圖程序中,⑶I和⑶I+的效率明顯低下。由于基于像素運算,⑶I和⑶I+對如下的渲染操作尤其低效
Alpha融合(即ー張圖像半透明地繪制到另ー張圖像上);
高質(zhì)量圖像縮放;
圖像的任意角度旋轉(zhuǎn)。而⑶I+雖然號稱部分使用硬件加速,但其實際繪制效率比⑶I還要低。⑶I和⑶I+的另ー個缺點是占用CPU資源多。雖然現(xiàn)有技術(shù)中出現(xiàn)了用獨立于CPU,專門用于圖形渲染的具有強大的并行計算能力的GPU (Graphic Processing Unit,圖形處理器)進行加速的技術(shù),但GDI和GDI+并沒有大量使用GPU來加速,依舊大大依賴著CPU。另ー種圖形設(shè)備接ロ是D3D (Direct3D),它是由微軟公司提供的3D圖形接ロ,被廣泛用于游戲等高級圖形應(yīng)用程序中。它繪制效率高,使用專門的GPU進行硬件加速。還有一種圖形設(shè)備接ロ是OpenGL (Open Graphics Library),它定義了一個跨編程語言、跨平臺的編程接ロ的規(guī)格,它用于三維圖象(ニ維的亦可)的繪制。OpenGL是個專業(yè)的圖形程序接ロ,是ー個功能強大的底層圖形庫。但是D3D和OpenGL具有以下兩個缺點限制了它們難以被用于普通應(yīng)用程序的繪制中
硬件相關(guān)性大,兼容性差,在圖形渲染過程中很可能受到硬件環(huán)境的影響而出錯;
接ロ復(fù)雜,一次渲染往往需要編寫大量代碼,不易于開發(fā)。發(fā)明人在本發(fā)明的創(chuàng)造過程中發(fā)現(xiàn),用戶對于圖形處理的需求越來越高,不僅要求界面流暢華麗,更需要其性能更加快速高效優(yōu)質(zhì)。但現(xiàn)有技術(shù)中的圖形處理接ロ⑶I和⑶I+,以及D3D和OpenGL已經(jīng)很難滿足對應(yīng)用程序界面繪制的需求,因此提供ー種繪制效率高、CPU資源占用少、兼容性好和接ロ易用的圖形繪制引擎成為亟待解決的技術(shù)問題。

發(fā)明內(nèi)容
本發(fā)明實施例要解決的技術(shù)問題在于,提供ー種圖形繪制引擎,其可以具有繪制效率高、CPU資源占用少、兼容性好和接ロ易用的特點,以滿足對應(yīng)用程序的繪制需求。為解決上述技術(shù)問題,本發(fā)明提供一種圖形繪制引擎實現(xiàn)方法,包括
提取第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息;
將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接ロ;
根據(jù)所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數(shù);通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。相應(yīng)地,本發(fā)明還提供了ー種圖形繪制引擎,包括
信息提取模塊,用于提取第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息;
接ロ封裝模塊,將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接
Π ;
函數(shù)定義模塊,用于根據(jù)所述信息提取模塊提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數(shù);
繪制處理模塊,用于通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。實施本發(fā)明,具有如下有益效果
由于第一圖形設(shè)備接口和第二圖形設(shè)備接ロ是兩種不同的圖形設(shè)備接ロ,本發(fā)明中將兩種不同類型,各具優(yōu)點的圖形設(shè)備接ロ封裝到一起,在對應(yīng)用程序的界面進行繪制過程中,通過封裝的圖形繪制引擎接ロ對其中的一種圖形設(shè)備接ロ進行調(diào)用以實現(xiàn)相應(yīng)的繪制功能,這種可以兼具兩種圖形設(shè)備接ロ的優(yōu)點,從而具有繪制效率高、CPU資源占用少、兼容性好和接ロ易用的特點。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明提供的圖形繪制引擎的實現(xiàn)方法實施例一流程示意 圖2是本發(fā)明提供的圖形繪制引擎接ロ的成員函數(shù)的示意 圖3是本發(fā)明提供的圖形繪制引擎的實現(xiàn)方法的示意 圖4是本發(fā)明提供的圖形繪制引擎中封裝接ロ的示意 圖5是本發(fā)明提供的圖形繪制引擎實施例ニ的流程示意 圖6是本發(fā)明提供的圖形繪制引擎實現(xiàn)方法實施例三的流程示意 圖7是本發(fā)明提供的圖形繪制引擎實施例一的組成示意圖;圖8是本發(fā)明提供的圖形繪制引擎實施例ニ的組成示意 圖9是本發(fā)明提供的圖形繪制引擎實施例三的組成示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。在描述本發(fā)明實施例之前,首先對本發(fā)明中使用到的技術(shù)術(shù)語和概念做ー些介紹,以便本領(lǐng)域技術(shù)人員更好的理解本發(fā)明的技術(shù)方案。渲染引擎,位于軟件系統(tǒng)的最底層,為軟件提供界面渲染等繪圖服務(wù)。
⑶I (Graphics Device Interface),微軟提供的圖形設(shè)備接ロ,用于在圖形設(shè)備(如顯示器)上進行圖形繪制。⑶1+(⑶I Plus),對⑶I的一套封裝和補充,ー些地方進行了優(yōu)化,并增加了新的功能。以下在描述本發(fā)明實施例中,將⑶I和⑶I+統(tǒng)稱為⑶I。D3D(Direct3D),微軟提供的3D圖形接ロ,是DirectX產(chǎn)品的一部分,可以實現(xiàn)基于硬件加速的快速渲染。OpenGL (Open Graphics Library),它定義了ー個跨編程語言、跨平臺的編程接ロ的規(guī)格,它用于三維圖像(ニ維的亦可)的繪制。OpenGL是個專業(yè)的圖形程序接ロ,是ー個功能強大的底層圖形庫。CPU (Central Processing Unit),中央處理器,負(fù)責(zé)計算機的計算工作。GPU (Graphic Processing Unit),圖形處理器,是相對于CPU的一個概念,獨立于CPU,專門用于圖形渲染中的一些計算,有很強的并行計算能力。為了實現(xiàn)高繪制效率、低CPU占用、高兼容性和接ロ易用的目的,本發(fā)明實施例提供的圖形繪制引擎及其實現(xiàn)方法的核心如下
制定該圖形繪制引擎的接ロ,該接ロ是對D3D和GDI的封裝,或者是對OpenGL和GDI的封裝,封裝好本發(fā)明的圖形繪制引擎接ロ后,提供ー套D3D繪制功能的實現(xiàn)方案和ー套GDI的繪制功能的實現(xiàn)方案;或者提供ー套OpenGL繪制功能的實現(xiàn)方案和ー套GDI的繪制功能的實現(xiàn)方案;因此,本發(fā)明提供的圖形繪制引擎可以看作是雙核的圖形繪制引擎,在具體實現(xiàn)過程中,在同一臺計算機的同一時刻,該引擎只處于ー種繪制狀態(tài),要么是D3D繪制狀態(tài),要么是GDI繪制狀態(tài),或者是OpenGL繪制狀態(tài)。這樣ー來,由于本發(fā)明提供的圖形繪制引擎因為對D3D和⑶I或者OpenGL和⑶I進行了封裝,因此可以達(dá)到兼容性好,接ロ易用的目的,并且在不同的時刻,調(diào)用D3D、⑶I、OpenGL其中一種實現(xiàn)圖形的繪制功能,可以達(dá)到降低CPU資源占用少,繪制效率高的目的。以下將結(jié)合

本發(fā)明實施例提供的圖形繪制引擎及其實現(xiàn)方法。參見圖1,為本發(fā)明提供的圖形繪制引擎的實現(xiàn)方法實施例一流程示意圖。本實施例提供的方法,包括
步驟100,提取第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息;步驟101,將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接ロ ; 步驟102,根據(jù)所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函
數(shù);
步驟103,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。具體實現(xiàn)過程中,第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息通常包括四類
類別ー渲染引擎的初始化、渲染流程的控制、設(shè)備狀態(tài)管理等功能;
類別ニ各種形狀的繪制、文字和圖片的繪制、資源的選取、坐標(biāo)系和視角控制等功
倉泛;
類別三坐標(biāo)的計算和表示功能;
類別四用于表示各類繪制資源,例如畫刷、畫筆、字體、圖片等。為了封裝第一圖形設(shè)備接口和第二圖形設(shè)備接ロ,需要提取他們的共同繪制功能信息,也就是將以上四個類別的功能提煉出來,當(dāng)然第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能包括但不限于此,此處僅為舉例說明。將繪制功能信息提取出來之后,將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接ロ,并根據(jù)所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數(shù);
參見圖2,在具體實現(xiàn)過程中,所述圖形繪制引擎接ロ的成員函數(shù)包括渲染設(shè)備函數(shù)、渲染目標(biāo)函數(shù)、尺寸和坐標(biāo)函數(shù)、資源函數(shù)。其中,渲染設(shè)備函數(shù)具體可以表示為
class Render Device,該函數(shù)用以實現(xiàn)上述類別一中的繪制功能。渲染目標(biāo)函數(shù)具體可以表示為
class Render Target,該函數(shù)用以實現(xiàn)上述類別ニ中的繪制功能。尺寸和坐標(biāo)函數(shù)具體可以表示為 class FSize ;
class FPoint ;class FRect ;
該函數(shù)一般作為各種繪制函數(shù)的參數(shù),用以實現(xiàn)上述類別三中的繪制功能。資源函數(shù)具體可以表示為 class Pen ;
class Brush ;class Font ;class Image ;
該函數(shù)用于實現(xiàn)上述類別四中的繪制功能。本發(fā)明提供的第一圖形設(shè)備接ロ為D3D接ロ或OPENGL接ロ ;第二圖形設(shè)備接ロ為GDI 接ロ。以圖形繪制引擎封裝D3D和GDI接ロ為例,利用本發(fā)明提供的圖形繪制引擎進行圖形繪制時,一段簡單的繪制代碼如下RenderDevice dev;
dev. InitAsD3DRenderDevice () ; // 這一步以后 RenderDevice 不一定處于 D3D 狀態(tài),也有可能已經(jīng)靜態(tài)切換到了⑶I狀態(tài)。RenderTarget* pRT = dev. GetRenderTarget();
Image* pImage = new Image ( “Testlmage.bmp”); //資源創(chuàng)建
Brush* pRedBrush = new Brush(RGB(255, 0, 0));
pRT->SelectBrush (^pRedBrush) ; // 資源選取
dev. BeginScene () ;// 繪制流程 _ 開始
pRT->DrawImage (pImage, 100, 100) ; //圖像繪制
pRT->Fi I IRect (Rect (O, O, 40, 40)) ;// 繪制ー個紅色矩形
dev. EndScene O ;//繪制流程_結(jié)束
dev.Present O ;
delete pImage;
delete pRedBrush;
參見圖3,為本發(fā)明提供的圖形繪制引擎的實現(xiàn)方法的示意圖。本實施例中,以針對封裝好的圖形繪制引擎接ロ,分別對渲染設(shè)備函數(shù)(RenderDevice)、值染目標(biāo)函數(shù)(RenderTarget)和尺寸和坐標(biāo)函數(shù)(Size、Point、Rect)以及資源函數(shù)(Brush, Pen, Font, Image)提供了 D3D和⑶I兩套實現(xiàn)圖形繪制功能的方式,且兩套實現(xiàn)的實際繪制效果完全一致。如果圖形繪制引擎接ロ封裝的是OPENGL接口和GDI接ロ,則提供OPENGL和GDI兩套實現(xiàn)圖形繪制功能的方式。本實施例提供的圖形繪制引擎封裝的是D3D接口和⑶I接ロ,以此為例,說明通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能的過程。以渲染目標(biāo)函數(shù)(RenderTarget)為例,本發(fā)明提供的圖形繪制引擎接ロ在實現(xiàn)它時,將RenderTarget理解為“使用一種渲染器(Renderer)向一個數(shù)據(jù)區(qū)(RenderTargetData)繪制圖形”。當(dāng)處于D3D狀態(tài)時,使用D3D渲染器向D3D數(shù)據(jù)區(qū)繪制;當(dāng)處于⑶I狀態(tài)時,使用⑶I渲染器向⑶I數(shù)據(jù)區(qū)繪制。D3D向⑶I切換的過程,實際就是更換渲染器和數(shù)據(jù)區(qū)的過程。其中,D3DRenderer封裝D3D渲染方法,⑶IRenderer封裝⑶I 繪制方法;D3DRenderTargetData 封裝了ー個 D3D 中的 D3DUSAGE_RENDERTARGET 紋理,GDIRenderTargetData 封裝了一個 GDI 中的 DC 和 HBITMAP。RenderTarget 的結(jié)構(gòu)如圖 4 所
/Jn ο代碼表示如下
class Render Target
{
private:
Renderer氺 m—pRenderer;
RenderTargetData氺 m—pRenderTargetData;
};
初始化時,m—pRenderer = new D3DRenderer;m—pRenderTargetData = new D3DRenderTargetData;
從D3D轉(zhuǎn)換到⑶I時,只需要
Renderer* pNewRenderer = new GDIRenderer;
Il這里通過轉(zhuǎn)換橋,將原來m_pRenderer中的內(nèi)容(D3D)轉(zhuǎn)換到pNewRenderer中(⑶I)
SAFE_DELETE(m_pRenderer);m_pRenderer = pNewRenderer;
//RenderTargetData 同理
參見圖5,為本發(fā)明提供的圖形繪制引擎實施例ニ的流程示意圖。 本實施例將詳細(xì)描述通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能,包括
步驟200,圖形繪制引擎啟動;
步驟201,判斷是否檢測到第一圖形設(shè)備接ロ ;
步驟202,若檢測到所述第一圖形設(shè)備接ロ,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能;
步驟203,若無法檢測到所述第一圖形設(shè)備接ロ,通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。以上所述的在圖形繪制引擎啟動的時候,就檢測第一圖形設(shè)備接ロ,當(dāng)無法檢測到第一圖形設(shè)備接ロ吋,調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理,這實際上是ー種不同圖形設(shè)備接ロ之間進行靜態(tài)切換的方式,以本圖形繪制引擎封裝的是D3D接口和GDI接ロ為例,說明靜態(tài)切換流程。靜態(tài)切換是指在用戶指定本圖形繪制引擎以D3D模式初始化(即上述“代碼”中提到的InitAsD3DRenderDevice)時,檢測到當(dāng)前操作系統(tǒng)無法支持D3D,或者在初始化D3D的某一步發(fā)生了錯誤,切換為以⑶I模式初始化圖形繪制引擎的過程。因為這個切換過程是在程序初始化的時候進行的,此時圖形繪制引擎還沒有創(chuàng)建任何資源,因此靜態(tài)切換過程
非常簡單。參見圖6,為本發(fā)明提供的圖形繪制引擎實現(xiàn)方法實施例三的流程示意圖。本實施例將詳細(xì)描述通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能,包括
步驟300,判斷在使用第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能是否發(fā)生異常;
步驟301,當(dāng)使用第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能發(fā)生異常時,通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。以上所述的在圖形繪制引擎啟動的時候,就默認(rèn)使用第一圖形設(shè)備接ロ實現(xiàn)成員函數(shù)對應(yīng)的繪制功能,當(dāng)檢測到第一圖形設(shè)備接ロ發(fā)生異常時,調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理,這實際上是ー種不同圖形設(shè)備接ロ之間進行動態(tài)切換的方式,以本圖形繪制引擎封裝的是D3D接口和GDI接ロ為例,說明動態(tài)切換流程。動態(tài)切換是指圖形繪制引擎已經(jīng)成功地初始化為D3D模式,但是在運行過程中發(fā)生了致命的渲染錯誤(如顯存不足等),而不得不切換到⑶I模式繼續(xù)繪制以保證軟件不至于崩潰。在從D3D模式動態(tài)切換到GDI模式的過程中,需要將所有的D3D資源轉(zhuǎn)換成GDI資源。這些資源包括D3D的紋理和表面,以及維護這些紋理和表面的狀態(tài)參數(shù)。因此必須事先統(tǒng)ー管理這些資源。本實施例中用list來維護這些可能發(fā)生變動的資源。以RenderTarget為例,有全局列表
權(quán)利要求
1.一種圖形繪制引擎實現(xiàn)方法,其特征在于,包括 提取第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息; 將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接ロ; 根據(jù)所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數(shù); 通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。
2.如權(quán)利要求I所述的方法,其特征在于,所述圖形繪制引擎接ロ的成員函數(shù)包括渲染設(shè)備函數(shù)、渲染目標(biāo)函數(shù)、尺寸和坐標(biāo)函數(shù)、資源函數(shù)。
3.如權(quán)利要求2所述的方法,其特征在于,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能,包括 在圖形繪制引擎啟動時,檢測所述第一圖形設(shè)備接ロ ; 若檢測到所述第一圖形設(shè)備接ロ,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能; 若無法檢測到所述第一圖形設(shè)備接ロ,通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。
4.如權(quán)利要求3所述的方法,其特征在于,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能,包括 在使用第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能是否發(fā)生異常; 當(dāng)使用第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能發(fā)生異常時,通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。
5.如權(quán)利要求I至4中任一項所述的方法,其特征在于,所述第一圖形設(shè)備接ロ為D3D接ロ或OPENGL接ロ ;所述第二圖形設(shè)備接ロ為⑶I接ロ。
6.ー種圖形繪制引擎,其特征在于,包括 信息提取模塊,用于提取第一圖形設(shè)備接口和第二圖形設(shè)備接ロ的繪制功能信息; 接ロ封裝模塊,將所述第一圖形設(shè)備接口和第二圖形設(shè)備接ロ封裝為圖形繪制引擎接Π ; 函數(shù)定義模塊,用于根據(jù)所述信息提取模塊提取的繪制功能信息,定義所述封裝的圖形繪制引擎接ロ的成員函數(shù); 繪制處理模塊,用于通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ或第二圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。
7.如權(quán)利要求6所述的圖形繪制引擎,其特征在于,所述圖形繪制引擎接ロ的成員函數(shù)包括渲染設(shè)備函數(shù)、渲染目標(biāo)函數(shù)、尺寸和坐標(biāo)函數(shù)、資源函數(shù)。
8.如權(quán)利要求7所述的圖形繪制引擎,其特征在于,所述繪制處理模塊,包括 接ロ檢測單元,用于在圖形繪制引擎啟動時檢測所述第一圖形設(shè)備接ロ ; 接ロ調(diào)用單元,用于在所述接ロ檢測單元檢測到所述第一圖像設(shè)備接ロ時,通過圖形繪制引擎接ロ調(diào)用所述第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能;所述接ロ檢測單元無法檢測到所述第一圖形設(shè)備接ロ時,通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。
9.如權(quán)利要求8所述的圖形繪制引擎,其特征在于,所述繪制處理模塊還包括異常檢測單元,用于在接ロ調(diào)用單元調(diào)用第一圖形設(shè)備接ロ實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能吋,檢測是否發(fā)生異常; 在所述異常檢測單元檢測到發(fā)生異常時,所述接ロ調(diào)用單元還用于通過圖形繪制引擎接ロ調(diào)用第二圖形設(shè)備接ロ實現(xiàn)對圖形的繪制處理。
10.如權(quán)利要求6至9中任一項所述的圖形繪制引擎,其特征在于,所述第一圖形設(shè)備接ロ為D3D接ロ或OPENGL接ロ ;所述第二圖形設(shè)備接ロ為⑶I接ロ。
全文摘要
本發(fā)明實施例提供一種圖形繪制引擎及其實現(xiàn)方法,該方法包括提取第一圖形設(shè)備接口和第二圖形設(shè)備接口的繪制功能信息;將所述第一圖形設(shè)備接口和第二圖形設(shè)備接口封裝為圖形繪制引擎接口;根據(jù)所述提取的繪制功能信息,定義所述封裝的圖形繪制引擎接口的成員函數(shù);通過圖形繪制引擎接口調(diào)用所述第一圖形設(shè)備接口或第二圖形設(shè)備接口實現(xiàn)所述成員函數(shù)對應(yīng)的繪制功能。本發(fā)明提供的圖形繪制引擎具有繪制效率高、CPU資源占用少、兼容性好和接口易用的優(yōu)點。
文檔編號G06T1/00GK102867284SQ201110189638
公開日2013年1月9日 申請日期2011年7月7日 優(yōu)先權(quán)日2011年7月7日
發(fā)明者黃淵, 黃飛躍, 吳永堅, 董立乾 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永昌县| 宁河县| 邢台县| 博乐市| 阳城县| 获嘉县| 大悟县| 兖州市| 漳平市| 墨脱县| 阳高县| 邹城市| 如皋市| 栾城县| 定兴县| 运城市| 曲阜市| 汶川县| 宣恩县| 六安市| 普兰县| 额济纳旗| 云浮市| 石河子市| 太仆寺旗| 遂溪县| 怀化市| 虹口区| 蒙城县| 广平县| 乐都县| 夏邑县| 邹平县| 民乐县| 济源市| 广汉市| 铅山县| 沧源| 紫阳县| 夏河县| 广昌县|