基于GWES的WinCE Display驅(qū)動(dòng)開發(fā)介紹
y:光標(biāo)移動(dòng)位置的y坐標(biāo)
2.4.7 virtual SCODE BltPrepare(GPEBltParms *blitParameters)
在做位塊傳輸前會(huì)先執(zhí)行該函數(shù),用于確定執(zhí)行BLT的函數(shù)
blitParameters:指向一個(gè)GPE的位塊傳輸參數(shù)的結(jié)構(gòu)體
2.4.8 virtual SCODE BltComplete(GPEBltParms *blitParameters)
該函數(shù)用于釋放在BltPrepare中申請(qǐng)的資源
blitParameters:指向一個(gè)GPE的位塊傳輸參數(shù)的結(jié)構(gòu)體
2.4.9 virtual SCODE Line(GPELineParms *lineParameters, EGPEPhase phase)
畫線函數(shù)
lineParameters:指向一個(gè)GPE的Line結(jié)構(gòu)體,描述所畫的線
phase:畫線所處的階段,具體描述如下
gpeSingle:畫單根線
gpePrepare:準(zhǔn)備畫線
gpeContinue:畫線過程中
gpeComplete:畫線完成
在這里要提一點(diǎn),有時(shí)我們會(huì)看到在該函數(shù)中調(diào)用另一個(gè)函數(shù)WrappedEmulatedLine(),這個(gè)函數(shù)在WinCE的PUBLIC目錄下的參考Display驅(qū)動(dòng)中也可以找到,該函數(shù)是一個(gè)快速的畫線函數(shù),里面采用了Bresenham畫線算法,通過采用運(yùn)行速度快的加減和移位運(yùn)算來完成畫線。
2.4.10 virtual SCODE SetPalette(const PALETTEENTRY *pSource, USHORT firstEntry, USHORT numEntries)
設(shè)置調(diào)色板
pSource:指向一個(gè)調(diào)色板入口信息的結(jié)構(gòu)體
firstEntry:第一個(gè)入口
numEntries:入口的個(gè)數(shù)
2.4.11 virtual int InVBlank(void)
顯示設(shè)備是否處于垂直消隱期間
上述函數(shù)在GPE類中均被定義為純虛函數(shù),需要在繼承類中實(shí)現(xiàn),也就是在我們的驅(qū)動(dòng)程序中實(shí)現(xiàn)。這些函數(shù)是必須實(shí)現(xiàn)的。根據(jù)顯示的需求,還可以在顯示驅(qū)動(dòng)中添加其他的函數(shù),比如對(duì)光標(biāo)的支持,對(duì)旋轉(zhuǎn)的支持等,如下:
2.4.12 void CursorOn(void)
使能光標(biāo)顯示。
2.4.13 void CursorOff(void)
禁止光標(biāo)顯示。
2.4.14 void SetRotateParms(void)
設(shè)置屏幕翻轉(zhuǎn)參數(shù)。
2.4.15 void DynRotate(int angel)
支持動(dòng)態(tài)翻轉(zhuǎn)。
angel:翻轉(zhuǎn)角度
2.4.16 ULONG *APIENTRY DrvGetMasks(DHPDEV dhpdev)
獲得顯示模式的RGB掩碼
dhpdev:指向掩碼信息,比如RGB565模式為(0xf800,0x07e0,0x001f)
NOTE:該函數(shù)必須在驅(qū)動(dòng)中被實(shí)現(xiàn)。
2.4.17 PowerHandler(BOOL bOff)
電源控制。
bOff:TRUE表示關(guān)閉電源,F(xiàn)ALSE表示打開電源
2.4.18 ULONG DrvEscape(DHPDEV dhpdev, SURFOBJ* pso, ULONG iEsc, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut)
該函數(shù)提供給應(yīng)用程序的一個(gè)直接訪問顯示驅(qū)動(dòng)的接口,和流設(shè)備驅(qū)動(dòng)中的IoCtls函數(shù)類似。應(yīng)用程序通過調(diào)用ExtEscape函數(shù)傳送操作碼和數(shù)據(jù)給顯示設(shè)備驅(qū)動(dòng),DrvEscape函數(shù)會(huì)接收到數(shù)據(jù)并進(jìn)行處理,然后返回相應(yīng)結(jié)果給EstEscape函數(shù)。用戶也可以根據(jù)需要自己定義相應(yīng)的操作碼。
dhpdev:設(shè)備句柄
pso:指向一個(gè)繪圖平面的結(jié)構(gòu)
iEsc:操作碼
cjIn:輸入數(shù)據(jù)buffer的大小
pvIn:指向輸入數(shù)據(jù)buffer
cjOut:輸出數(shù)據(jù)buffer的大小
pvOut:指向輸出數(shù)據(jù)buffer
評(píng)論