Есть простенькая игрушка на SDL, решил выбрать 2 версию, из-за чего гугл дает мало информации, либо она устаревшая.
Для начала хочу нарисовать хотя бы прямоугольник, делаю так:
bool onInit() {
//...
if(SDL_Init(SDL_INIT_EVERYTHING) == -1) return false;
if(TTF_Init() == -1) return false;
window = SDL_CreateWindow("Game", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN|SDL_WINDOW_OPENGL);
if(window == nullptr) return false;
SDL_GLContext glcontext = SDL_GL_CreateContext(window);
glMatrixMode(GL_PROJECTION|GL_MODELVIEW);
glLoadIdentity();
glOrtho(0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, 0.0f, 1.0f);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if(renderer == nullptr) return false;
//...
}
void Miner::onRender() {
SDL_RenderClear(renderer);
//...
glColor3f(0.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex2f(0.0f, 160.0f);
glVertex2f(160.0f, 160.0f);
glVertex2f(160.0f, 180.0f);
glVertex2f(0.0f, 180.0f);
glEnd();
//...
SDL_RenderPresent(renderer);
}
Прямоугольник рисуется, но вместо изменения цвета прямоугольника меняется цвет всего в окне, в том числе и изображений, нарисованных SDL2.
Код написал из кусков документации и не понимаю в чем может быть проблема. Как правильно подключвть OpenGl для рисование наравне с SDL2?