diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-12-31 12:01:00 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-12-31 12:01:00 +0000 |
commit | d20cf5f854fa5482c617d6ea355917435c98b038 (patch) | |
tree | c8e1b05d7f6f4170179a2e5f84d0e75502979423 | |
parent | Initial implementation for being able to click in the main window to select s... (diff) | |
download | ilt-d20cf5f854fa5482c617d6ea355917435c98b038.tar.bz2 ilt-d20cf5f854fa5482c617d6ea355917435c98b038.tar.xz ilt-d20cf5f854fa5482c617d6ea355917435c98b038.zip |
Allow glRef to accept lambdas
-rw-r--r-- | gfx/gl/glSource.h | 2 | ||||
-rw-r--r-- | gfx/gl/programHandle.h | 2 | ||||
-rw-r--r-- | lib/glRef.hpp | 6 |
3 files changed, 5 insertions, 5 deletions
diff --git a/gfx/gl/glSource.h b/gfx/gl/glSource.h index e44c5a2..7b43c48 100644 --- a/gfx/gl/glSource.h +++ b/gfx/gl/glSource.h @@ -6,7 +6,7 @@ #include <string_view> struct GLsource { - using ShaderRef = glRef<GLuint, __glewCreateShader, __glewDeleteShader>; + using ShaderRef = glRef<GLuint, &__glewCreateShader, &__glewDeleteShader>; const GLchar * text; GLint len; diff --git a/gfx/gl/programHandle.h b/gfx/gl/programHandle.h index 6aa1084..5bd5c05 100644 --- a/gfx/gl/programHandle.h +++ b/gfx/gl/programHandle.h @@ -7,7 +7,7 @@ class ProgramHandleBase { public: ProgramHandleBase(GLuint, GLuint); - using ProgramRef = glRef<GLuint, __glewCreateProgram, __glewDeleteProgram>; + using ProgramRef = glRef<GLuint, &__glewCreateProgram, &__glewDeleteProgram>; ProgramRef m_program; GLint viewProjection_uniform, model_uniform; diff --git a/lib/glRef.hpp b/lib/glRef.hpp index 8596bd3..b33980d 100644 --- a/lib/glRef.hpp +++ b/lib/glRef.hpp @@ -4,9 +4,9 @@ #include <special_members.hpp> #include <stdexcept> -template<typename IdType, auto & get, auto & release, auto... fixed> class glRef { +template<typename IdType, auto get, auto release, auto... fixed> class glRef { public: - template<typename... Args> explicit glRef(Args &&... args) : id {get(fixed..., std::forward<Args>(args)...)} + template<typename... Args> explicit glRef(Args &&... args) : id {(*get)(fixed..., std::forward<Args>(args)...)} { if (!id) { throw std::runtime_error("Get function failed"); @@ -21,7 +21,7 @@ public: ~glRef() { if (id) { - release(id); + (*release)(id); } } |