muszę przenieść mój projekt gry z Androida (napisany w C, OpenGL ES 2.0, dzięki NDK) na platformy Windows i Linux. Oczywiście będę musiał przepisać kod zależny od platformy, ale teraz mam pytanie, która biblioteka do tworzenia OpenGL i obsługi uchwytów wejściowych.
Wystarczy szybki googling, aby zdobyć 3 kandydatów:
1) Freeglut - przerobiony i darmowy stary dobry GLUT.
2) SDL - najbardziej znana jedna lib, używana w wielu grach.
3) GLFW - jakiś nowy, ale prosty i funkcjonalny.
Właśnie opracowałem PC i nie widzę żadnych istotnych różnic między nimi. Czy możesz mi pomóc, który wybrać? Oczywiście potrzebuję tylko podstawowej myszy / klawiatury i stworzenia kontekstu OpenGL, a także użyję GLEW, aby łatwo dostać się do nowoczesnego OpenGL.
Odpowiedzi:
GLFW jest nowoczesny i ma bardzo dobrze zdefiniowany zakres . Jest również w bardzo aktywnym rozwoju.
SDL z drugiej strony jest solidny i ma wiele funkcji w różnych zakresach, ale trochę brakuje we wszystkich z nich (na przykład: SDL może robić audio, ale możesz preferować używanie OpenAL, ponieważ jest znacznie lepsze pod tym względem). Może być godne uwagi, że SDL został przeniesiony na wiele różnych platform, w przeciwieństwie do GLFW, który jest tylko dla platform stacjonarnych (win / linux / mac).
GLUT , cóż, należy unikać . Po prostu nie ma w tym nic, co czyni go dobrym.
Moim zdaniem jako perfekcjonista GLFW jest lepszym wyborem. Ponieważ robi dokładnie to, czego się chce, nic więcej. Bardzo aktywny rozwój jest również dobrym znakiem dla długoterminowych projektów, ponieważ zwykle oznacza, że błędy zostaną naprawione, nowe funkcje zostaną dodane, będzie nadążał za nowszymi standardami i że nie zostanie porzucony w żadnym momencie. Nie jest to ważne w przypadku szybkiego portu lub sześciomiesięcznej gry, ale dla silnika lub biblioteki, której chcesz ponownie użyć, chciałbym o tym pamiętać.
źródło