浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 接口電路

WinCE Display驅(qū)動開發(fā)介紹

發(fā)布時間:2008/9/5 0:00:00 訪問次數(shù):849

  在wince中,display驅(qū)動由gwes模塊來管理。wince提供了兩種架構(gòu)的display驅(qū)動模型,可以滿足不同的硬件需求。一種是基于wince ddi的display驅(qū)動模型,另一種是基于directdraw的display驅(qū)動模型。下面將對兩種架構(gòu)作簡單介紹。

  1. display驅(qū)動模型

  wince下的display驅(qū)動直接由gwes模塊管理,它會直接被gwes模塊管理和調(diào)用。display驅(qū)動實際上也是分層的,其中包括gpe庫,該庫處理一些默認(rèn)的繪圖,相當(dāng)于驅(qū)動的mdd層。用戶只需要開發(fā)和硬件相關(guān)的pdd層驅(qū)動就可以了。在wince中,整個架構(gòu)如圖:

  如圖,application為一個應(yīng)用程序,該程序會調(diào)用圖形設(shè)備接口函數(shù)(gdi),而gdi函數(shù)是由coredll.dll模塊導(dǎo)出的。coredll.dll會將函數(shù)調(diào)用的參數(shù)打包,然后觸發(fā)對另一個進程的本地過程調(diào)用(lpc),所有的繪圖和開窗口的工作被傳給內(nèi)核中g(shù)wes模塊。gwes模塊被稱為圖形,窗口和事件子系統(tǒng),專門處理圖形輸出和用戶輸入等事件及相關(guān)的所有交互。gwes模塊會調(diào)用display驅(qū)動完成對顯示硬件的操作。display驅(qū)動由gpe和ddl.dll組成,gpe完成基本的默認(rèn)繪圖工作,而ddi.dll實際上從gpe類上繼承而來的,并實現(xiàn)了相關(guān)的顯示硬件的操作。

  2. directdraw display驅(qū)動模型

  directdraw提供了獨立于硬件的直接訪問顯示設(shè)備的能力。它可以通過直接訪問硬件抽象層(hal)中的一些函數(shù)來達到直接操作顯示設(shè)備的目的,在這個過程中,不再需要圖形設(shè)備接口(gdi)的轉(zhuǎn)換。這種直接的方法可以使圖像更加連貫,也提高了顯示的性能。為了實現(xiàn)這樣的功能,需要在顯示驅(qū)動上擴展能夠直接訪問相關(guān)硬件的函數(shù)。這些函數(shù)會被directdraw模塊調(diào)用,并形成directdraw的硬件抽象層(ddhal)。directdraw顯示驅(qū)動架構(gòu)如圖:

  如圖,directdraw的真正實現(xiàn)代碼都駐留在gwes.dll模塊中,應(yīng)用程序只是連接了一個小的客戶端,被稱為ddraw.dll代理,該代理主要負責(zé)用戶進程與系統(tǒng)之間的遠程directdraw com接口連接。這樣,用戶請求會被傳送到內(nèi)核的gwes模塊中。針對directdraw,wince提供了一個名為directdraw的gpe庫(ddgpe),它是從gpe類上面繼承而來的。實際上,directdraw顯示驅(qū)動是由ddgpe和ddhal組成,而ddgpe中已經(jīng)包含了ddhal的功能。用戶需要從ddgpe類繼承并實現(xiàn)相關(guān)函數(shù)即可。gwes.dll模塊中包含gdi和ddraw兩個組件,這兩個組件會調(diào)用驅(qū)動中的ddgpe的相關(guān)接口完成對硬件的操作。

  在上述兩種架構(gòu)中,用戶可以根據(jù)自己的硬件情況選擇相應(yīng)的架構(gòu)。第一種架構(gòu)是基于gpe類繼承來實現(xiàn)的,第二種架構(gòu)是基于ddgpe類繼承來實現(xiàn)的,而第二種架構(gòu)的ddgpe類又是從第一種架構(gòu)的gpe類繼承而來。關(guān)于兩種類的具體定義,可參見” \wince600\public\common\oak\inc”路徑下的gpe.h和ddgpe.h文件。

  本blog將基于display驅(qū)動模型來介紹,directdraw display驅(qū)動模型不在這里介紹。

  wince下的display驅(qū)動是基于gpe類來實現(xiàn)的,其中g(shù)pe中已經(jīng)實現(xiàn)了基本的繪制工作,相當(dāng)于mdd層。用戶需要繼承該類,并實現(xiàn)里面的其他一些函數(shù),所以用戶實現(xiàn)的相當(dāng)于pdd層。

  gpe類是一個抽象類,其中包含很多純虛函數(shù),只能用于繼承。用戶在繼承了gpe類以后,要對gpe類中的純虛函數(shù)做相應(yīng)的實現(xiàn)。開發(fā)display驅(qū)動的大致步驟如下:

  (1) 繼承g(shù)pe類并定義一個該類的實例。

  (2) 實現(xiàn)getgpe()函數(shù),把該類的實例返回給上層的ddi接口。

  (3) 實現(xiàn)drvenabledriver(..)和displayinit(..)函數(shù)并導(dǎo)出這兩個接口。

  (4) 實現(xiàn)gpe類中的函數(shù)。

  下面將具體介紹實現(xiàn)的步驟:

  1 繼承g(shù)pe類

  首先,基于gpe類進行繼承,如果想在display驅(qū)動支持rotation可以從gperotate類上面繼承。實際上,在”gpe.h”中有如下定義:

  typedef gpe gperotate;

  可以看出gperotate類就是gpe類。在這里,用戶從gpe類上面繼承就可以了,舉個例子如下:

  class newgpe: public gpe

  {

  private:

  gpemode m_modeinfo;

  dword m_colordepth;

  dword m_virtualframebuffer;

  dword m_framebuffersize;

  bool m_cursordisabled;

  bool m_cursorvisible;

  …

  public:

  newgpe(void);

  virtual int nummodes(void);

  virtual scode setmode(int modeid, hpalette *palette);

  virtual int invblank(void);

  virtual scode setpalette(const paletteentry *source, ushort firstentry, ushort numentries);

  virtu

  在wince中,display驅(qū)動由gwes模塊來管理。wince提供了兩種架構(gòu)的display驅(qū)動模型,可以滿足不同的硬件需求。一種是基于wince ddi的display驅(qū)動模型,另一種是基于directdraw的display驅(qū)動模型。下面將對兩種架構(gòu)作簡單介紹。

  1. display驅(qū)動模型

  wince下的display驅(qū)動直接由gwes模塊管理,它會直接被gwes模塊管理和調(diào)用。display驅(qū)動實際上也是分層的,其中包括gpe庫,該庫處理一些默認(rèn)的繪圖,相當(dāng)于驅(qū)動的mdd層。用戶只需要開發(fā)和硬件相關(guān)的pdd層驅(qū)動就可以了。在wince中,整個架構(gòu)如圖:

  如圖,application為一個應(yīng)用程序,該程序會調(diào)用圖形設(shè)備接口函數(shù)(gdi),而gdi函數(shù)是由coredll.dll模塊導(dǎo)出的。coredll.dll會將函數(shù)調(diào)用的參數(shù)打包,然后觸發(fā)對另一個進程的本地過程調(diào)用(lpc),所有的繪圖和開窗口的工作被傳給內(nèi)核中g(shù)wes模塊。gwes模塊被稱為圖形,窗口和事件子系統(tǒng),專門處理圖形輸出和用戶輸入等事件及相關(guān)的所有交互。gwes模塊會調(diào)用display驅(qū)動完成對顯示硬件的操作。display驅(qū)動由gpe和ddl.dll組成,gpe完成基本的默認(rèn)繪圖工作,而ddi.dll實際上從gpe類上繼承而來的,并實現(xiàn)了相關(guān)的顯示硬件的操作。

  2. directdraw display驅(qū)動模型

  directdraw提供了獨立于硬件的直接訪問顯示設(shè)備的能力。它可以通過直接訪問硬件抽象層(hal)中的一些函數(shù)來達到直接操作顯示設(shè)備的目的,在這個過程中,不再需要圖形設(shè)備接口(gdi)的轉(zhuǎn)換。這種直接的方法可以使圖像更加連貫,也提高了顯示的性能。為了實現(xiàn)這樣的功能,需要在顯示驅(qū)動上擴展能夠直接訪問相關(guān)硬件的函數(shù)。這些函數(shù)會被directdraw模塊調(diào)用,并形成directdraw的硬件抽象層(ddhal)。directdraw顯示驅(qū)動架構(gòu)如圖:

  如圖,directdraw的真正實現(xiàn)代碼都駐留在gwes.dll模塊中,應(yīng)用程序只是連接了一個小的客戶端,被稱為ddraw.dll代理,該代理主要負責(zé)用戶進程與系統(tǒng)之間的遠程directdraw com接口連接。這樣,用戶請求會被傳送到內(nèi)核的gwes模塊中。針對directdraw,wince提供了一個名為directdraw的gpe庫(ddgpe),它是從gpe類上面繼承而來的。實際上,directdraw顯示驅(qū)動是由ddgpe和ddhal組成,而ddgpe中已經(jīng)包含了ddhal的功能。用戶需要從ddgpe類繼承并實現(xiàn)相關(guān)函數(shù)即可。gwes.dll模塊中包含gdi和ddraw兩個組件,這兩個組件會調(diào)用驅(qū)動中的ddgpe的相關(guān)接口完成對硬件的操作。

  在上述兩種架構(gòu)中,用戶可以根據(jù)自己的硬件情況選擇相應(yīng)的架構(gòu)。第一種架構(gòu)是基于gpe類繼承來實現(xiàn)的,第二種架構(gòu)是基于ddgpe類繼承來實現(xiàn)的,而第二種架構(gòu)的ddgpe類又是從第一種架構(gòu)的gpe類繼承而來。關(guān)于兩種類的具體定義,可參見” \wince600\public\common\oak\inc”路徑下的gpe.h和ddgpe.h文件。

  本blog將基于display驅(qū)動模型來介紹,directdraw display驅(qū)動模型不在這里介紹。

  wince下的display驅(qū)動是基于gpe類來實現(xiàn)的,其中g(shù)pe中已經(jīng)實現(xiàn)了基本的繪制工作,相當(dāng)于mdd層。用戶需要繼承該類,并實現(xiàn)里面的其他一些函數(shù),所以用戶實現(xiàn)的相當(dāng)于pdd層。

  gpe類是一個抽象類,其中包含很多純虛函數(shù),只能用于繼承。用戶在繼承了gpe類以后,要對gpe類中的純虛函數(shù)做相應(yīng)的實現(xiàn)。開發(fā)display驅(qū)動的大致步驟如下:

  (1) 繼承g(shù)pe類并定義一個該類的實例。

  (2) 實現(xiàn)getgpe()函數(shù),把該類的實例返回給上層的ddi接口。

  (3) 實現(xiàn)drvenabledriver(..)和displayinit(..)函數(shù)并導(dǎo)出這兩個接口。

  (4) 實現(xiàn)gpe類中的函數(shù)。

  下面將具體介紹實現(xiàn)的步驟:

  1 繼承g(shù)pe類

  首先,基于gpe類進行繼承,如果想在display驅(qū)動支持rotation可以從gperotate類上面繼承。實際上,在”gpe.h”中有如下定義:

  typedef gpe gperotate;

  可以看出gperotate類就是gpe類。在這里,用戶從gpe類上面繼承就可以了,舉個例子如下:

  class newgpe: public gpe

  {

  private:

  gpemode m_modeinfo;

  dword m_colordepth;

  dword m_virtualframebuffer;

  dword m_framebuffersize;

  bool m_cursordisabled;

  bool m_cursorvisible;

  …

  public:

  newgpe(void);

  virtual int nummodes(void);

  virtual scode setmode(int modeid, hpalette *palette);

  virtual int invblank(void);

  virtual scode setpalette(const paletteentry *source, ushort firstentry, ushort numentries);

  virtu

相關(guān)IC型號

熱門點擊

 

推薦技術(shù)資料

耳機放大器
    為了在聽音樂時不影響家人,我萌生了做一臺耳機放大器的想... [詳細]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!