IDirectDrawSurface7 介面 (ddraw.h)
應用程式會使用 IDirectDrawSurface7 介面的方法來建立 DirectDrawSurface 物件,並使用系統層級變數。 本節是這個介面方法的參考。
繼承
IDirectDrawSurface7介面繼承自IUnknown介面。 IDirectDrawSurface7 也有下列類型的成員:
方法
IDirectDrawSurface7介面具有這些方法。
IDirectDrawSurface7::AddAttachedSurface 將指定的 z 緩衝區介面附加至這個介面。 |
IDirectDrawSurface7::AddOverlayDirtyRect 目前未實作 IDirectDrawSurface7::AddOverlayDirtyRect 方法。 |
IDirectDrawSurface7::Blt 執行位區塊傳輸 (bitblt) 。 此方法不支援在 bitblt 作業期間進行 z 緩衝或 Alpha 混合。 |
IDirectDrawSurface7::BltBatch 目前未實作 IDirectDrawSurface7::BltBatch 方法。 |
IDirectDrawSurface7::BltFast 使用來源色彩索引鍵或目的地色彩索引鍵,執行來源複製 bitblt 或透明 bitblt。 |
IDirectDrawSurface7::ChangeUniquenessValue 手動更新此介面的唯一性值。 |
IDirectDrawSurface7::D eleteAttachedSurface 卸離一或多個附加介面。 |
IDirectDrawSurface7::EnumAttachedSurfaces 列舉附加至這個表面的所有表面。 |
IDirectDrawSurface7::EnumOverlayZOrders 列舉指定目的地上的重迭表面。 您可以列舉前向後或後向前順序中的重迭。 |
IDirectDrawSurface7::Flip 讓與DDSCAPS_BACKBUFFER介面相關聯的表面記憶體變成與前端緩衝區介面相關聯。 |
IDirectDrawSurface7::FreePrivateData 釋放與此介面相關聯的指定私用資料。 |
IDirectDrawSurface7::GetAttachedSurface 取得具有指定功能的附加介面,並遞增所擷取介面的參考計數。 |
IDirectDrawSurface7::GetBltStatus 取得位區塊傳輸 (bitblt) 作業的狀態。 |
IDirectDrawSurface7::GetCaps 擷取此介面的功能。 這些功能不一定與顯示裝置的功能相關。 |
IDirectDrawSurface7::GetClipper 擷取與此表面相關聯的 DirectDrawClipper 物件,並遞增傳回之剪輯程式的參考計數。 |
IDirectDrawSurface7::GetColorKey 擷取此介面的色彩索引鍵值。 |
IDirectDrawSurface7::GetDC 為此介面建立裝置內容的 GDI 相容控制碼。 |
IDirectDrawSurface7::GetDDInterface 擷取用來建立此表面之 DirectDraw 物件的介面。 |
IDirectDrawSurface7::GetFlipStatus 擷取此表面是否已完成翻轉程式的狀態。 |
IDirectDrawSurface7::GetLOD 擷取目前為 Managed Mipmap 表面設定的 LO) D (詳細資料層級上限。 這個方法只會在 Managed 紋理上成功。 |
IDirectDrawSurface7::GetOverlayPosition 擷取這個表面的顯示座標。 這個方法用於可見的作用中重迭介面 (,也就是已設定DDSCAPS_OVERLAY旗標的介面) 。 |
IDirectDrawSurface7::GetPalette 擷取與此表面相關聯的 DirectDrawPalette 物件,並遞增傳回檔色盤的參考計數。 |
IDirectDrawSurface7::GetPixelFormat 擷取此表面的色彩和像素格式。 |
IDirectDrawSurface7::GetPriority 擷取此紋理的紋理管理優先順序。 這個方法只會在 Managed 紋理上成功。 |
IDirectDrawSurface7::GetPrivateData 將與此表面相關聯的私人資料複製到提供的緩衝區。 |
IDirectDrawSurface7::GetSurfaceDesc 擷取此表面目前條件的描述。 |
IDirectDrawSurface7::GetUniquenessValue 擷取這個介面的目前唯一性值。 |
IDirectDrawSurface7::Initialize 初始化 DirectDrawSurface 物件。 |
IDirectDrawSurface7::IsLost 判斷是否已釋放與 DirectDrawSurface 物件相關聯的表面記憶體。 |
IDirectDrawSurface7::Lock 取得表面記憶體的指標。 |
IDirectDrawSurface7::P ageLock 防止系統記憶體表面分頁,而位區塊傳輸 (bitblt) 作業使用直接記憶體存取 (DMA) 傳輸至系統記憶體進行中。 |
IDirectDrawSurface7::P ageUnlock 解除鎖定系統記憶體表面,然後允許將其分頁。 |
IDirectDrawSurface7::ReleaseDC 釋放先前使用 IDirectDrawSurface7::GetDC 方法取得的裝置內容的控制碼。 |
IDirectDrawSurface7::Restore 還原已遺失的介面。 當已釋放與 DirectDrawSurface 物件相關聯的表面記憶體時,就會發生這種情況。 |
IDirectDrawSurface7::SetClipper 將 clipper 物件附加至這個表面,或從中刪除一個。 |
IDirectDrawSurface7::SetColorKey 如果硬體支援每個表面的色彩索引鍵,請設定 DirectDrawSurface 物件的色彩索引鍵值。 |
IDirectDrawSurface7::SetLOD 設定受控 Mipmap 表面的 LOD) 詳細資料層級上限 (。 這個方法只會在 Managed 紋理上成功。 |
IDirectDrawSurface7::SetOverlayPosition 變更重迭表面的顯示座標。 |
IDirectDrawSurface7::SetPalette 將調色盤物件附加至 (,或從表面) 中斷連結。 介面會針對所有後續作業使用此調色盤。 選擇區變更會立即進行,而不需重新整理時間。 |
IDirectDrawSurface7::SetPriority 指派這個紋理的紋理管理優先順序。 這個方法只會在 Managed 紋理上成功。 |
IDirectDrawSurface7::SetPrivateData 將資料與應用程式所要使用的介面產生關聯,而不是由 DirectDraw 使用。 資料會以傳值方式傳遞,而且多個資料集可以與單一表面產生關聯。 |
IDirectDrawSurface7::SetSurfaceDesc 設定現有表面的特性。 |
IDirectDrawSurface7::Unlock 通知 DirectDraw 直接表面操作已完成。 |
IDirectDrawSurface7::UpdateOverlay 重新置放或修改重迭表面的視覺屬性。 這些表面必須設定DDSCAPS_OVERLAY旗標。 |
IDirectDrawSurface7::UpdateOverlayDisplay 目前尚未實作 IDirectDrawSurface7::UpdateOverlayDisplay 方法。 |
IDirectDrawSurface7::UpdateOverlayZOrder 設定重迭的迭置順序。 |
備註
IDirectDrawSurface7介面的方法可以組織成下列群組:
群組 | 方法 |
---|---|
配置記憶體 | 初始化、 IsLost和 還原 |
連接介面 | AddAttachedSurface、 DeleteAttachedSurface、 EnumAttachedSurfaces和 GetAttachedSurface |
BitBltting | Blt、 BltBatch、 BltFast和 GetBltStatus |
色彩索引鍵 | GetColorKey 和 SetColorKey |
裝置內容 | GetDC 和 ReleaseDC |
翻轉 | Flip 和 GetFlipStatus |
鎖定表面 | Lock、 PageLock、 PageUnlock和 Unlock |
其他 | GetDDInterface |
重疊 | AddOverlayDirtyRect、 EnumOverlayZOrders、 GetOverlayPosition、 SetOverlayPosition、 UpdateOverlay、 UpdateOverlayDisplay和 UpdateOverlayZOrder |
私人表面資料 | FreePrivateData、 GetPrivateData和 SetPrivateData |
Surface 功能 | GetCaps |
Surface Clipper | GetClipper 和 SetClipper |
表面特性 | ChangeUniquenessValue、 GetPixelFormat、 GetSurfaceDesc、 GetUniquenessValue和 SetSurfaceDesc |
表面調色盤 | GetPalette 和 SetPalette |
紋理 | GetLOD、 GetPriority、 SetLOD和 SetPriority |
IDirectDrawSurface7介面藉由提供更好的介面管理和方便使用的方法,來擴充舊版介面的功能。 此介面中的許多方法都接受與舊版介面中對應專案稍有不同的參數。 只要 IDirectDrawSurface3 介面方法可以接受 DDSURFACEDESC 結構或 IDirectDrawSurface3 介面,IDirectDrawSurface7 中的方法就接受 DDSURFACEDESC2 結構或 IDirectDrawSurface7 介面。
使用 LPDIRECTDRAWSURFACE、LPDIRECTDRAWSURFACE2、LPDIRECTDRAWSURFACE3、LPDIRECTDRAWSURFACE4 或 LPDIRECTDRAWSURFACE7 資料類型來宣告指向各種 DirectDrawSurface 物件介面的變數。 Ddraw.h 標頭檔會使用下列程式碼宣告這些資料類型:
typedef struct IDirectDrawSurface FAR *LPDIRECTDRAWSURFACE;
typedef struct IDirectDrawSurface2 FAR *LPDIRECTDRAWSURFACE2;
typedef struct IDirectDrawSurface3 FAR *LPDIRECTDRAWSURFACE3;
typedef struct IDirectDrawSurface4 FAR *LPDIRECTDRAWSURFACE4;
typedef struct IDirectDrawSurface7 FAR *LPDIRECTDRAWSURFACE7;
規格需求
目標平臺 | Windows |
標頭 | ddraw.h |