Prekrytie je hardvérová funkcia grafickej karty, ktorá umožňuje prekrývať obraz na hlavnej obrazovke (hlavný povrch) bez kopírovania videopamäte. Prekrytie sa vykonáva v digitálno-analógových prevádzačoch grafickej karty (RAMDAC) v procese vytvárania obrazových signálov odosielaných na monitor. RAMDAC skenuje primárne povrchy riadok po riadku počas procesu a prepne na prekryvný obrázok, keď na to príde.
Nevyhnutné
Sada špeciálnych efektov z knižníc
Inštrukcie
Krok 1
Pre povolenie Prekrytia je potrebné zvážiť napísanie programu, ktorý zobrazuje niektoré špeciálne efekty na povrchu pracovnej plochy, alebo na miestach ľubovoľných farieb (ak považujeme režim kreslenia na ploche za hlavný režim).
Krok 2
Vyberte špeciálny efekt. Pokiaľ ide o výber špeciálnych efektov, nemali by ste byť nijak zvlášť zložití - môžu sa jednoducho požičať z príkladov do knižníc FastLIB, napríklad algoritmov na kreslenie ohnivej gule. Potom musíte k efektu pridať jednoduchý systém častíc a pomenovať výsledok tak, ako to bude vhodné. Inicializujte DirectDraw. Inicializovať majú zmysel iba primárne povrchy.
Krok 3
Skontrolujte schopnosť zobraziť prekrytie a vytvoriť ho. Použite na to funkciu GetOverlayCaps. V GetOverlayCaps nie je nič zložité a zaujímavé - ide o prevod každého bitu alebo hodnoty spojenej s prekrytiami z DDCaps do kompaktnejšej štruktúry - TOverlayCaps. Ďalej by ste mali opraviť veľkosť prekrytia, aby zodpovedala parametrom získaným počas používania funkcie. V skutočnosti je pravdepodobnosť úspešného vykonania takéhoto kódu mimoriadne zanedbateľná, preto by ste sa na neho nemali zvlášť zameriavať - predovšetkým by jeho veľkosť nemala byť obmedzená, aby sa predišlo pomalej práci, nie je potrebné kontrolovať veľkosť v bajtoch. pre možnosť preniknutia do obsahu videopamäte atď.
Krok 4
Spravidla stojí za to skontrolovať viac, aby ste dostali správu, pretože samotný proces vytvárania prekrytia sa vykonáva metódou hrubou silou. Ide o to, že neexistujú a neboli vytvorené žiadne funkcie ako EnumOverlayFormats, takže by si mal používateľ skontrolovať akýkoľvek predstaviteľný formát a dúfať, že bude mať šťastie. Existuje však funkcia IDirectDraw7GetFourCCCodes, ktorá je určená na určenie kódu bez formátu RGB (FourCC), ale zahŕňa nielen potrebný YUV, ale aj formát komprimovanej textúry a ďalšie. Používanie celého zoznamu a definovanie každého formátu ako YUV alebo iného ako YUV sa zdá byť iracionálne.
Krok 5
Odstráňte obrázok z pracovnej plochy, ak je prítomný, a priraďte mu farby DCK. Povoliť prekrytie farieb DCK. Prekrytie bude zapnuté a pripravené na použitie. Vizuálne efekty jeho použitia je možné vyhodnotiť po minimalizácii všetkých pracovných okien.