From 17254ca13ce7985e87a413df1d8546779734f05e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 19 Aug 2024 20:25:07 +0200 Subject: Implement c++ version of mgl_texture_init_reference_existing_gl_texture --- depends/mgl | 2 +- include/mglpp/graphics/Texture.hpp | 5 +++++ src/graphics/Texture.cpp | 8 ++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/depends/mgl b/depends/mgl index f1ede6c..8731a00 160000 --- a/depends/mgl +++ b/depends/mgl @@ -1 +1 @@ -Subproject commit f1ede6cfa5cc2af2e7f93e29f2311e9ece7f41c4 +Subproject commit 8731a00681a2cf99965203849bd7ba8f6c09df9a diff --git a/include/mglpp/graphics/Texture.hpp b/include/mglpp/graphics/Texture.hpp index 8bd2df6..1ea040e 100644 --- a/include/mglpp/graphics/Texture.hpp +++ b/include/mglpp/graphics/Texture.hpp @@ -17,7 +17,12 @@ namespace mgl { bool mipmap = false; /* available since opengl 3.0 */ }; + struct ReferenceOptions { + bool pixel_coordinates = false; + }; + Texture(); + Texture(unsigned int gl_texture_id, mgl_texture_format format, const ReferenceOptions reference_options = {false}); Texture(Texture &&other); Texture& operator=(Texture &&other); ~Texture(); diff --git a/src/graphics/Texture.cpp b/src/graphics/Texture.cpp index 0c4b7fc..3b1f410 100644 --- a/src/graphics/Texture.cpp +++ b/src/graphics/Texture.cpp @@ -7,6 +7,14 @@ namespace mgl { memset(&texture, 0, sizeof(mgl_texture)); } + Texture::Texture(unsigned int gl_texture_id, mgl_texture_format format, const ReferenceOptions reference_options) { + memset(&texture, 0, sizeof(mgl_texture)); + const mgl_texture_reference_options texture_reference_options = { + reference_options.pixel_coordinates + }; + mgl_texture_init_reference_existing_gl_texture(&texture, gl_texture_id, format, &texture_reference_options); + } + Texture::Texture(Texture &&other) { memcpy(&texture, &other.texture, sizeof(mgl_texture)); owned = other.owned; -- cgit v1.2.3