SDL2 – OpenGL ES

Я люблю 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