Overlay is een hardwarefunctie van een videokaart die het mogelijk maakt om een afbeelding op het hoofdscherm (primaire oppervlak) te leggen zonder het videogeheugen te kopiëren. Overlay wordt uitgevoerd in digitaal-naar-analoogomzetters (RAMDAC) van videokaarten tijdens het maken van videosignalen die naar de monitor worden gestuurd. RAMDAC scant tijdens het proces lijn voor lijn de primaire oppervlakken en schakelt als het erop aankomt over op een overlay-beeld.
Noodzakelijk
Set van speciale effecten uit bibliotheken
instructies:
Stap 1
Om Overlay in te schakelen, moet u overwegen een programma te schrijven dat enkele speciale effecten op het oppervlak van het bureaublad weergeeft, of op plaatsen met willekeurige kleuren (als we de tekenmodus op het bureaublad als de hoofdmodus beschouwen).
Stap 2
Kies een speciaal effect. Wat betreft de keuze van speciale effecten, moet je niet bijzonder moeilijk zijn - ze kunnen eenvoudig worden geleend van voorbeelden naar de FastLIB-bibliotheken, bijvoorbeeld de algoritmen voor het tekenen van een vuurbal. Daarna moet je een eenvoudig systeem van deeltjes aan het effect toevoegen en het resultaat een naam geven zoals het handig is. Initialiseer DirectDraw. Alleen primaire oppervlakken hebben zin om te initialiseren.
Stap 3
Controleer de mogelijkheid om de overlay weer te geven en te maken. Gebruik hiervoor de functie GetOverlayCaps. Er is niets ingewikkelds en interessants in GetOverlayCaps - het is een overdracht van DDCaps van elke bit of waarde die is geassocieerd met overlays naar een compactere structuur - TOverlayCaps. Vervolgens moet u de grootte van de overlay corrigeren zodat deze overeenkomt met de parameters die zijn verkregen tijdens het gebruik van de functie. In werkelijkheid is de kans op succesvolle uitvoering van dergelijke code uiterst onbeduidend, dus u moet er niet speciaal op focussen - in het bijzonder moet de grootte niet worden beperkt om traag werk te voorkomen, het is niet nodig om de grootte in bytes te controleren voor de mogelijkheid om de inhoud van het videogeheugen binnen te dringen, enzovoort.
Stap 4
Over het algemeen is het de moeite waard om meer te controleren om een rapport te krijgen, aangezien het proces van het maken van een overlay door een brute-force-methode wordt gedaan. Het punt is dat er geen functies zoals EnumOverlayFormats bestaan en niet zijn gemaakt, dus de gebruiker moet elk denkbaar formaat controleren en hopen op geluk. Er is echter een functie IDirectDraw7GetFourCCCodes, die is ontworpen om de niet-RGB-formaatcode (FourCC) te bepalen, maar het bevat niet alleen de benodigde YUV, maar ook het gecomprimeerde textuurformaat en andere. Het lijkt irrationeel om de hele lijst te gebruiken en elk formaat als YUV of niet-YUV te definiëren.
Stap 5
Verwijder de afbeelding van het bureaublad, indien aanwezig, en wijs er DCK-kleuren aan toe. Schakel DCK-kleuroverlay in. De overlay wordt ingeschakeld en is klaar voor gebruik. De visuele effecten van het gebruik ervan kunnen worden beoordeeld na het minimaliseren van alle werkvensters.