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
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 |
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 |
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 |
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
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) |