La superposition est une fonction matérielle d'une carte vidéo qui permet de superposer une image sur l'écran principal (surface principale) sans copier la mémoire vidéo. La superposition est effectuée dans des convertisseurs numérique-analogique de carte vidéo (RAMDAC) lors du processus de création de signaux vidéo envoyés au moniteur. RAMDAC scanne les surfaces primaires ligne par ligne pendant le processus et passe à une image de superposition lorsqu'il s'agit de cela.
Nécessaire
Ensemble d'effets spéciaux des bibliothèques
Instructions
Étape 1
Pour activer la superposition, il faut envisager d'écrire un programme qui affiche des effets spéciaux à la surface du bureau, ou à des endroits de couleurs arbitraires (si l'on considère le mode dessin sur le bureau comme mode principal).
Étape 2
Choisissez un effet spécial. En ce qui concerne le choix des effets spéciaux, vous ne devriez pas être particulièrement difficile - ils peuvent simplement être empruntés à des exemples aux bibliothèques FastLIB, par exemple les algorithmes pour dessiner une boule de feu. Après cela, vous devez ajouter un système simple de particules à l'effet et nommer le résultat comme cela vous convient. Initialisez DirectDraw. Seules les surfaces primaires ont un sens à initialiser.
Étape 3
Vérifiez la possibilité d'afficher la superposition et de la créer. Pour ce faire, utilisez la fonction GetOverlayCaps. Il n'y a rien de compliqué et d'intéressant dans GetOverlayCaps - c'est un transfert de DDCaps de chaque bit ou valeur associé aux superpositions dans une structure plus compacte - TOverlayCaps. Ensuite, vous devez corriger la taille de la superposition pour qu'elle corresponde aux paramètres obtenus lors de l'utilisation de la fonction. En réalité, la probabilité de réussite de l'exécution d'un tel code est extrêmement insignifiante, vous ne devez donc pas vous y concentrer particulièrement - en particulier, sa taille ne doit pas être limitée afin d'éviter un travail lent, il n'est pas nécessaire de vérifier la taille en octets pour la possibilité de pénétrer dans le contenu de la mémoire vidéo, etc.
Étape 4
En général, il vaut la peine de vérifier davantage pour obtenir un rapport, car le processus même de création d'une superposition est effectué par une méthode de force brute. Le fait est qu'aucune fonction comme EnumOverlayFormats n'existe et n'a été créée, l'utilisateur doit donc vérifier tout format imaginable et espérer avoir de la chance. Il existe cependant une fonction IDirectDraw7GetFourCCCodes, qui est conçue pour déterminer le code de format non RVB (FourCC), mais elle inclut non seulement le YUV nécessaire, mais également le format de texture compressé, et d'autres. Utiliser toute la liste et définir chaque format comme YUV ou non-YUV semble irrationnel.
Étape 5
Supprimez l'image du bureau, le cas échéant, et attribuez-lui des couleurs DCK. Activer la superposition de couleurs DCK. La superposition sera activée et prête à être utilisée. Les effets visuels de son utilisation peuvent être évalués après avoir minimisé toutes les fenêtres de travail.