Condividi tramite


Struttura DDLOCKOUT (ddkmapi.h)

La struttura DDLOCKOUT contiene una descrizione della superficie.

Sintassi

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;

Membri

ddRVal

Specifica il percorso in cui Microsoft DirectDraw scrive il valore restituito della funzione DxApi per le operazioni di DD_DXAPI_LOCK. Un codice restituito di DD_OK indica l'esito positivo.

dwSurfHeight

dwSurfWidth

Specificare le dimensioni della superficie, in pixel.

lSurfPitch

Specifica la distanza, espressa in byte, all'inizio della riga successiva.

lpSurface

Punta alla memoria della superficie.

SurfaceCaps

Indica un set di flag che specificano le funzionalità della superficie. Questo membro può essere impostato su uno o più dei flag seguenti:

Bandiera Significato
DDSCAPS_3DDEVICE Questa superficie può essere usata per il rendering 3D. Le applicazioni possono usare questo flag per garantire che un dispositivo che possa eseguire il rendering solo in un determinato heap abbia superfici fuori schermo allocate dall'heap corretto. Se questo flag è impostato per un heap, la superficie non viene allocata da tale heap.
DDSCAPS_ALLOCONLOAD La memoria per la superficie non viene allocata finché la superficie non viene caricata dall'applicazione usando il metodo IDirect3DDevice7::Load.
DDSCAPS_ALPHA Questa superficie contiene informazioni alfa. È necessario eseguire una query sul formato pixel per determinare se questa superficie contiene solo informazioni alfa o informazioni alfa interlacciate con i dati di colore dei pixel, ad esempio RGBA o YUVA.
DDSCAPS_BACKBUFFER Questa superficie è il buffer posteriore di una struttura di scorrimento della superficie. In genere, questa funzionalità viene impostata dal metodo CreateSurface dell'applicazione quando viene usato il flag DDSCAPS_FLIP. Solo la superficie che precede immediatamente la superficie DDSCAPS_FRONTBUFFER ha questa funzionalità impostata. Le altre superfici vengono identificate come buffer nascosto dalla presenza del flag di DDSCAPS_FLIP, dall'ordine degli allegati e dall'assenza delle funzionalità di DDSCAPS_FRONTBUFFER e DDSCAPS_BACKBUFFER. Se questa funzionalità viene inviata al metodo CreateSurface dell'applicazione, viene creato un buffer nascosto autonomo. Dopo aver chiamato questo metodo, questa superficie potrebbe essere collegata a un buffer anteriore, a un altro buffer nascosto o a entrambi per formare una struttura di superficie di scorrimento. Per altre informazioni, vedere il metodo AddAttachedSurface nella documentazione di DirectX SDK. DirectDraw supporta un numero arbitrario di superfici in una struttura di scorrimento.
DDSCAPS_COMPLEX Viene descritta una superficie complessa. Una superficie complessa comporta la creazione di più di una superficie. Le superfici aggiuntive sono collegate alla superficie radice. La struttura complessa può essere distrutta solo distruggendo la radice.
DDSCAPS_FLIP Questa superficie fa parte di una struttura di scorrimento della superficie. Quando questa funzionalità viene passata al metodo CreateSurface dell'applicazione, vengono creati un buffer anteriore e uno o più buffer back. DirectDraw imposta il bit DDSCAPS_FRONTBUFFER sulla superficie del buffer anteriore e il bit DDSCAPS_BACKBUFFER sulla superficie adiacente alla superficie del buffer anteriore. Il membro dwBackBufferCount della struttura DDSURFACEDESC deve essere impostato su almeno 1 affinché la chiamata al metodo abbia esito positivo. La funzionalità DDSCAPS_COMPLEX deve essere sempre impostata quando si creano più superfici usando il metodo CreateSurface .
DDSCAPS_FRONTBUFFER Questa superficie è il buffer anteriore di una struttura di scorrimento della superficie. Questo flag viene in genere impostato dal metodo CreateSurface dell'applicazione quando viene impostata la funzionalità DDSCAPS_FLIP. Se questa funzionalità viene inviata al metodo CreateSurface, viene creato un buffer anteriore autonomo. Questa superficie non avrà la funzionalità di DDSCAPS_FLIP. Può essere collegato ad altri buffer back per formare una struttura di scorrimento usando il metodo addAttachedSurface dell'applicazione .
DDSCAPS_HWCODEC Questa superficie dovrebbe essere in grado di avere un flusso decompresso dall'hardware.
DDSCAPS_LIVEVIDEO Questa superficie dovrebbe essere in grado di ricevere video live.
DDSCAPS_LOCALVIDMEM Questa superficie esiste in true, la memoria di visualizzazione locale anziché la memoria di visualizzazione non locale. Se questo flag viene specificato, è necessario specificare anche DDSCAPS_VIDEOMEMORY. Questo flag non può essere utilizzato con il flag DDSCAPS_NONLOCALVIDMEM.
DDSCAPS_MIPMAP Questa superficie è un livello di mipmap. Questa superficie verrà collegata ad altre superfici DDSCAPS_MIPMAP per formare la mipmap. Questa operazione può essere eseguita in modo esplicito creando una serie di superfici e collegandole usando il metodo AddAttachedSurface dell'applicazione o in modo implicito dal metodo CreateSurface dell'applicazione. Se questa funzionalità è impostata, è necessario impostare anche DDSCAPS_TEXTURE.
DDSCAPS_MODEX Questa superficie è una superficie X 320x200 o 320x240 Mode.
DDSCAPS_NONLOCALVIDMEM Questa superficie è presente nella memoria di visualizzazione non locale anziché nella memoria di visualizzazione locale vera. Se si specifica questo flag, è necessario specificare anche DDSCAPS_VIDEOMEMORY flag. Non può essere utilizzato con il flag DDSCAPS_LOCALVIDMEM.
DDSCAPS_OFFSCREENPLAIN Questa superficie è qualsiasi superficie fuori schermo che non è una sovrapposizione, trama, z-buffer, buffer anteriore, back-buffer o superficie alfa. Viene usato per identificare le superfici semplici.
DDSCAPS_OPTIMIZED Attualmente non implementato.
DDSCAPS_OVERLAY Questa superficie è una sovrimpressione. Può essere o meno visibile direttamente a seconda che sia attualmente sovrapposto alla superficie primaria. DDSCAPS_VISIBLE può essere usato per determinare se è sovrapposto al momento.
DDSCAPS_OWNDC Questa superficie avrà un'associazione del contesto di dispositivo (DC) per un lungo periodo.
DDSCAPS_PALETTE Questo driver di dispositivo consente la creazione e l'associazione di oggetti DirectDrawPalette univoci a questa superficie.
DDSCAPS_PRIMARYSURFACE La superficie è la superficie primaria. Rappresenta ciò che è visibile all'utente al momento.
DDSCAPS_PRIMARYSURFACELEFT Questa superficie è la superficie principale per l'occhio sinistro. Rappresenta ciò che è visibile all'occhio sinistro dell'utente al momento. Quando viene creata questa superficie, la superficie con la funzionalità di DDSCAPS_PRIMARYSURFACE rappresenta ciò che viene visualizzato dall'occhio destro dell'utente.
DDSCAPS_STANDARDVGAMODE Questa superficie è una superficie in modalità VGA standard e non una superficie ModeX. Questo flag non può essere usato in combinazione con il flag DDSCAPS_MODEX.
DDSCAPS_SYSTEMMEMORY Questa memoria superficiale è stata allocata nella memoria di sistema.
DDSCAPS_TEXTURE Questa superficie può essere usata come trama 3D. Non indica se la superficie viene utilizzata a tale scopo.
DDSCAPS_VIDEOMEMORY Questa superficie esiste nella memoria di visualizzazione.
DDSCAPS_VIDEOPORT Questa superficie può ricevere dati da una porta video hardware.
DDSCAPS_VISIBLE Le modifiche apportate a questa superficie sono immediatamente visibili. È sempre impostato per la superficie primaria, così come per le sovrimpressioni mentre sono sovrapposte e mappe trama mentre sono in trama.
DDSCAPS_WRITEONLY Solo l'accesso in scrittura è consentito alla superficie. L'accesso in lettura dalla superficie può generare un errore di protezione generale (GPF), ma i risultati di lettura da questa superficie non sono significativi.
DDSCAPS_ZBUFFER Questa superficie è il buffer z. Il buffer z contiene informazioni che non possono essere visualizzate. Contiene invece informazioni di profondità di bit usate per determinare quali pixel sono visibili e quali sono nascosti.

