Właśnie dowiedziałem się, że GLUT jest przestarzały.
Tak się dzieje, gdy akceptujesz pierwszą odpowiedź, na którą się natkniesz; dostajesz złe informacje. GLUT 3.7 nie powinien być używany, ale FreeGLUT jest z nim całkowicie kompatybilny wstecz.
Twoje pytanie trafia jednak gdzie indziej. Przy tworzeniu rzeczywistej gry GLUT formy * jest nieodpowiedni. Nie daje ci kontroli nad główną pętlą, a naprawdę potrzebujesz tego w grze (FreeGLUT ma sposób kontrolowania głównej pętli, ale nadal jest dziwny). GLUT służy do pisania prezentacji graficznych. Jest to bardzo ważne podczas testowania nowych efektów graficznych, dlatego w razie potrzeby powinno się tam znajdować. Ale twój główny kod gry nigdy nie powinien go używać.
GLFW to lekka alternatywa dla GLUT ukierunkowana na grę. Zapewnia podstawową obsługę rzeczy poza tworzeniem okna OpenGL. Pozwala uzyskiwać dane wejściowe, ładować obrazy jako tekstury i kilka innych rzeczy.
SDL , SFML i Allegro 5 to multimedialne zestawy narzędzi. Mogą tworzyć okna OpenGL, ale robią o wiele więcej. Zapewniają pełne wsparcie dla wejścia, dźwięku i różnych innych rzeczy potrzebnych do stworzenia gry. Jeśli tworzysz grę, każdy z nich jest dobrym punktem wyjścia. Osobiście lubię Allegro 5, ale to tylko moja tendencja do dobrej dokumentacji i czystego API.
Na tej stronie można znaleźć alternatywę dla GLUT:
http://www.opengl.org/resources/libraries/windowtoolkits/
Do tego dodałbym również SFML:
http://www.sfml-dev.org/index.php
źródło
Jeśli Twoim celem jest opracowanie gry,
To zależy od tego, czy chcesz, aby Twoja gra była wieloplatformowa, czy nie. W przypadku gier przenośnych (Windows, Mac, Linux) SDL wydaje się jedynym wyborem.
Jeśli celujesz tylko w Windows i / lub XBox, istnieją o wiele lepsze alternatywy, np. XNA, który uwalnia cię od ręcznego pisania dużej ilości kodu.
Jeśli Twoim celem jest nauka OpenGL,
Po prostu programuj w surowym OpenGL, ale bądź przygotowany na wiele nieintuicyjnych koncepcji, matematyki i ogromnych instrukcji.
źródło
GLUT jest zarówno interfejsem API, jak i biblioteką. Oryginalna biblioteka jest rzeczywiście przestarzała. Interfejs API jest inny, na początek był całkiem dobry, potrzebuje tylko poprawek w celu przezwyciężenia ograniczeń i zaspokojenia nowych potrzeb. Podstawową bieżącą implementacją jest FreeGLUT, który jest obsługiwany i nie jest przestarzały. Oznacza to, że dobrą alternatywą dla GLUT (jak w bibliotece GLUT) jest GLUT (jak w FreeGLUT).
Wskazany powyżej problem z „kontrolą głównej pętli” jest nieprawidłowy. Dzięki nowszym wersjom GLUT możesz lepiej kontrolować swoją pętlę gry (jeśli jest to dla Ciebie ważne). Ograniczenie zostało naprawione przez glutMainLoopEvent (). To i inne ograniczenia są omówione tutaj:
http://en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
źródło
glutMainLoopEvent
nie jest to dobry sposób na zarządzanie główną pętlą. Nadal wykorzystuje model sterowany zdarzeniami do dostarczania danych, a nie model odpytywania, w którym dostajesz potrzebne dane, kiedy chcesz.Qt obsługuje OpenGL. Spójrz na Open Inventor i zastanów się, czy sensowne jest przejście bezpośrednio do wyższego poziomu interfejsu API 3D.
źródło