Az átfedés egy videokártya hardveres funkciója, amely lehetővé teszi a kép átfedését a főképernyőn (elsődleges felület) a videomemória másolása nélkül. Az átfedést a videokártya digitális-analóg átalakítóiban (RAMDAC) hajtják végre a monitorra küldött videojelek létrehozása során. A RAMDAC a folyamat során soronként vizsgálja az elsődleges felületeket, és átvált egy átfedő képre, amikor arról van szó.
Szükséges
Speciális effektusok a könyvtárakból
Utasítás
1. lépés
Az Overlay engedélyezéséhez fontolóra kell venni egy olyan program írását, amely néhány speciális effektust jelenít meg az asztal felületén, vagy tetszőleges színekben (ha az asztali rajz módot tekintjük fő módnak).
2. lépés
Válasszon speciális effektust. A speciális effektusok megválasztásával kapcsolatban nem kell különösebben nehéznek lennie - egyszerűen kölcsönözhetők a példákból a FastLIB könyvtárakhoz, például a tűzgolyó rajzolásának algoritmusaihoz. Ezt követően hozzá kell adnia egy egyszerű részecskerendszert a hatáshoz, és meg kell neveznie az eredményt, mivel ez kényelmes lesz. A DirectDraw inicializálása. Csak az elsődleges felületeknek van értelme inicializálni.
3. lépés
Ellenőrizze az overlay megjelenítésének és létrehozásának lehetőségét. Ehhez használja a GetOverlayCaps funkciót. Nincs semmi bonyolult és érdekes a GetOverlayCaps-ban - ez az egyes bitek vagy az átfedésekhez társított értékek DDCaps-ból való átvitele egy kompaktabb struktúrába - TOverlayCaps. Ezután ki kell javítania az átfedés méretét, hogy azok megfeleljenek a függvény használata során kapott paramétereknek. A valóságban az ilyen kód sikeres végrehajtásának valószínűsége rendkívül jelentéktelen, ezért nem szabad különösebben koncentrálni rá - különösen a méretét nem szabad korlátozni a lassú munka elkerülése érdekében, nem szükséges bájtokban ellenőrizni a méretet a videomemória tartalmába való behatolás lehetőségére stb.
4. lépés
Általában érdemes többet megnézni, hogy jelentést kapjunk, mivel az átfedés létrehozásának folyamatát brute-force módszerrel hajtják végre. A lényeg az, hogy nincsenek olyan funkciók, mint az EnumOverlayFormats, és ezeket nem hozták létre, ezért a felhasználónak ellenőriznie kell minden elképzelhető formátumot, és remélnie kell, hogy szerencsés lesz. Van azonban egy IDirectDraw7GetFourCCCodes függvény, amelyet a nem RGB formátumú kód (FourCC) meghatározására terveztek, de nemcsak a szükséges YUV-t, hanem a tömörített textúra-formátumot is tartalmazza. A teljes lista használata és az egyes formátumok YUV vagy nem YUV meghatározása irracionálisnak tűnik.
5. lépés
Távolítsa el a képet az asztalról, ha van, és rendeljen hozzá DCK színeket. Engedélyezze a DCK színátfedést. Az átfedés be lesz kapcsolva és készen áll az indulásra. Használatának vizuális hatásai az összes működő ablak minimalizálása után értékelhetők.