estrutura DD_LOCKDATA (ddrawint.h)
A estrutura DD_LOCKDATA contém informações necessárias para fazer um bloqueio, conforme definido pelas estruturas de parâmetro do Microsoft DirectDraw.
Sintaxe
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
Membros
lpDD
Aponta para uma estrutura DD_DIRECTDRAW_GLOBAL que descreve o dispositivo do driver.
lpDDSurface
Aponta para uma estrutura DD_SURFACE_LOCAL que descreve a superfície , no caso de LockD3DBuffer, um buffer - associada à região de memória a ser bloqueada.
bHasRect
Especifica se a área em rArea é válida. Um valor de 0x00000001 indica uma área válida, 0x00000000 indica uma área inválida.
rArea
Especifica uma estrutura RECTL que define a área na superfície a ser bloqueada.
lpSurfData
Especifica o local em que o driver pode retornar um ponteiro para a região de memória que ele bloqueou.
ddRVal
Especifica o local em que o driver grava o valor retornado do retorno de chamada DdLock ou LockD3DBuffer . Um código de retorno de DD_OK indica êxito. Para obter mais informações, consulte Valores retornados para DirectDraw.
Lock
Usado pela API do DirectDraw e não deve ser preenchido pelo driver.
dwFlags
Especifica uma máscara de bits que informa ao driver como executar o bloqueio de memória. Esse membro é um OR bit a bit de qualquer um dos seguintes valores:
Sinalizador | Significado |
---|---|
DDLOCK_DISCARDCONTENTS |
Esse sinalizador é uma dica para o driver de que ele pode ignorar o processo de desordenação, pois o aplicativo planeja substituir cada pixel na superfície ou retângulo bloqueado (e assim apagar todos os pixels não reordenados de qualquer maneira). Os aplicativos sempre devem definir esse sinalizador quando pretendem substituir toda a superfície ou o retângulo bloqueado. |
DDLOCK_DONOTWAIT | Em interfaces IDirectDrawSurface7 e superiores, o padrão é DDLOCK_WAIT. Se você quiser substituir o padrão e usar o tempo quando o acelerador estiver ocupado (conforme indicado pelo código de retorno DDERR_WASSTILLDRAWING), use esse sinalizador. |
DDLOCK_EVENT | Defina se um identificador de evento está sendo passado para Lock, o que dispara o evento quando ele pode retornar o ponteiro de memória da superfície solicitado. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | O driver deve retornar um ponteiro de memória válido para o início da textura de subvolume especificada no retângulo (RECTL) em rArea. O driver obtém as coordenadas frontal e traseira do subvolume dos 16 primeiros bits das coordenadas esquerda e direita (membros esquerdo e direito de RECTL), respectivamente. As coordenadas esquerda e direita são restritas aos 16 bits inferiores. Se nenhum retângulo for especificado, o driver deverá retornar um ponteiro para a parte superior do volume inteiro. Esse valor está disponível no DirectX 8.1 e posterior. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Usado somente com bloqueios de buffer de vértice Direct3D. Indica que nenhum vértices que foram referenciados em IDirect3DDevice7::D rawPrimitiveVB e IDirect3DDevice7::D rawIndexedPrimitiveVB (descrito na documentação do SDK do Direct3D) desde o início do quadro (ou o último bloqueio sem esse sinalizador) é modificado durante o bloqueio. Isso pode ser útil quando um só está acrescentando dados ao buffer de vértice. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | O mesmo que DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | A superfície que está sendo bloqueada só será lida. No Windows 2000 e posterior, esse sinalizador nunca é definido. |
DDLOCK_SURFACEMEMORYPTR | O driver deve retornar um ponteiro de memória válido para a parte superior do retângulo especificado em rArea. Se nenhum retângulo for especificado, o driver deverá retornar um ponteiro para a parte superior da superfície. |
DDLOCK_WAIT | Defina para indicar que Lock deve aguardar até obter um ponteiro de memória válido antes de retornar. Se esse bit for definido, Lock nunca retornará DDERR_WASSTILLDRAWING. |
DDLOCK_WRITEONLY | A superfície que está sendo bloqueada será gravada apenas. No Windows 2000 e posterior, esse sinalizador nunca é definido. |
fpProcess
Especifica um ponteiro para um mapeamento de modo de usuário da memória do driver. O driver executa esse mapeamento em DdMapMemory. Somente Windows 2000 e posterior.
Requisitos
Cabeçalho | ddrawint.h (inclua Winddi.h) |