enumeração DVASPECT2 (ocidl.h)

Especifica novos aspectos de desenho usados para otimizar o processo de desenho.

Syntax

typedef enum tagDVASPECT2 {
  DVASPECT_OPAQUE = 16,
  DVASPECT_TRANSPARENT = 32
} DVASPECT2;

Constantes

 
DVASPECT_OPAQUE
Valor: 16
Representa as partes opacas e fáceis de recortar de um objeto. Os objetos podem ou não dar suporte a esse aspecto.
DVASPECT_TRANSPARENT
Valor: 32
Representa as partes transparentes ou irregulares do objeto on, normalmente partes caras ou impossíveis de recortar. Os objetos podem ou não dar suporte a esse aspecto.

Comentários

Para dar suporte a otimizações de desenho para reduzir a cintilação, um objeto precisa ser capaz de desenhar e retornar informações sobre três aspectos separados de si mesmo.

Aspecto Descrição
DVASPECT_CONTENT Especifica todo o conteúdo de um objeto . Todos os objetos devem dar suporte a esse aspecto.
DVASPECT_OPAQUE Representa as partes opacas e fáceis de recortar de um objeto. Os objetos podem ou não dar suporte a esse aspecto.
DVASPECT_TRANSPARENT Representa as partes transparentes ou irregulares do objeto on, normalmente partes caras ou impossíveis de recortar. Os objetos podem ou não dar suporte a esse aspecto.
 

O contêiner pode determinar quais desses aspectos de desenho um objeto dá suporte chamando o novo método IViewObjectEx::GetViewStatus. Bits individuais retornam informações sobre quais aspectos têm suporte. Se um objeto não der suporte à interface IViewObjectEx , supõe-se que ele dê suporte apenas a DVASPECT_CONTENT.

Dependendo de quais aspectos têm suporte, o contêiner pode solicitar que o objeto se desenhe somente durante o passe frontal para trás, somente o passe de trás para frente ou ambos. Os vários casos possíveis são:

  • Objetos que dão suporte apenas a DVASPECT_CONTENT devem ser desenhados durante o passe de trás para frente, com todas as partes opacas de qualquer objeto sobreposto recortado. Como todos os objetos devem dar suporte a esse aspecto, um contêiner não preocupado com cintilação - talvez porque está desenhando em um bitmap fora da tela - pode optar por desenhar todos os objetos dessa maneira e pular a passagem frontal para trás.
  • Objetos que dão suporte a DVASPECT_OPAQUE podem ser solicitados a desenhar esse aspecto durante o passe frontal para trás. O contêiner é responsável por recortar as regiões opacas do objeto antes de pintar qualquer outro objeto atrás dele.
  • Objetos que dão suporte a DVASPECT_TRANSPARENT podem ser solicitados a desenhar esse aspecto durante o back to front pass. O contêiner é responsável por recortar partes opacas de objetos sobrepostos antes de permitir que um objeto desenhe esse aspecto.
Mesmo quando há suporte para DVASPECT_OPAQUE e DVASPECT_TRANSPARENT, o contêiner é livre para usar esses aspectos ou não. Em particular, se estiver pintando em um bitmap fora da tela e, consequentemente, não estiver preocupado com cintilação, o contêiner poderá usar DVASPECT_CONTENT e apenas um desenho de uma passagem. No entanto, em um desenho de duas passões, se o contêiner usar DVASPECT_OPAQUE durante a passagem frontal para trás, ele deverá usar DVASPECT_TRANSPARENT durante a passagem voltar para a frente para concluir a renderização do objeto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho ocidl.h

Confira também

IViewObject::Draw