Direct3D Surface (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)
- Width 與 Pitch (Direct3D 9)
- 翻轉 Surface (Direct3D 9)
- Direct3D 9 (Page Flipping and Back Buffering)
- 複製到 Surface (Direct3D 9)
- 複製 Surface (Direct3D 9)
- 直接存取 Surface Memory (Direct3D 9)
- 私人 Surface Data (Direct3D 9)
- Direct3D 9 (Gamma 控制項)
相關主題