Nisam nikada koristio overlay mogucnosti kartice, ali evo o cemu se radi tu generalno gledano (koliko sam ja shvatio).
Overlay prozor je u stvari prozor za koji je izdvojena memorija direktno na video kartici. Svaka kartica ima tzv. frame buffer u kome je frejm koji se trenutno prikazuje na monitoru, a overlay podaci su smesteni, prosto receno (veoma banalizovano), odmah do tog prostora za frame (otud i naziv overlay).
Cemo sluzi ovo? Koristi se recimo kod capture uredjaja, da bi podaci iz frejm bafera capture kartice direktno mogli da 'idu' u overlay prostor na video kartici, iz koga se veoma brzo (najbrze moguce) kopira sadrzaj u frejm bafer video kartice. Ovo je bitno kod visokih rezolucija, gde bi u drugom slucaju (opisacu kasnije taj slucaj), bio veoma mali fps kod Live prikaza slike sa kamere, recimo. Primena hardverskog overleja (hardware overlay) je uglavnom kod stvari koje se ticu videa, animacije i sl. Recimo, prilikom reprodukcije DivX filmova (koristeci DirectShow koji jutilizuje DDraw) koristi se HW overlay da bi sve bilo 'glatko'. Da bi se iskoristile overlej mogucnosti kartice, programeru ostaju samo biblioteke koje direktno rade sa hardverom, kao sto je DirectX i OpenGL. U DX slucaju neophodno je kreiranje overlay prozora preko DirectDraw biblioteke, a za OpenGL ne bih znao. Ono sto je bitno da se zna je da, svaka kartica ima ogranicen broj overlay prozora koji u isto vreme mogu da se kreiraju.
Drugi slucaj je kada podaci idu RAM pa onda u frejm bafer video kartice (banalizovano). Ovaj nacin ne zadovoljava potrebe reprodukcije video materijala u velikim rezolucijama sa vecim fps (frame per second), ili LIVE prikaz sa cature uredjaja, pa slika koja se vidi na monitoru deluje vestacki, sto se pokreta tice.
Toliko od mene :)
Pozdrav
fire, walk with me