La superposició és una funció de maquinari d’una targeta de vídeo que permet superposar una imatge a la pantalla principal (superfície principal) sense copiar la memòria de vídeo. La superposició es realitza en convertidors digital-analògics (RAMDAC) de targeta de vídeo en el procés de creació de senyals de vídeo enviats al monitor. RAMDAC escaneja les superfícies primàries línia per línia durant el procés i canvia a una imatge superposada quan es tracta d’ella.
Necessari
Conjunt d'efectes especials de biblioteques
Instruccions
Pas 1
Per habilitar la Superposició, cal considerar escriure un programa que mostri alguns efectes especials a la superfície de l'escriptori o en llocs de colors arbitraris (si considerem el mode de dibuix a l'escriptori com el mode principal).
Pas 2
Trieu un efecte especial. Pel que fa a l’elecció dels efectes especials, no hauríeu de ser especialment difícils: simplement es poden agafar d’exemples a les biblioteques FastLIB, per exemple, els algorismes per dibuixar una bola de foc. Després d'això, heu d'afegir un simple sistema de partícules a l'efecte i anomenar-ne el resultat, ja que serà convenient. Inicialitzeu DirectDraw. Només tenen sentit inicialitzar les superfícies primàries.
Pas 3
Comproveu la possibilitat de mostrar la superposició i crear-la. Per fer-ho, utilitzeu la funció GetOverlayCaps. No hi ha res complicat i interessant a GetOverlayCaps: és una transferència de DDCaps de cada bit o valor associat a les superposicions a una estructura més compacta: TOverlayCaps. A continuació, haureu de corregir la mida de la superposició de manera que corresponguin als paràmetres obtinguts durant l'ús de la funció. En realitat, la probabilitat d’executar amb èxit aquest codi és extremadament insignificant, de manera que no us hi heu de centrar especialment; en particular, no s’ha de limitar la seva mida per evitar un treball lent, no cal comprovar la mida en bytes per la possibilitat de penetrar en el contingut de la memòria de vídeo, etc.
Pas 4
En general, val la pena comprovar-ne més per obtenir un informe, ja que el mateix procés de creació d’una superposició es fa mitjançant un mètode de força bruta. La qüestió és que no existeixen funcions com EnumOverlayFormats i no s’han creat, de manera que l’usuari hauria de comprovar qualsevol format imaginable i esperar tenir sort. Tanmateix, hi ha una funció IDirectDraw7GetFourCCCodes, que està dissenyada per determinar el codi de format no RGB (FourCC), però inclou no només el YUV necessari, sinó també el format de textura comprimida i altres. Utilitzar la llista completa i definir cada format com a YUV o no-YUV sembla irracional.
Pas 5
Traieu la imatge de l'escriptori, si hi ha, i assigneu-hi colors DCK. Activa la superposició de color DCK. La superposició s’activarà i estarà llesta. Els efectes visuals del seu ús es poden avaluar després de minimitzar totes les finestres de treball.