Direct3D Surfaces (Direct3D 9)
介面代表顯示記憶體的線性區域,通常位於顯示卡的顯示記憶體中,不過表面可以存在於系統記憶體中。 Surface 是由 IDirect3DSurface9 介面所管理。
- 前端緩衝區。 由圖形配接器轉譯並在監視器上顯示的記憶體矩形。 在 Direct3D 中,應用程式永遠不會直接寫入前端緩衝區。
- 上一頁緩衝區。 應用程式可以直接寫入的記憶體矩形。 後端緩衝區永遠不會直接顯示在監視器上。
- 翻轉表面。 將後台緩衝區移至前端緩衝區的程式。
- 交換鏈結。 一或多個後端緩衝區的集合,可序列呈現至前端緩衝區。
取得 Surface
呼叫下列任一方法來建立介面:
Surface 格式會決定如何解譯表面記憶體中每個像素的數據。 Direct3D 會使用 D3DSURFACE_DESC 結構 D3DFORMAT 成員來描述介面格式。 您可以呼叫 GetDesc 方法來擷取現有介面的格式。
建立介面之後,您可以藉由呼叫下列任何方法來取得它的指標:
- GetBackBuffer
- GetCubeMapSurface
- GetDepthStencilSurface
- GetFrontBufferData
- GetRenderTarget
- GetSurfaceLevel
IDirect3DSurface9 介面可讓您透過 UpdateSurface 方法間接存取記憶體。 這個方法可讓您將矩形區域的圖元從一個 IDirect3DSurface9 介面複製到另一個 IDirect3DSurface9 介面。 介面也有直接存取顯示記憶體的方法。 例如,您可以使用 LockRect 方法來鎖定顯示記憶體的矩形區域。 完成在介面上使用鎖定的矩形區域之後,請務必呼叫 UnlockRect。
其他 Surface 主題
深入瞭解如何搭配下列任何主題使用表面:
- Surface 格式 (Direct3D 9)
- 什麼是交換鏈結? (Direct3D 9)
- 寬度與間距 (Direct3D 9)
- 翻轉表面 (Direct3D 9)
- 頁面翻轉和反向緩衝處理 (Direct3D 9)
- 複製到表面 (Direct3D 9)
- 複製表面 (Direct3D 9)
- 直接存取 Surface 記憶體 (Direct3D 9)
- 私人 Surface 資料 (Direct3D 9)
- Gamma 控制件 (Direct3D 9)
相關主題