2012-01-17 13 views
5

Chcę uaktualnić moją aplikację naukową 3D z Freeglut do GLFW, ale martwię się ukrytymi konfliktami lub utratą danych. Faktycznie moja aplikacja działa jak urok z Freeglut i ja don Nie ma żadnego problemu, ale GLFW jest zalecany do nowoczesnego OpenGL (3.0+) we wszystkich nowoczesnych książkach i samouczkach.Przekształć istniejący projekt C++ openGL z glut/freeglut do glfw

Patrzę na API GLFW i wygląda na Glut z prefiksem glfw*, ale nie jestem do końca pewien. więc mam trzy pytania:

  1. Czy warto złamać moje istniejący projekt na litość GLFW, czy trzymać się freeglut?
  2. Czy utracę jakąś funkcję z nadmiaru?
  3. Czy GLFW jest kompatybilny z GTK +? (Bo mój GUI jest oparty na GTK)
+3

Nie widzę powodu, dla którego nie można używać opengl 3.0+ z freeglut, jeśli twoja karta je obsługuje –

+1

Cóż, od spojrzenia na GLFW, widzę więcej opcji niż w freeglut. Myślę, że to jest powód. nie jestem pewien, czy jest to –

+2

Freeglut obsługuje OpenGL3. Zrób coś w stylu 'glutInitContextVersion (3, 2); glutInitContextFlags (GLUT_FORWARD_COMPATIBLE); 'i jesteś gotowy do użycia. –

Odpowiedz

3

3- Czy GLFW zgodny z GTK +? (ponieważ mój GUI jest oparty na GTK)

Używając GTK +, nie powinieneś używać funkcji Free-/GLUT ani GLFW. GTK + ma widget OpenGL i wykonuje wszystkie funkcje zarządzania wydarzeniami. Użyj tego.

+0

@Ndv Pamiętaj, że GLFW (jak freeglut) to po prostu ** biblioteka GUI ** (jak GTK +), ** która nie ma nic wspólnego z OpenGL **. –

+2

@Ndv Jeśli więc chcesz sobie poradzić z własnym, nie będziesz mógł ominąć zarządzania kontekstem OpenGL sam, używając własnego API platformy (wgl for win, glX for nix). W przeciwnym razie nie ma argumentów dla GLFW/GLUT, ale przeciwko GTK +, ponieważ oba są tylko opakowaniami do specyficznego dla platformy zarządzania OpenGL i GUI, czyniąc je niczym więcej niż ** bibliotekami GUI z obsługą kontekstowego zarządzania OpenGL **. Pod tym względem GLFW/GLUT i GTK + są na tym samym poziomie abstrakcji. Ponownie: ** GLFW/GLUT nie należy ani nie ma nic wspólnego z OpenGL **, nie więcej niż GTK +. –

+0

@Ndv: Mogę się tylko zgodzić z Christianem Rau; * GLUT i GLFW nie są niskim poziomem. * Chcesz zobaczyć niski poziom? Następnie spójrz na https://github.com/datenwolf/codesamples/tree/master/samples/OpenGL/x11argb_opengl – datenwolf

Powiązane problemy