Overlay é uma função de hardware de uma placa de vídeo que permite sobrepor uma imagem na tela principal (superfície primária) sem copiar a memória de vídeo. A sobreposição é realizada nos conversores digital-analógico da placa de vídeo (RAMDAC) no processo de criação dos sinais de vídeo enviados ao monitor. RAMDAC varre as superfícies primárias linha por linha durante o processo e muda para uma imagem de sobreposição quando se trata dela.
Necessário
Conjunto de efeitos especiais de bibliotecas
Instruções
Passo 1
Para habilitar a Sobreposição, é necessário considerar a criação de um programa que exiba alguns efeitos especiais na superfície da área de trabalho, ou em locais de cores arbitrárias (se considerarmos o modo de desenho na área de trabalho como o modo principal).
Passo 2
Escolha um efeito especial. Com relação à escolha de efeitos especiais, você não deve ser especialmente difícil - eles podem simplesmente ser emprestados de exemplos para as bibliotecas FastLIB, por exemplo, os algoritmos para desenhar uma bola de fogo. Depois disso, você precisa adicionar um sistema simples de partículas ao efeito e nomear o resultado conforme for conveniente. Inicialize o DirectDraw. Apenas superfícies primárias fazem sentido inicializar.
etapa 3
Verifique a capacidade de exibir a sobreposição e criá-la. Para fazer isso, use a função GetOverlayCaps. Não há nada complicado e interessante em GetOverlayCaps - é uma transferência de DDCaps de cada bit ou valor associado a sobreposições em uma estrutura mais compacta - TOverlayCaps. A seguir, você deve corrigir o tamanho da sobreposição para que correspondam aos parâmetros obtidos durante o uso da função. Na realidade, a probabilidade de execução bem-sucedida de tal código é extremamente insignificante, então você não deve se concentrar especialmente nele - em particular, seu tamanho não deve ser limitado a fim de evitar trabalho lento, não é necessário verificar o tamanho em bytes pela possibilidade de penetrar no conteúdo da memória de vídeo, e assim por diante.
Passo 4
Em geral, vale a pena conferir mais para obter um relatório, já que o próprio processo de criação de uma sobreposição é feito por um método de força bruta. O ponto é que nenhuma função como EnumOverlayFormats existe e não foi criada, então o usuário deve verificar qualquer formato imaginável e esperar ter sorte. Existe, no entanto, uma função IDirectDraw7GetFourCCCodes, que é projetada para determinar o código de formato não RGB (FourCC), mas inclui não apenas o YUV necessário, mas também o formato de textura compactado e outros. Usar a lista inteira e definir cada formato como YUV ou não YUV parece irracional.
Etapa 5
Remova a imagem da área de trabalho, se houver, e atribua cores DCK a ela. Ative a sobreposição de cores DCK. A sobreposição estará ativada e pronta para uso. Os efeitos visuais de seu uso podem ser avaliados minimizando todas as janelas de trabalho.