Compartilhar via


Função SetDeviceGammaRamp (wingdi.h)

A função SetDeviceGammaRamp define a rampa gama em placas de exibição de cores diretas com drivers que dão suporte a rampas gama para download no hardware.

Importante

É altamente recomendável que você não use essa API. O uso dessa API está sujeito a grandes limitações:

  • SetDeviceGammaRamp implementa heurística para marcar se uma rampa fornecida resultará em uma tela ilegível. Se uma rampa violar essas heurísticas, a função falhará silenciosamente (ou seja, retornará TRUE, mas não definirá a rampa). Por esse motivo, você não pode esperar usar essa função para definir apenas qualquer rampa de gama arbitrária. Em particular, a heurística impede rampas que resultariam em quase todos os pixels se aproximando de um único valor (como preto/branco de tela inteira), pois isso pode impedir que um usuário recupere a tela.

  • Devido à natureza global da função, qualquer outro aplicativo no sistema pode, a qualquer momento, substituir qualquer rampa definida. Em alguns casos, o próprio sistema operacional pode reservar o uso dessa função, fazendo com que qualquer rampa existente seja substituída. A rampa de gama também é redefinida na maioria dos eventos de exibição (conectando/desconectando um monitor, alterações de resolução etc.). Portanto, você não pode ter certeza de que qualquer rampa definida está em vigor.

  • Essa API tem um comportamento indefinido em modos HDR.

  • Essa API tem interação indefinida com soluções de calibragem de cores internas e de terceiros.

Para calibragem de cores, recomendamos que você crie um perfil do ICC (International Color Consortium) e permita que o sistema operacional aplique o perfil. Para cenários avançados de fabricante de equipamento original (OEM), há um modelo de driver de dispositivo que você pode usar para personalizar a calibragem de cores mais diretamente. Consulte o Sistema de Cores do Windows para obter informações sobre como gerenciar perfis de cores.

Para filtragem de luz azul, o Windows agora fornece suporte interno chamado Night Light. Recomendamos direcionar os usuários para esse recurso.

Para adaptação de cores (por exemplo, ajustando a calibragem de cores com base em sensores de luz ambiente), o Windows agora fornece suporte interno, que recomendamos para uso por OEMs.

Para efeitos de filtro personalizados, há uma variedade de filtros de cor de acessibilidade internos para ajudar com uma variedade de casos.

Sintaxe

BOOL SetDeviceGammaRamp(
  HDC    hdc,
  LPVOID lpRamp
);

Parâmetros

hdc

Especifica o contexto do dispositivo da placa de exibição de cor direta em questão.

lpRamp

Ponteiro para um buffer que contém a rampa gama a ser definida. A rampa gama é especificada em três matrizes de 256 elementos WORD cada, que contêm o mapeamento entre valores RGB nos valores buffer de quadro e DAC (conversor analógico digital). A sequência das matrizes é vermelha, verde, azul. Os valores RGB devem ser armazenados nos bits mais significativos de cada WORD para aumentar a independência do DAC.

Retornar valor

Se essa função for bem-sucedida, o valor retornado será TRUE.

Se essa função falhar, o valor retornado será FALSE.

Comentários

Os modos de exibição de cor direta não usam tabelas de pesquisa de cores e geralmente são de 16, 24 ou 32 bits. Nem todas as placas de vídeo de cor direta dão suporte a rampas gama carregáveis. SetDeviceGammaRamp só é bem-sucedido para dispositivos com drivers que dão suporte a rampas gama para download no hardware.

Observação

Essa API pode levar um tempo não trivial para ser executada. Pode levar até 200ms para retornar em algum hardware.

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]
Plataforma de Destino Windows
Cabeçalho wingdi.h
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também