Som zmätený o tom, ako používať OpenGL spolu s LWJGL, plánujem používať OpenGL 4.4 (alebo 4.3) a zostať mimo cokoli pod OpenGL 3.0.
Napriek tomu som prišiel popri mojom prvom zadaní knihy, ktorá ma potrebuje urobiť glClearBufferfv()
, a nemohol som to nájsť GL44.*
, ukáže, že je GL30.*
.
Rád by som skôr napísal svoj kód s jedným statickým importom, než aby som ho použil GL30.glClearBufferfv(...)
zakaždým ma tiež núti spomenúť presne v akej verzii bola zavedená funkčnosť.
Viem, že veľa ľudí používa LWJGL, a tak som si myslel, že by mala byť jednoduchšia cesta, ako by som ju mala používať?
edit: Nevenoval som dostatočnú pozornosť, zjavne neexistuje GL30.glClearBufferfv(...)
, ale tam je fi
varianta. Čo mám teraz používať?
odpovede:
3 pre odpoveď č. 1Musíte pochopiť, ako funguje verzia OpenGL, aby ste ocenili prečo glClearBufferfv (...)
je v GL30
namespace.
Každá verzia predstavuje novú sadu požadovaný a až po verziu 3.1 potrebná funkčnosť len rástla. So zavedením bodu 3.1 a rozdielom medzi jadrami / profilmi kompatibility v 3.2 môžete naraziť na odstránené funkcie v starších menných priestoroch 3.1, Je však dosť nemožné vytvoriť aplikáciu OpenGL iba používa funkcie, ktoré boli pridané v OpenGL 4.4 alebo 4.3.
Väčšina príkazov, ktoré potrebujete urobiť niečo užitočné, bolo predstavené pred 10-15 rokmi. Napríklad, glDrawArrays (...)
bol zavedený v OpenGL 1.1 a je stále dôležitý pre budovanie softvéru GL 4.4. Preto len nakreslite pole vertexov, musíte použiť niečo z GL11
namespace. Preto budete požičiavať príkazy a konštanty z mnohých rôznych menných priestorov.