Poslao: 27 Jun 2005 11:15
|
offline
- BlueAxe
- Zaslužni građanin
- Pridružio: 29 Apr 2005
- Poruke: 570
- Gde živiš: Ko kaze da sam ziv?
|
Stvarno nemogu da verujem da je to stalo u manje od 100 kb
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 27 Jun 2005 14:08
|
offline
- Mad_Zec
- Black Rabbit
- Pridružio: 03 Apr 2004
- Poruke: 4513
- Gde živiš: Novi Sad
|
Inace oruzje se menja na 1, 2, 3, 4, 5..... itd, kako se nekada menjalo.
|
|
|
|
Poslao: 27 Jun 2005 14:36
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
Nom ::nisam bas siguran da ce API tako da radi... naime, openGL NE MOZES da koristis ako ne ulinkujes potrebne lib-ove.... bez toga jok... bez obzira sto exe zove i dll-ove...
na primer, da bi samo inicializovao opengl tj. device context bindovao na gl-ov context (hglrc) ,moras da inkludujes <gl/gl.h> i linkujes opengl32.lib... bez toga... nece da moze....
ne mogu da pogledam, imam stari komp.
a sto se tice ovoga gore - opet netacno.
prvo, headeri nista ne povecavaju EXE, oni postoje samo da bi kompajler znao kako da linkuje funkcije.
a OpenGL32.DLL se linkuje dinamicki, i ne povecava uopste EXE.
povecava se vrlo malo, i to samo zato sto mora da se napravi tabela adresa funkcija.
Elem - evo dokaz - opengl u 6 kb - http://www.mycity.rs/fajlovi/loptice.exe
|
|
|
|
|
Poslao: 27 Jun 2005 23:58
|
offline
- Nom
- Građanin
- Pridružio: 17 Nov 2004
- Poruke: 168
- Gde živiš: Shanghai, China
|
Peca ::Nom ::nisam bas siguran da ce API tako da radi... naime, openGL NE MOZES da koristis ako ne ulinkujes potrebne lib-ove.... bez toga jok... bez obzira sto exe zove i dll-ove...
na primer, da bi samo inicializovao opengl tj. device context bindovao na gl-ov context (hglrc) ,moras da inkludujes <gl/gl.h> i linkujes opengl32.lib... bez toga... nece da moze....
ne mogu da pogledam, imam stari komp.
a sto se tice ovoga gore - opet netacno.
prvo, headeri nista ne povecavaju EXE, oni postoje samo da bi kompajler znao kako da linkuje funkcije.
a OpenGL32.DLL se linkuje dinamicki, i ne povecava uopste EXE.
povecava se vrlo malo, i to samo zato sto mora da se napravi tabela adresa funkcija.
Elem - evo dokaz - opengl u 6 kb - mycity.rs/fajlovi/loptice.exe
hm, malo sam pogledao, ispada da opengl32.lib u stvari linkuje dll-ove... tako da dll mozes i sam da ulinkujes... tako da teoretski, lib ti ne treba.
da, u pravu si.
ali sa druge strane, taj exe je kompresovan... exe od 1.6mb sam kompresovao u exe od 600kb... sto znaci da je ovaj njihov mozda bio i 220kb u originalu.. a tu vec moze da stane generisanje txtura i geometrije.... mada u svemu treba imati meru, pa zato onako lose performanse (probao sam je i na masini p4 2.7ghz, 4200ti, 1gb 333mhz i jos uvek se vuce) nikako ne mogu da se (bar po meni, to je moje misljenje) opravdaju velicinom fajla.. cemu sluzi demo ako ti treba zver od masine da bi to islo min 30fps???
dopuna:
sad sam video detalj: tabela adresa funkcija....
hmmmmmmmmmmmmmmmmmmmm..... kada instaliras novi drajver, zar stvarno mislis da ce adrese ostati iste...??? posle recimo 5te verzije drajvera...? ovo treba proveriti...
mada smo otisli offtopic...
|
|
|
|
Poslao: 28 Jun 2005 00:14
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
naravno da nisu iste adrese
zato se koristi funkcija GetProcAddress
kada bi dekompresovali taj EXE od 96kb, video bi da se ta funkcija poziva i da se toj funkciji prosledjuju imena svih drugih WinAPI funkcija.
dakle, da se ispravim, ne postoji tabela sa adresama funkcija, ali postoji tabela sa imenima funkcija, kojima treba naci adresu.
|
|
|
|
Poslao: 28 Jun 2005 00:35
|
offline
- Nom
- Građanin
- Pridružio: 17 Nov 2004
- Poruke: 168
- Gde živiš: Shanghai, China
|
Peca ::naravno da nisu iste adrese
zato se koristi funkcija GetProcAddress
kada bi dekompresovali taj EXE od 96kb, video bi da se ta funkcija poziva i da se toj funkciji prosledjuju imena svih drugih WinAPI funkcija.
dakle, da se ispravim, ne postoji tabela sa adresama funkcija, ali postoji tabela sa imenima funkcija, kojima treba naci adresu.
Jasno, samo sto opengl api sadrzi tonu funkcija, koje za bilo sta ozbiljnije moras da koristis... to znaci da bi explicitno morao da importujes sve potrebne f-je iz dll-a... sto je veliko smaranje i za vece projekte po meni izuzetno neprakticno, pogotovo ako radi vise ljudi odjednom... cemu sve to ako mozes jednostavno da ulinkujes opengl32.lib i pustis njega da to uradi umesto tebe? ;-) Ali naravno, mozes i sam, eto, radi fore ili pravljenja ultra malih demo-a...
|
|
|
|