103 lines
1.7 KiB
C++
103 lines
1.7 KiB
C++
#include "Application.h"
|
|
|
|
Application::Application()
|
|
{
|
|
|
|
}
|
|
|
|
Application::~Application()
|
|
{
|
|
|
|
}
|
|
|
|
void Application::Initialize()
|
|
{
|
|
if (SDL_Init(SDL_INIT_VIDEO) < 0)
|
|
{
|
|
std::cout << "Failed to init SDL\n";
|
|
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
|
|
return;
|
|
}
|
|
|
|
// Create our window centered at 1080x720 resolution
|
|
m_window = SDL_CreateWindow(
|
|
"Universium",
|
|
SDL_WINDOWPOS_CENTERED,
|
|
SDL_WINDOWPOS_CENTERED,
|
|
1080,
|
|
720,
|
|
SDL_WINDOW_OPENGL
|
|
);
|
|
|
|
if (!m_window)
|
|
{
|
|
printf("Window could not be created! SDL_Error: %s\n", SDL_GetError());
|
|
return;
|
|
}
|
|
|
|
// Set GL Attributes
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1);
|
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
|
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
|
|
|
SDL_GLContext glContext = SDL_GL_CreateContext(m_window);
|
|
|
|
if(glContext == NULL)
|
|
{
|
|
printf("OpenGL context could not be created! SDL Error: %s\n", SDL_GetError());
|
|
return;
|
|
}
|
|
|
|
// Initialize GLEW
|
|
glewInit();
|
|
|
|
// Run the engine
|
|
Run();
|
|
}
|
|
|
|
void Application::Run()
|
|
{
|
|
m_run = true;
|
|
|
|
while (m_run)
|
|
{
|
|
while(SDL_PollEvent(&m_event) != 0)
|
|
{
|
|
// Close button is pressed
|
|
if(m_event.type == SDL_QUIT)
|
|
{
|
|
m_run = false;
|
|
}
|
|
}
|
|
|
|
Render();
|
|
|
|
// Set background color as cornflower blue
|
|
glClearColor(0.39f, 0.58f, 0.93f, 1.f);
|
|
|
|
// Clear color buffer
|
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
|
|
|
// Update window with OpenGL rendering
|
|
SDL_GL_SwapWindow(m_window);
|
|
}
|
|
|
|
//Destroy window
|
|
SDL_DestroyWindow(m_window);
|
|
m_window = NULL;
|
|
|
|
//Quit SDL subsystems
|
|
SDL_Quit();
|
|
}
|
|
|
|
void Application::Update(GLfloat dtime)
|
|
{
|
|
|
|
}
|
|
|
|
void Application::Render()
|
|
{
|
|
|
|
}
|