opengl-playground/src/sdlmainwindow.cpp

53 lines
1.1 KiB
C++

#include <opengl-playground/sdlmainwindow.hpp>
#include <epoxy/gl.h>
SdlMainWindow::SdlMainWindow(int height, int width) : MainWindow()
{
this->width = width;
this->height = height;
this->window = NULL;
this->context = NULL;
}
SdlMainWindow::~SdlMainWindow()
{
if (this->window)
SDL_DestroyWindow(window);
}
void SdlMainWindow::show()
{
this->window = SDL_CreateWindow("OpenGL Playground", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
this->width, this->height, SDL_WINDOW_OPENGL);
return;
}
void SdlMainWindow::swapBuffer()
{
if (this->window)
SDL_GL_SwapWindow(this->window);
}
void SdlMainWindow::activateGlContext()
{
// OPENGL VERSION
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
if (this->context == NULL)
this->context = SDL_GL_CreateContext(this->window);
else
SDL_GL_MakeCurrent(this->window, this->context);
}
SDL_Window *SdlMainWindow::getWindow()
{
return this->window;
}
SDL_GLContext SdlMainWindow::getContext()
{
return this->context;
}