Я люблю Panda3D. Однако этот игровой движок слишком сложен в компиляции/поддержке для платформы Microsoft Windows. Поэтому я решил заняться разработкой собственной графической библиотеки на OpenGL ES и SDL2.
В этой статье я опишу как инициализировать OpenGL контекст. Мы выведем пустое окно.
King Nothing
Для начала установим библиотеки OpenGL ES3 – GLES 3. На убунте это делается легко, командой sudo apt-get install libgles2-mesa-dev. Для работы с OpenGL, необходимо проинициализировать контекст. Для решения данной задачи есть много вспомогательных библиотек – SDL2, GLFW, GLFM и тд. На самом деле, единственного варианта инициализации для всех платформ не существует, я выбрал SDL2 т.к. код будет един для Windows/*nix/HTML5/iOS/Android/и тд.
Установить SDL2 на убунте можно командой sudo apt-get install libsdl2-dev
Код для инициализации контекста OpenGL с помощью SDL2:
SDL_Window *window = SDL_CreateWindow( "SDL2 - OGLES", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL ); SDL_GLContext glContext = SDL_GL_CreateContext(window);
После этого можно делать вызовы OpenGL, которые будут отрабатывать в данном контексте.
Пример с выводом окна на OpenGL ES с синей заливкой:
https://github.com/demensdeum/OpenGLES3-Experiments/tree/master/3sdl-gles
https://github.com/demensdeum/OpenGLES3-Experiments/blob/master/3sdl-gles/sdlgles.cpp
Собрать и проверить можно с помощью команды cmake . && make && ./SDLGles