Suprapunerea este o funcție hardware a unei plăci video care face posibilă suprapunerea unei imagini pe ecranul principal (suprafața primară) fără a copia memoria video. Suprapunerea se realizează în convertoare digitale-analogice ale plăcii video (RAMDAC) în procesul de creare a semnalelor video trimise la monitor. RAMDAC scanează suprafețele primare linie cu linie în timpul procesului și trece la o imagine suprapusă atunci când vine vorba de ea.
Necesar
Set de efecte speciale din biblioteci
Instrucțiuni
Pasul 1
Pentru a activa Suprapunerea, este necesar să luați în considerare scrierea unui program care afișează unele efecte speciale pe suprafața desktopului sau în locuri de culori arbitrare (dacă considerăm modul de desenare de pe desktop ca mod principal).
Pasul 2
Alegeți un efect special. În ceea ce privește alegerea efectelor speciale, nu ar trebui să fiți deosebit de dificil - acestea pot fi pur și simplu împrumutate din exemple către bibliotecile FastLIB, de exemplu, algoritmii pentru desenarea unui glob de foc. După aceea, trebuie să adăugați un sistem simplu de particule la efect și să denumiți rezultatul, deoarece va fi convenabil. Inițializați DirectDraw. Doar suprafețele primare au sens pentru a inițializa.
Pasul 3
Verificați capacitatea de a afișa suprapunerea și de a o crea. Pentru a face acest lucru, utilizați funcția GetOverlayCaps. Nu există nimic complicat și interesant în GetOverlayCaps - este un transfer de la DDCaps al fiecărui bit sau valoare asociată suprapunerilor într-o structură mai compactă - TOverlayCaps. Apoi, ar trebui să corectați dimensiunea suprapunerii astfel încât să corespundă parametrilor obținuți în timpul utilizării funcției. În realitate, probabilitatea executării cu succes a unui astfel de cod este extrem de nesemnificativă, deci nu ar trebui să vă concentrați în mod special asupra acestuia - în special, dimensiunea acestuia nu trebuie limitată pentru a evita o muncă lentă, nu este necesar să verificați dimensiunea în octeți pentru posibilitatea de a pătrunde în conținutul memoriei video și așa mai departe.
Pasul 4
În general, merită să verificați mai mult pentru a obține un raport, deoarece chiar procesul de creare a unei suprapuneri se face printr-o metodă cu forță brută. Ideea este că nu există funcții precum EnumOverlayFormats și nu au fost create, astfel încât utilizatorul ar trebui să verifice orice format imaginabil și să spere să aibă noroc. Există, totuși, o funcție IDirectDraw7GetFourCCCodes, care este concepută pentru a determina codul formatului non-RGB (FourCC), dar include nu numai YUV necesar, ci și formatul de textură comprimat și altele. Utilizarea întregii liste și definirea fiecărui format ca YUV sau non-YUV pare irațional.
Pasul 5
Eliminați imaginea de pe desktop, dacă este prezentă, și atribuiți-i culori DCK. Activați suprapunerea culorilor DCK. Suprapunerea va fi activată și gata de pornire. Efectele vizuale ale utilizării sale pot fi evaluate după minimizarea tuturor ferestrelor de lucru.