diff --git a/include/shadertoy/OpenGL/Buffer.hpp b/include/shadertoy/OpenGL/Buffer.hpp index c35e43c55151f92c3dc415e5e6a70e773408d547..0521b777a6d14f994207d319547e9f4f02e0647f 100644 --- a/include/shadertoy/OpenGL/Buffer.hpp +++ b/include/shadertoy/OpenGL/Buffer.hpp @@ -24,7 +24,7 @@ namespace OpenGL */ class shadertoy_EXPORT Buffer : public Resource< Buffer, - MultiAllocator<&glCreateBuffers, &glDeleteBuffers>, + MultiAllocator<&glGenBuffers, &glDeleteBuffers>, NullBufferError> { public: diff --git a/include/shadertoy/OpenGL/Framebuffer.hpp b/include/shadertoy/OpenGL/Framebuffer.hpp index 35758b8922aa8e02eec1231ca30dea668e8f6993..02b9d5f7f706d693706ad001d74dd0f364023e4b 100644 --- a/include/shadertoy/OpenGL/Framebuffer.hpp +++ b/include/shadertoy/OpenGL/Framebuffer.hpp @@ -24,7 +24,7 @@ namespace OpenGL */ class shadertoy_EXPORT Framebuffer : public Resource< Framebuffer, - MultiAllocator<&glCreateFramebuffers, &glDeleteFramebuffers>, + MultiAllocator<&glGenFramebuffers, &glDeleteFramebuffers>, NullFramebufferError> { public: diff --git a/include/shadertoy/OpenGL/Renderbuffer.hpp b/include/shadertoy/OpenGL/Renderbuffer.hpp index 7b1ded03e2199c35c570e3b68e976522b599772f..71ca7de965887ac0650e6a050d41818d73b8d371 100644 --- a/include/shadertoy/OpenGL/Renderbuffer.hpp +++ b/include/shadertoy/OpenGL/Renderbuffer.hpp @@ -21,7 +21,7 @@ namespace OpenGL */ class shadertoy_EXPORT Renderbuffer : public Resource< Renderbuffer, - MultiAllocator<&glCreateRenderbuffers, &glDeleteRenderbuffers>, + MultiAllocator<&glGenRenderbuffers, &glDeleteRenderbuffers>, NullRenderbufferError> { public: diff --git a/include/shadertoy/OpenGL/Texture.hpp b/include/shadertoy/OpenGL/Texture.hpp index 7bce0a2ca6b8523d2434d374bb737d8d4eba80c5..56f847da923e97d3dec243fda309ea550c8dc476 100644 --- a/include/shadertoy/OpenGL/Texture.hpp +++ b/include/shadertoy/OpenGL/Texture.hpp @@ -75,24 +75,26 @@ namespace OpenGL /** * glTextureParameteri * + * @param target Texture target * @param pname Parameter name to set * @param param Value of the parameter * * @throws OpenGLError * @throws NullTextureError */ - void Parameter(GLenum pname, GLint param); + void Parameter(GLenum target, GLenum pname, GLint param); /** * glTextureParameterf * + * @param target Texture target * @param pname Parameter name to set * @param param Value of the parameter * * @throws OpenGLError * @throws NullTextureError */ - void Parameter(GLenum pname, GLfloat param); + void Parameter(GLenum target, GLenum pname, GLfloat param); /** * glTextureImage2DEXT diff --git a/src/OpenGL/Buffer.cpp b/src/OpenGL/Buffer.cpp index 4f6de470d2a4279be8d4c3141ac1f41b8b2dfa5a..12c2594885d7cf571c42d0afdb860fda17c3ed08 100644 --- a/src/OpenGL/Buffer.cpp +++ b/src/OpenGL/Buffer.cpp @@ -16,5 +16,5 @@ void Buffer::Bind(GLenum target) void Buffer::Data(GLsizei size, const void *data, GLenum usage) { - glCall(glNamedBufferData, GLuint(*this), size, data, usage); + glCall(glNamedBufferDataEXT, GLuint(*this), size, data, usage); } diff --git a/src/OpenGL/Framebuffer.cpp b/src/OpenGL/Framebuffer.cpp index 15349abf6d7beb3d45a68f125a34df19b0251794..29ec72fd120fe92ebf7a72e42fbc41bd9eeb07e1 100644 --- a/src/OpenGL/Framebuffer.cpp +++ b/src/OpenGL/Framebuffer.cpp @@ -17,5 +17,5 @@ void Framebuffer::Bind(GLenum target) void Framebuffer::Texture(GLenum attachment, shadertoy::OpenGL::Texture &texture, GLint level) { - glCall(glNamedFramebufferTexture, GLuint(*this), attachment, GLuint(texture), level); + glCall(glNamedFramebufferTextureEXT, GLuint(*this), attachment, GLuint(texture), level); } diff --git a/src/OpenGL/Renderbuffer.cpp b/src/OpenGL/Renderbuffer.cpp index e54893eb89420326be5ff282002e893f314d667f..2e3c0b068f4e24ae47a5da32e045b45b400c79c8 100644 --- a/src/OpenGL/Renderbuffer.cpp +++ b/src/OpenGL/Renderbuffer.cpp @@ -16,5 +16,5 @@ void Renderbuffer::Bind(GLenum target) void Renderbuffer::Storage(GLenum internalFormat, GLsizei width, GLsizei height) { - glCall(glNamedRenderbufferStorage, GLuint(*this), internalFormat, width, height); + glCall(glNamedRenderbufferStorageEXT, GLuint(*this), internalFormat, width, height); } diff --git a/src/OpenGL/Texture.cpp b/src/OpenGL/Texture.cpp index c3a08ec56ba580d4c46e08dc5eac29be226628ff..fd2d57b194386f9627679d11805eac40b6e6584b 100644 --- a/src/OpenGL/Texture.cpp +++ b/src/OpenGL/Texture.cpp @@ -12,7 +12,7 @@ NullTextureError::NullTextureError() GLuint TextureAllocator::Create(GLenum target) { GLuint res; - glCall(glCreateTextures, target, 1, &res); + glCall(glGenTextures, 1, &res); return res; } @@ -31,14 +31,14 @@ void Texture::Bind(GLenum target) glCall(glBindTexture, target, GLuint(*this)); } -void Texture::Parameter(GLenum pname, GLint param) +void Texture::Parameter(GLenum target, GLenum pname, GLint param) { - glCall(glTextureParameteri, GLuint(*this), pname, param); + glCall(glTextureParameteriEXT, GLuint(*this), target, pname, param); } -void Texture::Parameter(GLenum pname, GLfloat param) +void Texture::Parameter(GLenum target, GLenum pname, GLfloat param) { - glCall(glTextureParameterf, GLuint(*this), pname, param); + glCall(glTextureParameterfEXT, GLuint(*this), target, pname, param); } void Texture::Image2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *data) diff --git a/src/RenderContext.cpp b/src/RenderContext.cpp index 1f8f411d292fad2fb8852db21ebb45513dddc9d7..18966651e8f9972501dd8325ae036298176469f1 100644 --- a/src/RenderContext.cpp +++ b/src/RenderContext.cpp @@ -54,10 +54,10 @@ shared_ptr<TextureEngine> RenderContext::BuildTextureEngine() int minFilter = max((int)inputConfig.minFilter, GL_LINEAR), magFilter = (int)inputConfig.magFilter; - texture->Parameter(GL_TEXTURE_MAG_FILTER, magFilter); - texture->Parameter(GL_TEXTURE_MIN_FILTER, minFilter); - texture->Parameter(GL_TEXTURE_WRAP_S, inputConfig.wrap); - texture->Parameter(GL_TEXTURE_WRAP_T, inputConfig.wrap); + texture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter); + texture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); + texture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, inputConfig.wrap); + texture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, inputConfig.wrap); return texture; } @@ -262,10 +262,10 @@ void RenderContext::DoReadWriteCurrentFrame(GLuint &texIn, GLuint &texOut) screenQuadTexture = make_shared<OpenGL::Texture>(GL_TEXTURE_2D); // Setup screenQuadTexture - screenQuadTexture->Parameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST); - screenQuadTexture->Parameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST); - screenQuadTexture->Parameter(GL_TEXTURE_WRAP_S, GL_REPEAT); - screenQuadTexture->Parameter(GL_TEXTURE_WRAP_T, GL_REPEAT); + screenQuadTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + screenQuadTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + screenQuadTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + screenQuadTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); screenQuadTexture->Image2D(GL_TEXTURE_2D, 0, GL_RGBA32F, config.width, config.height, 0, GL_BGRA, GL_FLOAT, nullptr); } diff --git a/src/TextureEngine.cpp b/src/TextureEngine.cpp index 6f32034e02b853bee219c171eb95e96a54d73e26..48b08e75eebe178475d85d46a8f9d1c161a248d3 100644 --- a/src/TextureEngine.cpp +++ b/src/TextureEngine.cpp @@ -141,8 +141,8 @@ shared_ptr<OpenGL::Texture> TextureEngine::NoiseTextureHandler(const InputConfig { // A noise texture auto noiseTexture = make_shared<OpenGL::Texture>(GL_TEXTURE_2D); - noiseTexture->Parameter(GL_TEXTURE_SWIZZLE_B, GL_RED); - noiseTexture->Parameter(GL_TEXTURE_SWIZZLE_G, GL_RED); + noiseTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); + noiseTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED); // Create the actual noise vector<unsigned char> rnd(config.width * config.height); @@ -172,8 +172,8 @@ shared_ptr<OpenGL::Texture> TextureEngine::CheckerTextureHandler(const InputConf // A checkerboard texture auto checkerTexture = make_shared<OpenGL::Texture>(GL_TEXTURE_2D); - checkerTexture->Parameter(GL_TEXTURE_SWIZZLE_B, GL_RED); - checkerTexture->Parameter(GL_TEXTURE_SWIZZLE_G, GL_RED); + checkerTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); + checkerTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED); // Generate the checkerboard vector<unsigned char> chk(config.width * config.height); @@ -218,11 +218,11 @@ void TextureEngine::Initialize() chk[j * height + i] = ((i / size) % 2 == 0) ^ ((j / size) % 2 == 0) ? 255 : 0; // Load it and set parameters - emptyTexture->Parameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST); - emptyTexture->Parameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST); - emptyTexture->Parameter(GL_TEXTURE_WRAP_S, GL_REPEAT); - emptyTexture->Parameter(GL_TEXTURE_WRAP_T, GL_REPEAT); - emptyTexture->Parameter(GL_TEXTURE_SWIZZLE_B, GL_RED); + emptyTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + emptyTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + emptyTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + emptyTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + emptyTexture->Parameter(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); emptyTexture->Image2D(GL_TEXTURE_2D, 0, GL_RED, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, chk.data()); } @@ -314,10 +314,10 @@ void TextureEngine::ApplyTextureOptions(const InputConfig &inputConfig, OpenGL:: { GLint minFilter = inputConfig.minFilter; - texture.Parameter(GL_TEXTURE_MIN_FILTER, minFilter); - texture.Parameter(GL_TEXTURE_MAG_FILTER, inputConfig.magFilter); - texture.Parameter(GL_TEXTURE_WRAP_S, inputConfig.wrap); - texture.Parameter(GL_TEXTURE_WRAP_T, inputConfig.wrap); + texture.Parameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); + texture.Parameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, inputConfig.magFilter); + texture.Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, inputConfig.wrap); + texture.Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, inputConfig.wrap); if (minFilter > GL_LINEAR) { diff --git a/src/ToyBuffer.cpp b/src/ToyBuffer.cpp index 106057d2d9dc302807977ecb4cbc23e107cc3361..054119734c9dd9ba6832057a24a29ffcbfee81ba 100644 --- a/src/ToyBuffer.cpp +++ b/src/ToyBuffer.cpp @@ -162,10 +162,10 @@ void ToyBuffer::InitializeRenderTexture(shared_ptr<OpenGL::Texture> &texptr, int texptr = make_shared<OpenGL::Texture>(GL_TEXTURE_2D); // Allocate texture storage according to width/height - texptr->Parameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST); - texptr->Parameter(GL_TEXTURE_MAG_FILTER, GL_NEAREST); - texptr->Parameter(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - texptr->Parameter(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + texptr->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + texptr->Parameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + texptr->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + texptr->Parameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); texptr->Image2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, nullptr);