aboutsummaryrefslogtreecommitdiffstats
path: root/yage/base
diff options
context:
space:
mode:
Diffstat (limited to 'yage/base')
-rw-r--r--yage/base/imageloader.cpp7
-rw-r--r--yage/base/sprite.cpp2
-rw-r--r--yage/base/sprite.h2
-rw-r--r--yage/base/window.cpp55
-rw-r--r--yage/base/window.h9
5 files changed, 21 insertions, 54 deletions
diff --git a/yage/base/imageloader.cpp b/yage/base/imageloader.cpp
index 983c350e..0d7d5df9 100644
--- a/yage/base/imageloader.cpp
+++ b/yage/base/imageloader.cpp
@@ -17,8 +17,6 @@ namespace yage
Texture ImageLoader::loadPng(const std::string &file_path)
{
- Texture texture = {};
-
std::vector<unsigned char> in;
std::vector<unsigned char> out;
unsigned long width, height;
@@ -35,6 +33,8 @@ Texture ImageLoader::loadPng(const std::string &file_path)
std::to_string(error_code));
}
+ Texture texture{0, (int)width, (int)height};
+
glGenTextures(1, &texture.id);
glBindTexture(GL_TEXTURE_2D, texture.id);
@@ -51,9 +51,6 @@ Texture ImageLoader::loadPng(const std::string &file_path)
glBindTexture(GL_TEXTURE_2D, 0);
- texture.width = (int)width;
- texture.height = (int)height;
-
return texture;
}
diff --git a/yage/base/sprite.cpp b/yage/base/sprite.cpp
index 767e1000..9ac4dc55 100644
--- a/yage/base/sprite.cpp
+++ b/yage/base/sprite.cpp
@@ -15,8 +15,6 @@
namespace yage
{
-Sprite::Sprite() = default;
-
Sprite::~Sprite()
{
if (vbo_id_ != 0) {
diff --git a/yage/base/sprite.h b/yage/base/sprite.h
index 5b9baf91..ff893b53 100644
--- a/yage/base/sprite.h
+++ b/yage/base/sprite.h
@@ -34,7 +34,7 @@ private:
Texture texture_;
public:
- Sprite();
+ Sprite() = default;
Sprite(const Sprite &) = delete;
Sprite(Sprite &&) = delete;
~Sprite();
diff --git a/yage/base/window.cpp b/yage/base/window.cpp
index a8b6fc02..67f32bb2 100644
--- a/yage/base/window.cpp
+++ b/yage/base/window.cpp
@@ -6,8 +6,7 @@
* ----------------------------------------------------------------------------
*/
-#include <yage/base/window.h>
-#include <GL/glew.h>
+#include "window.h"
#include <iostream>
#include <stdexcept>
@@ -19,60 +18,30 @@ Window::Window() = default;
Window::~Window()
{
- SDL_DestroyWindow(window_);
+ glfwDestroyWindow(window_);
}
void Window::create(const std::string &window_name, int width, int height,
unsigned flags)
{
- Uint32 gl_window_states = 0;
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
+ glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
- // set the correct input flags
- if (flags & WindowFlags::SHOWN) {
- gl_window_states |= SDL_WINDOW_OPENGL;
- }
- if (flags & WindowFlags::HIDDEN) {
- gl_window_states |= SDL_WINDOW_HIDDEN;
- }
- if (flags & WindowFlags::FULLSCREEN) {
- gl_window_states |= SDL_WINDOW_FULLSCREEN;
- }
- if (flags & WindowFlags::BORDERLESS) {
- gl_window_states |= SDL_WINDOW_BORDERLESS;
- }
-
- // SDL_GL options
-
- // SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 4);
- // SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 5);
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
-
- // create the SDL window
- window_ = SDL_CreateWindow(window_name.c_str(), SDL_WINDOWPOS_CENTERED,
- SDL_WINDOWPOS_CENTERED, width, height,
- gl_window_states);
+ window_ = glfwCreateWindow(width, height, window_name.c_str(), nullptr, nullptr);
if (window_ == nullptr) {
- throw std::runtime_error("SDL_CreateWindow failed");
+ throw std::runtime_error("GLFW Window creation failed");
}
- // initialize the GL context in the window
- SDL_GLContext gl_context = SDL_GL_CreateContext(window_);
- if (gl_context == nullptr) {
- throw std::runtime_error("SDL_GL_CreateContext failed");
- }
-
- // initialize glew
- GLenum error = glewInit();
- if (error != GLEW_OK) {
- throw std::runtime_error("glewInit failed");
- }
+ // initialize the gl context
+ glfwMakeContextCurrent(window_);
// print out the current OpenGL version to debug
std::cout << "*** OpenGL version: " << glGetString(GL_VERSION)
<< " ***\n";
- // set vsync on instead of custom fps limiting
- SDL_GL_SetSwapInterval(1);
+ // set vsync on
+ glfwSwapInterval(1);
+
// set the clear color to black
glClearColor(0.f, 0.5f, 0.f, 1.f);
// set alpha blending
@@ -83,7 +52,7 @@ void Window::create(const std::string &window_name, int width, int height,
void Window::swapBuffer()
{
// swap the window buffer
- SDL_GL_SwapWindow(window_);
+ glfwSwapBuffers(window_);
}
void Window::clearBuffer()
diff --git a/yage/base/window.h b/yage/base/window.h
index 8639e075..eb4cf005 100644
--- a/yage/base/window.h
+++ b/yage/base/window.h
@@ -6,10 +6,13 @@
* ----------------------------------------------------------------------------
*/
+/** @file
+ */
+
#ifndef WINDOW_H
#define WINDOW_H
-#include <SDL2/SDL.h>
+#include <GLFW/glfw3.h>
#include <string>
@@ -24,12 +27,12 @@ enum WindowFlags : unsigned {
BORDERLESS = 0x8,
};
-// window wrapper around SDL_Window pointer
+// window wrapper around GLFWwindow pointer
class Window
{
private:
/// window handle
- SDL_Window *window_ = nullptr;
+ GLFWwindow *window_ = nullptr;
public:
Window();