From b31d9129e2762304495e4bec47ff65ac81eb4e81 Mon Sep 17 00:00:00 2001 From: MrLetsplay2003 Date: Mon, 10 Oct 2022 10:44:23 +0200 Subject: [PATCH] Use DSA for textures --- src/kekengine/cpp/engine.cpp | 5 +++-- src/kekengine/cpp/shader.cpp | 1 - src/kekengine/cpp/texture.cpp | 18 +++++++++--------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/kekengine/cpp/engine.cpp b/src/kekengine/cpp/engine.cpp index 042658d..7c979eb 100644 --- a/src/kekengine/cpp/engine.cpp +++ b/src/kekengine/cpp/engine.cpp @@ -85,9 +85,8 @@ int init() { std::cout << "Initialized GLFW" << std::endl; - // Create a rendering window with OpenGL 3.3 context glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_SAMPLES, 4); @@ -124,6 +123,8 @@ int init() { std::cout << "Initialized GLEW" << std::endl; + std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl; + int flags; glGetIntegerv(GL_CONTEXT_FLAGS, &flags); if (flags & GL_CONTEXT_FLAG_DEBUG_BIT) { diff --git a/src/kekengine/cpp/shader.cpp b/src/kekengine/cpp/shader.cpp index c5b21ae..a97b300 100644 --- a/src/kekengine/cpp/shader.cpp +++ b/src/kekengine/cpp/shader.cpp @@ -32,7 +32,6 @@ static GLuint compileShader(GLenum type, std::string path) { } std::string code = stream.str(); - std::cout << code << std::endl; delete buf; const char *src = code.c_str(); diff --git a/src/kekengine/cpp/texture.cpp b/src/kekengine/cpp/texture.cpp index 2c49065..64f3a99 100644 --- a/src/kekengine/cpp/texture.cpp +++ b/src/kekengine/cpp/texture.cpp @@ -10,16 +10,16 @@ namespace kek { static GLuint allocTexture(unsigned char *data, int width, int height, float borderColor[4]) { GLuint id; - glGenTextures(1, &id); - glBindTexture(GL_TEXTURE_2D, id); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderColor); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); + glCreateTextures(GL_TEXTURE_2D, 1, &id); + glTextureParameteri(id, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTextureParameteri(id, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTextureParameterfv(id, GL_TEXTURE_BORDER_COLOR, borderColor); + glTextureParameteri(id, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTextureParameteri(id, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTextureStorage2D(id, 1, GL_RGB8, width, height); + glTextureSubImage2D(id, 0, 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, data); //glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); - glGenerateMipmap(GL_TEXTURE_2D); + glGenerateTextureMipmap(id); return id; }