Docela dobrou knihovnou pro tvorbu multiplatformních aplikací je i FOX-Toolkit (http://www.fox-toolkit.org/). Spousta GUI komponent, grafických formátů, podporuje i OpenGL (rychlost jsem netestoval) a dělá se s ní docela dobře. Nevím sice, jak moc je vhodná pro tvorbu her, ale na běžné aplikace stačí.
Pokud čirou náhodou někdo použil obě knihovny, tak bych uvítal aspoň stručné srovnání...
Zajimalo by me, jestli nekdo zkousel oboji, jak na tom je OGL u FOXLib a SDL. Vubec, FOXLib mi prijde jako fajn vecicka na GUI, ale bylo by mozne vsechno ostatni resit "mimo" tu knihovnu?
Z dosavadnich zkusenosti mi vychazi SLD jako jasny vytez, ale chtel bych mit ve windowed modu (tzn. pro klasicke aplikace) kvalitni, multiplatformni GUI. Slo by nejak zkloubit SDL&FOXLib? Nebo FOXLib+???
Nedavno (clanlib v 0.7.7) jsem zacal psat jednu OpenGL zalezitost a pri vyvoji jsem pouzil prave ClanLibu. Vyvoj sel docela dobre vpred, prace s ni je dobra (i kdyz ta dokumentace opravdu chybi - casto clovek musi do hlavicek a sourcu), GUI je vyborne a dobre customizovatelne.
Nicmene pomerne zahy jsem se setkal s temito problemy: hlavicky pro OpenGL maji spoustu veci v private castech a jelikoz jsem pouzival rozsirene zalezitosti z OpenGL jako treba pbuffer, tak jsem byl nucen par veci 'rucne zverejnit'.
Kritictejsim problemem byla rychlost - velice rychle jsem se dostal do stavu, kdy byl projekt pro svou HW narocnost nepouzitelny.
Proto jsem byl nucen ClanLibu opustit a cele to prepsat pro SDL. Vysledek je ten, ze jsem sice napsal mnohem vice kodu, nicmene mam 10x vyssi framerate.
Takze dle meho nazoru je ClanLib skvely pocin, nicmene je na nem porad znat urcita nevyzralost. Nektere veci nejsou dostatecne univerzalni a musite je vselijak obchazet. Proto bych ji asi pro slozitejsi projekty nedoporucil.
Podla mna by sa vyvojari Clanlib-u mali zamerat na integraciu s existujucimi Gui-toolkitmi: Gtk+, Qt, FLTK, Fox, wxWidgets ... Mne osobne by uplne stacilo, keby som vedel bez problemov 'vlozit' CL_OpenGLWindow do wxWindow. Presne tak ako teraz vkladam vtkOpenGLRenderWindow do wxPanel.
"...knihovna SDL, která je velice rychlá na 2D grafiku."
No, nevim... Patrim mezi priznivce SDL a mam pod touto knihovnou rozepsany remake jedne hodne pohyblive hry z Atari/C64. Zacal jsem psat s vyuzitim prikazu SDL knihovny pro 2D grafiku a s hruzou zjistil, ze je to nepouzitelne. SDL za to nemuze, ale 2D grafika obecne je pod X neakcelerovana. A zrejme se s tim neda nic delat (pri primem vyuziti Xlib to dokaze vylepsit vyuziti SHM).
S knihovnou ClanLib jsem se setkal jednou, kdyz jsem se snazil zprovoznit hru Pingus. Jako jedna z mala aplikaci odolala a byl jsem nucet ty pokusy vzdat.
Problem nie je v akceleraci/neakceleraci 2D grafiky pod X ale v overheade, ktory X priklada ku grafickym operaciam. Napriklad prekreslenie obsahu okna 640x480 po 20-pixelovych kuskoch na mojom 1100 MHz stroji trva nieco vyse sekundy (priamym pristupom do VIDEORAM by to trvalo pod 0.1s).
Zapomnel jsem dodat, ze uz jsem to prepsal pod OpenGL. A zpatky se vracet nehodlam. Sice 3D prilis nevyuziju, ale je to ted daleko sviznejsi a ziskal jsem nektere dalsi vyhody.
Jeste vypis z dokumentace k SDL:
If you want hardware acceleration on Linux, you can use the DGA driver (fullscreen-only, under X11) or the framebuffer console driver (fullscreen-only, under the console).
Takze pod Xkama to znamena mit povoleny DGA a to znamena jet pod rootem. Dekuji, nechci.
Zrovna hledam neco co souvisi s tematem.
Potrebuju nejakou jednoduchou knihovnu, pro praci s grafikou. Neco jednoducheho/nenarocneho co dokaze bezet v okne a bude umet bitmapy s klicovanim (pruhlednosti), vic nepotrebuju. Rychlost neni prioritni. Hlavne windows ale linux se hodi.
Diky za tipy, zatim to vidim na SDL nebo nejakou starsi verzi DirectDraw.
Co se tyka toho allegra, je to 2D knihovna, ale existuje i allegrogl, ktere, jak jiz nazev napovida, zprostredkovava interakci OpenGL a Allegra. V praxi to je ovsem docela problematicke kvuli odlisnosti obou API, nicmene sam to v jednom projektu(bezicim na linuxu i win32) docela uspesne pouzivam (i kdyz allegro je tam spise na praci s bitmapami v sys. pameti,zvuk,etc). Ovsem porad je to pomerne nizkourovnove reseni (oproti Clanlib)...