Estrutura DDLOCKOUT (ddkmapi.h)
A estrutura DDLOCKOUT contém uma descrição da superfície.
Sintaxe
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;
Membros
ddRVal
Especifica o local no qual o Microsoft DirectDraw grava o valor retornado da função DxApi
dwSurfHeight
dwSurfWidth
Especifique as dimensões da superfície, em pixels.
lSurfPitch
Especifica a distância, em bytes, até o início da próxima linha.
lpSurface
Aponta para a memória da superfície.
SurfaceCaps
Indica um conjunto de sinalizadores que especificam os recursos da superfície. Esse membro pode ser definido como um ou mais dos seguintes sinalizadores:
Bandeira | Significado |
---|---|
DDSCAPS_3DDEVICE | Essa superfície pode ser usada para renderização 3D. Os aplicativos podem usar esse sinalizador para garantir que um dispositivo que só pode renderizar em um determinado heap tenha superfícies fora da tela alocadas do heap correto. Se esse sinalizador estiver definido para um heap, a superfície não será alocada desse heap. |
DDSCAPS_ALLOCONLOAD | A memória da superfície não é alocada até que a superfície seja carregada pelo aplicativo usando o método IDirect3DDevice7::Load. |
DDSCAPS_ALPHA | Esta superfície contém informações alfa. O formato de pixel deve ser consultado para determinar se essa superfície contém apenas informações alfa ou informações alfa entrelaçadas com dados de cor de pixel (como RGBA ou YUVA). |
DDSCAPS_BACKBUFFER |
Essa superfície é o buffer traseiro de uma estrutura de inversão de superfície. Normalmente, essa funcionalidade é definida pelo método CreateSurface do aplicativo quando o sinalizador de DDSCAPS_FLIP é usado. Somente a superfície que precede imediatamente a superfície DDSCAPS_FRONTBUFFER tem esse conjunto de funcionalidades. As outras superfícies são identificadas como buffers de fundo pela presença do sinalizador de DDSCAPS_FLIP, sua ordem de anexo e a ausência dos recursos de DDSCAPS_FRONTBUFFER e DDSCAPS_BACKBUFFER. Se essa funcionalidade for enviada para o método CreateSurface do aplicativo, um buffer de back autônomo será criado. Depois que esse método for chamado, essa superfície poderá ser anexada a um buffer frontal, outro buffer traseiro ou ambos para formar uma estrutura de superfície invertida. Para obter mais informações, consulte o método |
DDSCAPS_COMPLEX | Uma superfície complexa está sendo descrita. Uma superfície complexa resulta na criação de mais de uma superfície. As superfícies adicionais são anexadas à superfície raiz. A estrutura complexa só pode ser destruída destruindo a raiz. |
DDSCAPS_FLIP |
Essa superfície faz parte de uma estrutura de inversão de superfície. Quando essa funcionalidade é passada para o método CreateSurface do aplicativo, um buffer frontal e um ou mais buffers de fundo são criados. O DirectDraw define o bit DDSCAPS_FRONTBUFFER na superfície do buffer frontal e o bit DDSCAPS_BACKBUFFER na superfície adjacente à superfície do buffer frontal. O |
DDSCAPS_FRONTBUFFER |
Essa superfície é o buffer frontal de uma estrutura de inversão de superfície. Esse sinalizador normalmente é definido pelo método CreateSurface do aplicativo quando a funcionalidade de DDSCAPS_FLIP é definida. Se essa funcionalidade for enviada para o método CreateSurface, um buffer frontal autônomo será criado. Essa superfície não terá a funcionalidade de DDSCAPS_FLIP. Ele pode ser anexado a outros buffers traseiros para formar uma estrutura de inversão usando o método |
DDSCAPS_HWCODEC | Essa superfície deve ser capaz de ter um fluxo descompactado pelo hardware. |
DDSCAPS_LIVEVIDEO | Essa superfície deve ser capaz de receber vídeo ao vivo. |
DDSCAPS_LOCALVIDMEM | Essa superfície existe na memória de exibição local verdadeira, em vez de memória de exibição não local. Se esse sinalizador for especificado, DDSCAPS_VIDEOMEMORY também deverá ser especificado. Esse sinalizador não pode ser usado com o sinalizador DDSCAPS_NONLOCALVIDMEM. |
DDSCAPS_MIPMAP | Essa superfície é um nível de um mipmap. Essa superfície será anexada a outras superfícies DDSCAPS_MIPMAP para formar o mipmap. Isso pode ser feito explicitamente criando várias superfícies e anexando-as usando o método AddAttachedSurface do aplicativo ou implicitamente pelo método CreateSurface do aplicativo. Se essa funcionalidade estiver definida, DDSCAPS_TEXTURE também deverá ser definida. |
DDSCAPS_MODEX | Essa superfície é uma superfície 320x200 ou 320x240 Modo X. |
DDSCAPS_NONLOCALVIDMEM | Essa superfície existe na memória de exibição não local, em vez de na memória de exibição local verdadeira. Se esse sinalizador for especificado, DDSCAPS_VIDEOMEMORY sinalizador também deverá ser especificado. Isso não pode ser usado com o sinalizador DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Essa superfície é qualquer superfície fora da tela que não seja uma sobreposição, textura, buffer z, buffer frontal, back-buffer ou superfície alfa. Ele é usado para identificar superfícies simples. |
DDSCAPS_OPTIMIZED | Não implementado no momento. |
DDSCAPS_OVERLAY | Essa superfície é uma sobreposição. Ele pode ou não estar diretamente visível dependendo se está sendo sobreposto à superfície primária. DDSCAPS_VISIBLE pode ser usado para determinar se ele está sendo sobreposto no momento. |
DDSCAPS_OWNDC | Essa superfície terá uma associação de DC (contexto de dispositivo) por um longo período. |
DDSCAPS_PALETTE | Esse driver de dispositivo permite que objetos DirectDrawPalette exclusivos sejam criados e anexados a essa superfície. |
DDSCAPS_PRIMARYSURFACE | A superfície é a superfície primária. Ele representa o que está visível para o usuário no momento. |
DDSCAPS_PRIMARYSURFACELEFT | Essa superfície é a superfície primária para o olho esquerdo. Ele representa o que está visível para o olho esquerdo do usuário no momento. Quando essa superfície é criada, a superfície com a funcionalidade DDSCAPS_PRIMARYSURFACE representa o que é visto pelo olho direito do usuário. |
DDSCAPS_STANDARDVGAMODE | Essa superfície é uma superfície de modo VGA padrão e não uma superfície ModeX. Esse sinalizador não pode ser usado em combinação com o sinalizador DDSCAPS_MODEX. |
DDSCAPS_SYSTEMMEMORY | Essa memória de superfície foi alocada na memória do sistema. |
DDSCAPS_TEXTURE | Essa superfície pode ser usada como uma textura 3D. Ele não indica se a superfície está sendo usada para essa finalidade. |
DDSCAPS_VIDEOMEMORY | Essa superfície existe na memória de exibição. |
DDSCAPS_VIDEOPORT | Essa superfície pode receber dados de uma porta de vídeo de hardware. |
DDSCAPS_VISIBLE | As alterações feitas nessa superfície são imediatamente visíveis. Ele é sempre definido para a superfície primária, bem como para sobreposições enquanto eles estão sendo sobrepostos e mapas de textura enquanto estão sendo texturizados. |
DDSCAPS_WRITEONLY | Somente o acesso de gravação é permitido à superfície. O acesso de leitura da superfície pode gerar uma GPF (falha de proteção geral), mas os resultados de leitura dessa superfície não são significativos. |
DDSCAPS_ZBUFFER | Essa superfície é o buffer z. O buffer z contém informações que não podem ser exibidas. Em vez disso, ele contém informações de profundidade de bit que são usadas para determinar quais pixels são visíveis e quais são obscurecidos. |
dwFormatFlags
Especifica um conjunto de sinalizadores de controle opcionais. Esse membro pode ser definido como uma combinação dos seguintes sinalizadores:
Bandeira | Significado |
---|---|
DDPF_ALPHA | O formato de pixel descreve uma superfície somente alfa. |
DDPF_ALPHAPIXELS | A superfície tem informações de canal alfa no formato de pixel. |
DDPF_ALPHAPREMULT | Reservado para uso do sistema. |
DDPF_BUMPDUDV | Os dados dUdV do mapa de colisão no formato pixel são válidos. |
DDPF_BUMPLUMINANCE |
Os dados de luminância no formato pixel são válidos. Esse sinalizador é usado ao desligar a luminância de superfícies de bumpmap; a máscara de bits da parte de luminância do pixel é indicada pelo membro dwBumpLuminanceBitCount |
DDPF_COMPRESSED | A superfície aceita dados de pixel no formato especificado e os compacta durante a operação de gravação. |
DDPF_FOURCC |
O código de FOURCC |
DDPF_LUMINANCE | Os dados de luminância no formato pixel são válidos. Esse sinalizador é usado apenas para luminância ou luminância mais superfícies alfa; A profundidade do bit é indicada pelo membro dwLuminanceBitCount da estrutura DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | A superfície é indexada por cor de 1 bit. |
DDPF_PALETTEINDEXED2 | A superfície é indexada por cores de 2 bits. |
DDPF_PALETTEINDEXED4 | A superfície é indexada por cores de 4 bits. |
DDPF_PALETTEINDEXED8 | A superfície é indexada por cores de 8 bits. |
DDPF_PALETTEINDEXEDTO8 | A superfície é de 1, 2 ou 4 bits indexada a uma paleta de 8 bits. |
DDPF_RGB | Os dados RGB na estrutura de formato de pixel são válidos. |
DDPF_RGBTOYUV | A superfície aceita dados RGB e os converte durante a operação de gravação em dados YUV. O formato dos dados a serem gravados está contido na estrutura de formato de pixel. O sinalizador DDPF_RGB está definido. |
DDPF_STENCILBUFFER | A superfície contém informações de estêncil junto com as informações de Z. |
DDPF_YUV | Os dados YUV na estrutura de formato de pixel são válidos. |
DDPF_ZBUFFER | O formato de pixel descreve uma superfície somente de buffer z. |
DDPF_ZPIXELS | A superfície está no formato RGBZ. |
dwFormatFourCC
Especifica o código de
dwFormatBitCount
Especifica o número de bits por pixel (4, 8, 16, 24 ou 32) dos dados RGB ou YUV.
dwRBitMask
Especifica a máscara para bits vermelhos.
dwYBitMask
Especifica a máscara para bits Y.
dwGBitMask
Especifica a máscara para bits verdes.
dwUBitMask
Especifica a máscara para bits U.
dwBBitMask
Especifica a máscara para bits azuis.
dwVBitMask
Especifica a máscara para bits V.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ddkmapi.h (inclua Ddkmapi.h) |