dwFormatFlags

Specifica un set di flag di controllo facoltativi. Questo membro può essere impostato su una combinazione dei flag seguenti:

Bandiera Significato
DDPF_ALPHA Il formato pixel descrive una superficie solo alfa.
DDPF_ALPHAPIXELS La superficie contiene informazioni sul canale alfa nel formato pixel.
DDPF_ALPHAPREMULT Riservato per l'uso del sistema.
DDPF_BUMPDUDV I dati dUdV della mappa d'urto nel formato pixel sono validi.
DDPF_BUMPLUMINANCE I dati di dominanza in formato pixel sono validi. Questo flag viene usato quando la luminanza appesa fuori le superfici della mappa d'urto; la maschera di bit per la parte di luminanza del pixel viene quindi indicata dalla dwBumpLuminanceBitCount membro della struttura DDPIXELFORMAT.
DDPF_COMPRESSED La superficie accetta i dati pixel nel formato specificato e lo comprime durante l'operazione di scrittura.
DDPF_FOURCC Il codice FOURCC è valido.
DDPF_LUMINANCE I dati di dominanza nel formato pixel sono validi. Questo flag viene utilizzato solo per la luminanza o la luminanza più superfici alfa; la profondità del bit viene quindi indicata dal dwLuminanceBitCount membro della struttura DDPIXELFORMAT.
DDPF_PALETTEINDEXED1 La superficie è di colore a 1 bit indicizzata.
DDPF_PALETTEINDEXED2 La superficie è a 2 bit indicizzata.
DDPF_PALETTEINDEXED4 La superficie è a 4 bit indicizzata.
DDPF_PALETTEINDEXED8 La superficie è indicizzata a 8 bit.
DDPF_PALETTEINDEXEDTO8 La superficie è di colore a 1, 2 o 4 bit indicizzata in una tavolozza a 8 bit.
DDPF_RGB I dati RGB nella struttura del formato pixel sono validi.
DDPF_RGBTOYUV La superficie accetta i dati RGB e li converte durante l'operazione di scrittura in dati YUV. Il formato dei dati da scrivere è contenuto nella struttura del formato pixel. Il flag DDPF_RGB è impostato.
DDPF_STENCILBUFFER La superficie contiene informazioni sugli stencil insieme alle informazioni Z.
DDPF_YUV I dati YUV nella struttura del formato pixel sono validi.
DDPF_ZBUFFER Il formato pixel descrive una superficie solo z buffer.
DDPF_ZPIXELS La superficie è in formato RGBZ.

dwFormatFourCC

Specifica il codice FOURCC . Per altre informazioni sui codici FOURCC, vedere la documentazione di DirectX SDK.

dwFormatBitCount

Specifica il numero di bit per pixel (4, 8, 16, 24 o 32) dei dati RGB o YUV.

dwRBitMask

Specifica la maschera per i bit rossi.

dwYBitMask

Specifica la maschera per i bit Y.

dwGBitMask

Specifica la maschera per i bit verdi.

dwUBitMask

Specifica la maschera per i bit U.

dwBBitMask

Specifica la maschera per i bit blu.

dwVBitMask

Specifica la maschera per i bit V.

Fabbisogno

Requisito Valore
intestazione ddkmapi.h (includere Ddkmapi.h)

Vedere anche

DD_DXAPI_LOCK

DxApi