?? jiagou.htm
字號:
FACE="Arial" SIZE="3">DirectDrawCreate</font><font FACE="宋體" SIZE="3">函數可以創建一個</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對象。</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對象通過</font><font
FACE="Arial" SIZE="3">IDirectDraw</font><font FACE="宋體" SIZE="3">和</font><font
FACE="Arial" SIZE="3">IDirectDraw2</font><font FACE="宋體" SIZE="3">接口為開發者提供其函數性。要得到更多的資料,請參閱“</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對象”。</font></td>
</tr>
<tr>
<td WIDTH="31%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><b><p ALIGN="JUSTIFY">DirectDrawSurface</b></font></td>
<td WIDTH="69%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawSurface</font><font
FACE="宋體" SIZE="3">對象,通常簡稱為“頁面(</font><font FACE="Arial"
SIZE="3">Surface</font><font FACE="宋體" SIZE="3">)”,代表了內存中的一塊區域,它存儲了可以顯示在顯示器上的圖象數據。通過調用</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對象的</font><font
FACE="Arial" SIZE="3">IDirectDraw2::CreateSurface</font><font FACE="宋體" SIZE="3">函數可以創建一個與該</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對象相關聯的頁面。</font><font
FACE="Arial" SIZE="3">DirectDrawSurface</font><font FACE="宋體" SIZE="3">對象通過</font><font
FACE="Arial" SIZE="3">IDirectDrawSurface</font><font FACE="宋體" SIZE="3">、</font><font
FACE="Arial" SIZE="3">IdirectDrawSurface2</font><font FACE="宋體" SIZE="3">和</font><font
FACE="Arial" SIZE="3">IDirectDrawSurface3</font><font FACE="宋體" SIZE="3">接口為開發者提供其函數性。要得到更多的資料,請參閱“頁面”。</font></td>
</tr>
<tr>
<td WIDTH="31%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><b><p ALIGN="JUSTIFY">DirectDrawPalette</b></font></td>
<td WIDTH="69%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawPalette</font><font
FACE="宋體" SIZE="3">對象,通常簡稱為“調色板(</font><font FACE="Arial"
SIZE="3">Palette</font><font FACE="宋體" SIZE="3">)”,代表了一個可以為頁面所使用的</font><font
FACE="Arial" SIZE="3">16</font><font FACE="宋體" SIZE="3">或</font><font FACE="Arial"
SIZE="3">256</font><font FACE="宋體" SIZE="3">色的調色板。它包含了一組</font><font
FACE="Arial" SIZE="3">RGB</font><font FACE="宋體" SIZE="3">值的索引,用來描述頁面上的像素所使用的顏色值。對于像素位深度大于</font><font
FACE="Arial" SIZE="3">8</font><font FACE="宋體" SIZE="3">的頁面,不需要使用調色板。通過調用</font><font
FACE="Arial" SIZE="3">IDirectDraw2::CreatePalette</font><font FACE="宋體" SIZE="3">函數,可以創建一個</font><font
FACE="Arial" SIZE="3">DirectDrawPalette</font><font FACE="宋體" SIZE="3">對象。</font><font
FACE="Arial" SIZE="3">DirectDrawPalette</font><font FACE="宋體" SIZE="3">對象通過</font><font
FACE="Arial" SIZE="3">IDirectDrawPalette</font><font FACE="宋體" SIZE="3">接口為開發者提供其函數性。要得到更多的資料,請參閱“調色板”。</font></td>
</tr>
<tr>
<td WIDTH="31%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><b><p ALIGN="JUSTIFY">DirectDrawClipper</b></font></td>
<td WIDTH="69%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawClipper</font><font
FACE="宋體" SIZE="3">對象,通常簡稱為“裁剪器(</font><font FACE="Arial"
SIZE="3">Clipper</font><font FACE="宋體" SIZE="3">)”,幫助開發者使</font><font
FACE="Arial" SIZE="3">Blit</font><font FACE="宋體" SIZE="3">(位塊傳送)操作限定在頁面的某一區域內,或不超出頁面的邊界范圍。通過調用</font><font
FACE="Arial" SIZE="3">IDirectDraw2::CreateClipper</font><font FACE="宋體" SIZE="3">函數可以創建一個</font><font
FACE="Arial" SIZE="3">DirectDrawClipper</font><font FACE="宋體" SIZE="3">對象。</font><font
FACE="Arial" SIZE="3">DirectDrawClipper</font><font FACE="宋體" SIZE="3">對象通過</font><font
FACE="Arial" SIZE="3">IDirectDrawClipper</font><font FACE="宋體" SIZE="3">接口為開發者提供其函數性。要得到更多的資料,請參閱“裁剪器”。</font></td>
</tr>
<tr>
<td WIDTH="31%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><b><p ALIGN="JUSTIFY">DirectDrawVideoPort</b></font></td>
<td WIDTH="69%" VALIGN="TOP"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawVideoPort</font><font
FACE="宋體" SIZE="3">對象代表了當前某些系統上的視頻端口(</font><font
FACE="Arial" SIZE="3">Vedio port</font><font FACE="宋體" SIZE="3">)硬件。這個硬件允許直接的訪問幀緩存,而不需要通過</font><font
FACE="Arial" SIZE="3">CPU</font><font FACE="宋體" SIZE="3">或使用</font><font
FACE="Arial" SIZE="3">PCI</font><font FACE="宋體" SIZE="3">總線。通過對</font><font
FACE="Arial" SIZE="3">DirectDRaw</font><font FACE="宋體" SIZE="3">對象調用</font><font
FACE="Arial" SIZE="3">QueryInterface</font><font FACE="宋體" SIZE="3">函數(指定</font><font
FACE="Arial" SIZE="3">IID_IDDVideoPortContainer</font><font FACE="宋體" SIZE="3">標志符),可以創建一個</font><font
FACE="Arial" SIZE="3">DirectDrawVideoPort</font><font FACE="宋體" SIZE="3">對象。</font><font
FACE="Arial" SIZE="3">DirectDrawVideoPort</font><font FACE="宋體" SIZE="3">對象通過</font><font
FACE="Arial" SIZE="3">IDDVideoPortContainer</font><font FACE="宋體" SIZE="3">和</font><font
FACE="Arial" SIZE="3">IDirectDrawVideoPort</font><font FACE="宋體" SIZE="3">接口為開發者提供其函數性。要得到更多的資料,請參閱“視頻端口”。</font></td>
</tr>
</table>
<font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"> </p>
</font><b><font FACE="黑體" SIZE="5">
<li>硬件抽象層(</font><font FACE="Arial" SIZE="5">HAL</font><font FACE="黑體"
SIZE="5">:</font><font FACE="Arial" SIZE="5">Hardware Abstraction Layer</font><font
FACE="黑體" SIZE="5">)</li>
</font></b><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font><font
FACE="宋體" SIZE="3">通過硬件抽象層(以后簡稱為:</font><font FACE="Arial"
SIZE="3">HAL</font><font FACE="宋體" SIZE="3">)來提供設備無關的特性。</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">是由設備生產商提供的指定設備的接口,</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">用來直接操作顯示硬件。應用程序從來不會直接與</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">打交道,相反,而是與</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">所提供的下屬函數打交道。</p>
</font><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw HAL</font><font
FACE="宋體" SIZE="3">可以以</font><font FACE="Arial" SIZE="3">16</font><font
FACE="宋體" SIZE="3">位、</font><font FACE="Arial" SIZE="3">32</font><font
FACE="宋體" SIZE="3">位或在</font><font FACE="Arial" SIZE="3">Win95</font><font
FACE="宋體" SIZE="3">中兩者兼而有之的形式執行。</font><font FACE="Arial"
SIZE="3">HAL</font><font FACE="宋體" SIZE="3">在</font><font FACE="Arial" SIZE="3">WinNT</font><font
FACE="宋體" SIZE="3">中通常以</font><font FACE="Arial" SIZE="3">32</font><font
FACE="宋體" SIZE="3">位方式執行。</font><font FACE="Arial" SIZE="3">HAL</font><font
FACE="宋體" SIZE="3">可以是顯示設備驅動程序的一部分,或獨立的</font><font
FACE="Arial" SIZE="3">DLL</font><font FACE="宋體" SIZE="3">,通過驅動程序編寫者定義的一個私有接口聯系顯示驅動。</p>
</font><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw HAL</font><font
FACE="宋體" SIZE="3">是由芯片制造商、板卡生產商或原始設備制造商(</font><font
FACE="Arial" SIZE="3">OEM</font><font FACE="宋體" SIZE="3">)實現的。</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">只執行硬件有關代碼而不進行仿真。如果硬件不能實現某個功能,</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">不會將其反映在自己的硬件特性中。</p>
</font><b><font FACE="黑體" SIZE="5">
<li>硬件仿真層(</font><font FACE="Arial" SIZE="5">HEL</font><font FACE="黑體"
SIZE="5">:</font><font FACE="Arial" SIZE="5">Hardware Emulation Layer</font><font
FACE="黑體" SIZE="5">)</li>
</font></b><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">當硬件抽象層(</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">)不支持某種特性時,</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">會試圖進行軟件仿真。仿真的函數是由硬件仿真層(</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋體" SIZE="3">)提供的。</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋體" SIZE="3">與</font><font FACE="Arial"
SIZE="3">HAL</font><font FACE="宋體" SIZE="3">一樣,代表了</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">的特性,并且應用程序從來不直接與</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋體" SIZE="3">一起工作。結果是,</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">對硬件的主要特性都提供了透明的支持,而不管這個特性是通過</font><font
FACE="Arial" SIZE="3">HAL</font><font FACE="宋體" SIZE="3">硬件支持的還是通過</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋體" SIZE="3">軟件仿真的。</p>
<p ALIGN="JUSTIFY">很顯然,軟件仿真不能與硬件所提供的特性等效。可以調用</font><font
FACE="Arial" SIZE="3">IDirectDraw2::GetCaps</font><font FACE="宋體" SIZE="3">函數以查詢硬件支持什么特性。在應用程序初始化的時候檢查這些特性,你可以調整應用程序的參數以提供優化的性能。</p>
<p ALIGN="JUSTIFY">在有些情況下,硬件特性與軟件仿真的組合操作反而會比單純使用軟件仿真效率更低。例如,如果顯示設備驅動程序支持</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">,但不支持帶縮放的</font><font
FACE="Arial" SIZE="3">Blit</font><font FACE="宋體" SIZE="3">操作,在從視頻</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">頁面進行帶縮放的</font><font
FACE="Arial" SIZE="3">Blit</font><font FACE="宋體" SIZE="3">操作時,將導致明顯的速度降低。這是因為有些視頻</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">的速度要比系統</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">慢,迫使在訪問視頻</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">頁面的時候,</font><font
FACE="Arial" SIZE="3">CPU</font><font FACE="宋體" SIZE="3">進入等待狀態。如果你的應用程序使用硬件不支持的特性,某些時候,在系統</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">中創建頁面更為合適,這樣才能避免</font><font
FACE="Arial" SIZE="3">CPU</font><font FACE="宋體" SIZE="3">訪問視頻</font><font
FACE="Arial" SIZE="3">RAM</font><font FACE="宋體" SIZE="3">時的效率損失。</p>
</font><font FACE="黑體" SIZE="5"><b>
<li>系統集成</b></font></li>
</ol>
</ol>
<p><font FACE="宋體" SIZE="3"> </p>
<p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY">下圖展示了</font><font FACE="Arial" SIZE="3">DirectDraw</font><font
FACE="宋體" SIZE="3">,圖形設備接口(</font><font FACE="Arial" SIZE="3">GDI</font><font
FACE="宋體" SIZE="3">),硬件抽象層(</font><font FACE="Arial" SIZE="3">HAL</font><font
FACE="宋體" SIZE="3">)和硬件仿真層(</font><font FACE="Arial" SIZE="3">HEL</font><font
FACE="宋體" SIZE="3">)四者之間的關系。</p>
<p ALIGN="JUSTIFY">如上圖所示,</font><font FACE="Arial" SIZE="3">DirectDraw</font><font
FACE="宋體" SIZE="3">對象與</font><font FACE="Arial" SIZE="3">GDI</font><font
FACE="宋體" SIZE="3">位于同一層次,都通過一個設備相關的抽象層來直接訪問硬件設備。與</font><font
FACE="Arial" SIZE="3">GDI</font><font FACE="宋體" SIZE="3">不同的是,</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">會盡可能的利用硬件的加速特性。如果硬件不支持某特性,</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">會使用</font><font
FACE="Arial" SIZE="3">HEL</font><font FACE="宋體" SIZE="3">試圖將該特性進行軟件仿真。</font><font
FACE="Arial" SIZE="3">DirectDraw</font><font FACE="宋體" SIZE="3">可以以設備環境(</font><font
FACE="Arial" SIZE="3">DC</font><font FACE="宋體" SIZE="3">)的形式提供頁面內存,使得開發者可以使用</font><font
FACE="Arial" SIZE="3">GDI</font><font FACE="宋體" SIZE="3">的函數操作頁面對象。</font></p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -