Share via


DDLOCKOUT-Struktur (ddkmapi.h)

Die DDLOCKOUT-Struktur enthält eine Beschreibung der Oberfläche.

Syntax

typedef struct _DDLOCKOUT {
  DWORD ddRVal;
  DWORD dwSurfHeight;
  DWORD dwSurfWidth;
  LONG  lSurfPitch;
  PVOID lpSurface;
  DWORD SurfaceCaps;
  DWORD dwFormatFlags;
  DWORD dwFormatFourCC;
  DWORD dwFormatBitCount;
  union {
    DWORD dwRBitMask;
    DWORD dwYBitMask;
  };
  union {
    DWORD dwGBitMask;
    DWORD dwUBitMask;
  };
  union {
    DWORD dwBBitMask;
    DWORD dwVBitMask;
  };
} DDLOCKOUT, *LPDDLOCKOUT;

Member

ddRVal

Gibt den Speicherort an, an dem Microsoft DirectDraw den Rückgabewert der DxApi-Funktion für DD_DXAPI_LOCK-Vorgänge schreibt. Ein Rückgabecode von DD_OK gibt den Erfolg an.

dwSurfHeight

dwSurfWidth

Geben Sie die Abmessungen der Oberfläche in Pixel an.

lSurfPitch

Gibt den Abstand in Bytes zum Anfang der nächsten Zeile an.

lpSurface

Zeigt auf den Oberflächenspeicher.

SurfaceCaps

Gibt einen Satz von Flags an, die die Funktionen der Oberfläche angeben. Dieser Member kann auf ein oder mehrere der folgenden Flags festgelegt werden:

Flag Bedeutung
DDSCAPS_3DDEVICE Diese Oberfläche kann für das 3D-Rendering verwendet werden. Anwendungen können dieses Flag verwenden, um sicherzustellen, dass ein Gerät, das nur auf einem bestimmten Heap gerendert werden kann, über offscreen-Oberflächen verfügt, die vom richtigen Heap zugeordnet sind. Wenn dieses Flag für einen Heap festgelegt ist, wird die Oberfläche nicht aus diesem Heap zugeordnet.
DDSCAPS_ALLOCONLOAD Arbeitsspeicher für die Oberfläche wird erst zugewiesen, wenn die Oberfläche von der Anwendung mit der IDirect3DDevice7::Load-Methode geladen wird.
DDSCAPS_ALPHA Diese Oberfläche enthält Alphainformationen. Das Pixelformat muss abgefragt werden, um festzustellen, ob diese Oberfläche nur Alphainformationen oder Alphainformationen enthält, die mit Pixelfarbdaten (z. B. RGBA oder YUVA) verknüpft sind.
DDSCAPS_BACKBUFFER Diese Oberfläche ist der Hintergrundpuffer einer Oberflächen-Flip-Struktur. In der Regel wird diese Funktion durch die CreateSurface-Methode der Anwendung festgelegt, wenn das flag DDSCAPS_FLIP verwendet wird. Nur für die Oberfläche, die unmittelbar vor der DDSCAPS_FRONTBUFFER Oberfläche liegt, ist diese Funktion festgelegt. Die anderen Oberflächen werden durch das Vorhandensein des DDSCAPS_FLIP-Flags, ihre Anfügereihenfolge und das Fehlen der DDSCAPS_FRONTBUFFER- und DDSCAPS_BACKBUFFER-Funktionen als Hintergrundpuffer identifiziert. Wenn diese Funktion an die CreateSurface-Methode der Anwendung gesendet wird, wird ein eigenständiger Backpuffer erstellt. Nachdem diese Methode aufgerufen wurde, kann diese Oberfläche an einen Frontpuffer, einen anderen Hintergrundpuffer oder beides angefügt werden, um eine Flipping-Oberflächenstruktur zu bilden. Weitere Informationen finden Sie in der DirectX SDK-Dokumentation zur AddAttachedSurface-Methode . DirectDraw unterstützt eine beliebige Anzahl von Oberflächen in einer flipping-Struktur.
DDSCAPS_COMPLEX Eine komplexe Oberfläche wird beschrieben. Eine komplexe Oberfläche führt zur Erstellung mehrerer Oberflächen. Die zusätzlichen Oberflächen werden an der Wurzeloberfläche angebracht. Die komplexe Struktur kann nur zerstört werden, indem die Wurzel zerstört wird.
DDSCAPS_FLIP Diese Oberfläche ist Teil einer Oberflächen-Flip-Struktur. Wenn diese Funktion an die CreateSurface-Methode der Anwendung übergeben wird, werden ein Frontpuffer und mindestens ein Backpuffer erstellt. DirectDraw legt das DDSCAPS_FRONTBUFFER Bit auf der Frontpufferoberfläche und das DDSCAPS_BACKBUFFER Bit auf der Oberfläche neben der Frontpufferoberfläche fest. Das dwBackBufferCount-Element der DDSURFACEDESC-Struktur muss auf mindestens 1 festgelegt werden, damit der Methodenaufruf erfolgreich ist. Die DDSCAPS_COMPLEX-Funktion muss immer festgelegt werden, wenn mehrere Oberflächen mithilfe der CreateSurface-Methode erstellt werden.
DDSCAPS_FRONTBUFFER Diese Oberfläche ist der vordere Puffer einer Oberflächen-Flipping-Struktur. Dieses Flag wird in der Regel durch die CreateSurface-Methode der Anwendung festgelegt, wenn die DDSCAPS_FLIP-Funktion festgelegt ist. Wenn diese Funktion an die CreateSurface-Methode gesendet wird, wird ein eigenständiger Frontpuffer erstellt. Diese Oberfläche verfügt nicht über die DDSCAPS_FLIP-Funktion. Sie kann mit der AddAttachedSurface-Methode der Anwendung an andere Rückpuffer angefügt werden, um eine Flipping-Struktur zu bilden.
DDSCAPS_HWCODEC Diese Oberfläche sollte in der Lage sein, einen Stream von der Hardware zu dekomprimieren.
DDSCAPS_LIVEVIDEO Diese Oberfläche sollte In der Lage sein, Livevideos zu empfangen.
DDSCAPS_LOCALVIDMEM Diese Oberfläche ist im lokalen Anzeigespeicher true und nicht im nicht lokalen Anzeigespeicher vorhanden. Wenn dieses Flag angegeben wird, muss auch DDSCAPS_VIDEOMEMORY angegeben werden. Dieses Flag kann nicht mit dem flag DDSCAPS_NONLOCALVIDMEM verwendet werden.
DDSCAPS_MIPMAP Diese Oberfläche ist eine Ebene einer Mipmap. Diese Oberfläche wird an andere DDSCAPS_MIPMAP Oberflächen angefügt, um die Mipmap zu bilden. Dies kann explizit erfolgen, indem eine Reihe von Oberflächen erstellt und mit der AddAttachedSurface-Methode der Anwendung oder implizit mit der CreateSurface-Methode der Anwendung angefügt wird. Wenn diese Funktion festgelegt ist, muss auch DDSCAPS_TEXTURE festgelegt werden.
DDSCAPS_MODEX Diese Oberfläche ist eine 320x200- oder 320x240 Mode X-Oberfläche.
DDSCAPS_NONLOCALVIDMEM Diese Oberfläche ist im nicht lokalen Anzeigespeicher und nicht im lokalen Anzeigespeicher vorhanden. Wenn dieses Flag angegeben wird, muss auch DDSCAPS_VIDEOMEMORY Flag angegeben werden. Dies kann nicht mit dem flag DDSCAPS_LOCALVIDMEM verwendet werden.
DDSCAPS_OFFSCREENPLAIN Bei dieser Oberfläche handelt es sich um eine Beliebige Offscreen-Oberfläche, die keine Überlagerung, Textur, Z-Puffer, Frontpuffer, Rückpuffer oder Alphaoberfläche ist. Es wird verwendet, um einfache Oberflächen zu identifizieren.
DDSCAPS_OPTIMIZED Derzeit nicht implementiert.
DDSCAPS_OVERLAY Diese Oberfläche ist eine Überlagerung. Es kann direkt sichtbar sein oder nicht, je nachdem, ob es derzeit auf der primären Oberfläche überlagert wird. DDSCAPS_VISIBLE kann verwendet werden, um zu bestimmen, ob es gerade überlagert wird.
DDSCAPS_OWNDC Diese Oberfläche weist für einen längeren Zeitraum eine Gerätekontextzuordnung (Device Context, DC) auf.
DDSCAPS_PALETTE Mit diesem Gerätetreiber können eindeutige DirectDrawPalette-Objekte erstellt und an diese Oberfläche angefügt werden.
DDSCAPS_PRIMARYSURFACE Die Oberfläche ist die primäre Oberfläche. Es stellt das dar, was für den Benutzer im Moment sichtbar ist.
DDSCAPS_PRIMARYSURFACELEFT Diese Oberfläche ist die primäre Oberfläche für das linke Auge. Es stellt dar, was für das linke Auge des Benutzers im Moment sichtbar ist. Wenn diese Oberfläche erstellt wird, stellt die Oberfläche mit der funktion DDSCAPS_PRIMARYSURFACE das dar, was vom rechten Auge des Benutzers gesehen wird.
DDSCAPS_STANDARDVGAMODE Diese Oberfläche ist eine Standardoberfläche im VGA-Modus und keine ModeX-Oberfläche. Dieses Flag kann nicht in Kombination mit dem flag DDSCAPS_MODEX verwendet werden.
DDSCAPS_SYSTEMMEMORY Dieser Oberflächenspeicher wurde im Systemspeicher zugeordnet.
DDSCAPS_TEXTURE Diese Oberfläche kann als 3D-Textur verwendet werden. Es gibt nicht an, ob die Oberfläche für diesen Zweck verwendet wird.
DDSCAPS_VIDEOMEMORY Diese Oberfläche ist im Anzeigespeicher vorhanden.
DDSCAPS_VIDEOPORT Diese Oberfläche kann Daten von einem Hardwarevideoport empfangen.
DDSCAPS_VISIBLE Änderungen an dieser Oberfläche sind sofort sichtbar. Es wird immer für die primäre Oberfläche sowie für Überlagerungen festgelegt, während sie überlagert werden, und Texturzuordnungen, während sie texturiert werden.
DDSCAPS_WRITEONLY Nur Schreibzugriff auf die Oberfläche ist zulässig. Der Lesezugriff von der Oberfläche kann einen allgemeinen Schutzfehler (General Protection Fault, GPF) generieren, aber die Leseergebnisse von dieser Oberfläche sind nicht aussagekräftig.
DDSCAPS_ZBUFFER Diese Oberfläche ist der Z-Puffer. Der z-Puffer enthält Informationen, die nicht angezeigt werden können. Stattdessen enthält es Bittiefeninformationen, die verwendet werden, um zu bestimmen, welche Pixel sichtbar sind und welche verdeckt sind.

dwFormatFlags

Gibt einen Satz optionaler Steuerelementflags an. Dieses Element kann auf eine Kombination der folgenden Flags festgelegt werden:

Flag Bedeutung
DDPF_ALPHA Das Pixelformat beschreibt eine reine Alphaoberfläche.
DDPF_ALPHAPIXELS Die Oberfläche enthält Alphakanalinformationen im Pixelformat.
DDPF_ALPHAPREMULT Ist für das System reserviert.
DDPF_BUMPDUDV Bump Map-dUdV-Daten im Pixelformat sind gültig.
DDPF_BUMPLUMINANCE Luminanzdaten im Pixelformat sind gültig. Dieses Flag wird verwendet, wenn die Luminance von Bumpmap-Oberflächen hängt. die Bitmaske für den Luminanzteil des Pixels wird dann durch das dwBumpLuminanceBitCount-Element der DDPIXELFORMAT-Struktur angezeigt.
DDPF_COMPRESSED Die Oberfläche akzeptiert Pixeldaten im angegebenen Format und komprimiert sie während des Schreibvorgangs.
DDPF_FOURCC Der FOURCC-Code ist gültig.
DDPF_LUMINANCE Luminancedaten im Pixelformat sind gültig. Dieses Flag wird nur für Leuchtdichte oder Leuchtdichte plus Alpha-Oberflächen verwendet. die Bittiefe wird dann durch das dwLuminanceBitCount-Element der DDPIXELFORMAT-Struktur angegeben.
DDPF_PALETTEINDEXED1 Die Oberfläche ist 1-Bit-Farbe indiziert.
DDPF_PALETTEINDEXED2 Die Oberfläche ist 2-Bit-Farbindiziert.
DDPF_PALETTEINDEXED4 Die Oberfläche ist 4-Bit-Farbindiziert.
DDPF_PALETTEINDEXED8 Die Oberfläche ist 8-Bit-Farbindiziert.
DDPF_PALETTEINDEXEDTO8 Die Oberfläche ist eine 1-, 2- oder 4-Bit-Farbe, die einer 8-Bit-Palette indiziert ist.
DDPF_RGB Die RGB-Daten in der Pixelformatstruktur sind gültig.
DDPF_RGBTOYUV Die Oberfläche akzeptiert RGB-Daten und übersetzt sie während des Schreibvorgangs in YUV-Daten. Das Format der zu schreibenden Daten ist in der Pixelformatstruktur enthalten. Das DDPF_RGB-Flag ist festgelegt.
DDPF_STENCILBUFFER Die Oberfläche enthält Schabloneninformationen zusammen mit den Z-Informationen.
DDPF_YUV Die YUV-Daten in der Pixelformatstruktur sind gültig.
DDPF_ZBUFFER Das Pixelformat beschreibt eine reine Z-Puffer-Oberfläche.
DDPF_ZPIXELS Die Oberfläche hat das RGBZ-Format.

dwFormatFourCC

Gibt den FOURCC-Code an. Weitere Informationen zu FOURCC-Codes finden Sie in der Dokumentation zum DirectX SDK.

dwFormatBitCount

Gibt die Anzahl der Bits pro Pixel (4, 8, 16, 24 oder 32) der RGB- oder YUV-Daten an.

dwRBitMask

Gibt die Maske für rote Bits an.

dwYBitMask

Gibt die Maske für Y-Bits an.

dwGBitMask

Gibt die Maske für grüne Bits an.

dwUBitMask

Gibt die Maske für U-Bits an.

dwBBitMask

Gibt die Maske für blaue Bits an.

dwVBitMask

Gibt die Maske für V-Bits an.

Anforderungen

Anforderung Wert
Header ddkmapi.h (include Ddkmapi.h)

Weitere Informationen

DD_DXAPI_LOCK

DxApi