Урок: простая программа на SDL 2.0 + OpenGL // Блог программиста

Опубликовано: 12.04.2018

видео Урок: простая программа на SDL 2.0 + OpenGL // Блог программиста

2 Создание канкулятора Borland C++

Недавно популярная библиотека SDL обновилась до версии 2.0. В связи с этим я хочу показать, как создать простую программу на SDL 2 .



Итак, для начала загрузите и установите саму библиотеку с её официального сайта .

Если у вас все получилось, то приступим:

 Инициализация:

#include <SDL2/SDL.h> // Библиотека SDL 2 #include <GL/gl.h> // Библиотека OpenGL #include <GL/glu.h> // Библиотека GLU #include <iostream> // стандартная библиотека ввода-вывода в C++ using namespace std; SDL_Window *window; // задаем окно для SDL const int width = 640; // ширина окна const int height = 480; // высота окна void drawCube(float xrf, float yrf, float zrf);

Здесь мы включаем основные библиотеки, и инициализируем переменные и функции.


Урок 30. C++ Вращающийся куб

Дальше - инициализация SDL и OpenGL

void init(){ // Инициализация SDL if ( SDL_Init(SDL_INIT_VIDEO) < 0 ){ cout << "Unable to init SDL, error: " << SDL_GetError() << endl; exit(1); } // Включаем двойной буфер, настраиваем цвета SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); // Создаем окно с заголовком "Cube", размером 640х480 и расположенным по центру экрана. window = SDL_CreateWindow("Cube", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL); SDL_GLContext glcontext = SDL_GL_CreateContext(window); // создаем контекст OpenGL if(window == NULL){ // если не получилось создать окно, то выходим exit(1); } // Инициализация OpenGL glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // устанавливаем фоновый цвет на черный glClearDepth(1.0); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); // включаем тест глубины glShadeModel(GL_SMOOTH); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f, (float) width / (float) height, 0.1f, 100.0f); // настраиваем трехмерную перспективу glMatrixMode(GL_MODELVIEW); // переходим в трехмерный режим }

В новом SDL 2 функция SDL_SetVideoMode была заменена на SDL_CreateWindow , а, для того чтобы использовать OpenGL необходимо создать специальный контекст с помощью функции SDL_GL_CreateContext .


уроки по Qt и С++. 1 урок. Создаем первое графическое приложение

Комментарии запрещены.