Overlay is 'n hardeware-funksie van 'n videokaart wat dit moontlik maak om 'n beeld op die hoofskerm (primêre oppervlak) te bedek sonder om die video-geheue te kopieer. Overlay word uitgevoer in videokaart-digitale-na-analoog-omskakelaars (RAMDAC) in die proses om videosignale te skep wat na die monitor gestuur word. RAMDAC skandeer die primêre oppervlaktes lyn vir lyn tydens die proses en skakel oor na 'n oortrekbeeld as dit daarby kom.
Nodig
Stel spesiale effekte uit biblioteke
Instruksies
Stap 1
Om Overlay te aktiveer, is dit nodig om 'n program te skryf wat spesiale effekte op die oppervlak van die lessenaar vertoon, of op plekke met willekeurige kleure (as ons die tekenmodus op die lessenaar as die hoofmodus beskou).
Stap 2
Kies 'n spesiale effek. Wat die keuse van spesiale effekte betref, moet u nie besonder moeilik wees nie; hulle kan eenvoudig uit voorbeelde geleen word aan die FastLIB-biblioteke, byvoorbeeld die algoritmes om 'n vuurbal te teken. Daarna moet u 'n eenvoudige stelsel deeltjies byvoeg en die resultaat noem, aangesien dit gerieflik sal wees. Initialiseer DirectDraw. Slegs primêre oppervlaktes is sinvol om te initialiseer.
Stap 3
Kyk op die vermoë om die oortrek te vertoon en te skep. Gebruik hiervoor die GetOverlayCaps-funksie om dit te doen. Daar is niks ingewikkeld en interessant in GetOverlayCaps nie - dit is 'n oordrag van DDCaps van elke bis of waarde wat verband hou met overlays na 'n kompakter struktuur - TOverlayCaps. Vervolgens moet u die grootte van die oortrek regstel sodat dit ooreenstem met die parameters wat tydens die gebruik van die funksie verkry is. In werklikheid is die waarskynlikheid van suksesvolle uitvoering van so 'n kode uiters onbeduidend, dus moet u nie veral daarop fokus nie - in die besonder moet die grootte daarvan nie beperk word om langsaam werk te vermy nie, dit is nie nodig om die grootte in grepe te kontroleer nie. vir die moontlikheid om die inhoud van die video-geheue deur te dring, ensovoorts.
Stap 4
Oor die algemeen is dit die moeite werd om meer na te gaan om 'n verslag te kry, aangesien die proses om 'n oortrek te skep volgens 'n brute kragmetode geskied. Die punt is dat daar geen funksies soos EnumOverlayFormats bestaan nie en dit nie geskep is nie, dus moet die gebruiker enige denkbare formaat nagaan en hoop om gelukkig te wees. Daar is wel 'n funksie IDirectDraw7GetFourCCCodes, wat ontwerp is om die nie-RGB-formaatkode (FourCC) te bepaal, maar dit bevat nie net die nodige YUV nie, maar ook die saamgeperste tekstuurformaat en ander. Om die hele lys te gebruik en elke formaat as YUV of nie-YUV te definieer, lyk irrasioneel.
Stap 5
Verwyder die prentjie van die lessenaar, indien beskikbaar, en ken DCK-kleure daaraan toe. Aktiveer DCK-kleurbedekking. Die oortrek sal aangeskakel wees en gereed wees om te gebruik. Die visuele effekte van die gebruik daarvan kan beoordeel word nadat alle werkvensters verminder is.