Hlavne menu We are sorry, but magazine AMMO is suspended. Here is just read-only access to the articles archive. Some features are removed because they were outdated, pointless in read-only (voting and pools), or it was missused by spammers (comments) etc. Now the webpages aren't maintained so when something will get broken most probably it won't be fixed at all. If you liked our magazine then please make donation with paypal so we can pay for traffic on this server.

TOP Výuka
01 Maľované krížovky 103 bodov
02 OpenGL, lákadlo 38 bodov
03 MySQL (+ použitie Visual C++ a PHP) 28 bodov
04 OpenGL, časť 1 21 bodov
05 Huffmanove kódovanie 19 bodov
06 Pascal, časť 1 18 bodov
07 Ako tlačiť s HP 16 bodov
08 Základy HTML časť 2 16 bodov
09 Základy HTML časť 3 13 bodov
10 Hry pre nenáročných + zdrojáky 10 bodov
11 OpenGL, úvod 8 bodov
12 Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0 7 bodov
13 OpenGL – Intermezzo 1 7 bodov
14 OpenGL povinná literatúra 6 bodov
15 Základy HTML časť 1 6 bodov
Najnovsie clanky
Kvalitné služby podľa skúseností iných - TopSlužby.sk
LOTR - Dve veže - Parodia - Scénka 2. časť
Neverwinter nights
Children Of Bodom-Hatebreeder
Kult Duny - 6. časť (Bonus)
Kult Duny - 5. časť (Filmy, Hry)
Dobré ráno. (morc certa, hora incerta...)
Kult Duny - 4. časť (Knihy 2/2)
Stretnutie Spoločenstva Tolkiena
GRAVE DIGGER – Knights Of The Cross
Kult Duny - 3. časť (Knihy 1/2)
Kult Duny - 2. časť (Pojmy)
Kult Duny - 1. časť (Úvod)
LOTR - Dve veže - Parodia - Scénka
Jackass
Vsetky clanky
Airsoft - Specnaz [4 clanky]
Básne [6 clankov]
Fantázia [4 clanky]
Filmy a DVD [51 clankov]
Hardware [10 clankov]
Hry [170 clankov]
Hry, návody [6 clankov]
Hudba [8 clankov]
Internet [7 clankov]
Knihy [6 clankov]
O AMME [4 clanky]
Pandemonium [10 clankov]
Poviedky [14 clankov]
Programy [18 clankov]
Rôzne [8 clankov]
Technické [3 clanky]
Úvahy [8 clankov]
Výuka [50 clankov]
Ako tlačiť s HP
Algoritmy v grafoch
Fake2
Faktúrka
Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0
Fract
HLSaver
Hry pre nenáročných + zdrojáky
Huffmanove kódovanie
IPicture2 & aggresiveoptimize.h
Maľované krížovky
MySQL (+ použitie Visual C++ a PHP)
OpenGL - GLWnd
OpenGL povinná literatúra
OpenGL – Intermezzo 1
OpenGL, časť 10
OpenGL, časť 11
OpenGL, časť 12
OpenGL, časť 13
OpenGL, časť 14
OpenGL, časť 15
OpenGL, časť 16
OpenGL, časť 17
OpenGL, časť 18
OpenGL, časť 7
OpenGL, časť 8
OpenGL, časť 9
Opengl – Cloth Simulation
RenameR
SkinMagic
WinSocket Communication via VC++
Údajové štruktúry
viac...
Zábava [5 clankov]
Zdravie [15 clankov]
Celkovy pocet clankov: 407
OpenGL AMMO Saver 
Výuka | Dna 31.1.2003 | Johny | 3 znamky, priemer 1.66 | 6273 videni | 1153 WAP videni

V niektorej z predchádzajúcich častí bol link na stiahnutie súboru a_saver.zip, ktorý obsahoval 1 screensaver na motívy Amma. Neobsahoval však zdrojáky, o ktoré bol a ako vidím, tak aj je ;o) záujem. Takže tu to je...

Každý screensaver obsahuje akúsi hlavnú screen saver funkciu, tá sa volá ScreenSaverProc. Aj keď je možné premenovať exe súbor a použivať ho ako screensaver, aj tak má použitie tejto funkcie svoje výhody. A síce, že aj Windows si bude naozaj myslieť, že to je screensaver, umožní Vám pohľad naň, pri pohnutí myšou ho sám vypne a tak Vám niektoré starosti odpadnú.

Pri štarte programu, teda volaní našej funkcie ScreenSaverProc, ktorá má presne vymedzené parametre začíname s nastavovaním Opengl okna a potom už len zisťujeme, či máme končiť, kým tomu tak nie je, tak kreslíme do tohto okna. Ešte pred samotným vytvorením okna však odfotíme plochu, a prispôsobíme si ju na Opengl textúru. Potom už len na to hádžeme obláčiky alebo teda dym a sem-tam Ammologo. Napríklad ak má plocha rozmery 1024x768, tak ju natiahneme na rozmer 512x512, pretože jedine textúra o rozmeroch, ktoré sú mocninou 2 sa dá použiť ako opengl textúra. Preto je vidno, že to nie je skutočná plocha. Kto chce, nech ju natiahne na väčší rozmer, tým sa docieli väčšia hodnovernosť s originálom.

Dym, ktorý je vidieť je tvorený len 1 textúrou, ktorá je 2 krát na seba kreslená s istými parametrami priesvitnosti. Je to presne aplikácia Opengl – časť 17.

Plochu odfotíme pomocou BitBlt. Nemám rád veľmi všetky tie Device kontexty, pretože sa mi v tom ťažko orientuje. Keďže vytvárame textúru ako RGB, tak sa snažím prekonvertovať tú bitmapu z iných režimov. Najlepšie je použiť asi 24 alebo 32 bit režim na pozadie, pretože vtedy to funguje najspoľahlivejšie.

Obláčiky (dym) ako aj Ammo logo sa číta z resources. Teda jpg je zakompilované v exe, vlastne scr súbore. Ukazuje to funkcia DecodeFromJPEGBuffer, ktorá je v jednom hlavičkovom súbore. Aj keď by tam mala byť jej hlavička ;o), ale vtedy som ešte tak C neovládal.

Ammo Logo používa aj Alphu na spriesvitňovanie, ktorá sa vypočíta podľa jeho farieb. Toto je tiež asi trochu hlúpe, pretože kľudne stačilo použiť glColor4f a nastaviť jej 4. parameter podľa potreby. Použitie Alpha kanálu je výhodné len vtedy, keď chceme mať nad priesvitnosťou obrázku úplnú kontrolu. Napr. keď chcete spriesvitniť len niektorú jej časť. Ja to robím tak, že mám 2 obrázky, obrázok a jeho alphu. A potom z nich vytvorím len jednu textúru ako RGBA.
Potom pri použití
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Dosiahnete presne priesvitnosť podľa alphy. Blendovacích režimov je veľa a dajú sa dosiahnuť veľmi zaujímavé efekty.

Samotný zdroják má 13kb textu a procedúra, ktorá kreslí dym má len niekoľko riadkov. Dlhšie je len nahrávanie z resources a premena pozadia na opengl textúru. Inak má program takmer totožnú štruktúru s akýmkoľvek Opengl zdrojáku zo seriálu.

Dôležité pre kompiláciu je mať knižnicu ijl.h a ijl15l.lib. Tie je možné nájsť napríklad v Intermezzo 1.

http://www.softsklad.host.sk/opengl/a_saver_src.zip


Obr�zok - Klikni a zv�?�� sa
Najnovsie clanky od tohto redaktora