diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d6f908..c45629f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,11 +82,7 @@ file(GLOB_RECURSE SOURCES "src/LearnOpenGL/*.c" "src/LearnOpenGL/*.cpp") # TODO: Wrangle target_include_directories include_directories(${PROJECT_SOURCE_DIR}/include) -add_library(LearnOpenGL SHARED ${SOURCES} - src/LearnOpenGL/IndexBuffer.cpp - include/LearnOpenGL/ComputeShader.h - include/LearnOpenGL/Grid.h - src/LearnOpenGL/Grid.cpp) +add_library(LearnOpenGL SHARED ${SOURCES}) target_include_directories(LearnOpenGL PUBLIC ${J3ML_SOURCE_DIR}/include) target_include_directories(LearnOpenGL PUBLIC ${glad_SOURCE_DIR}/include) diff --git a/include/LearnOpenGL/Shader.h b/include/LearnOpenGL/Shader.h index 8298eae..29c7295 100644 --- a/include/LearnOpenGL/Shader.h +++ b/include/LearnOpenGL/Shader.h @@ -27,12 +27,25 @@ namespace LearnOpenGL { class Shader { + public: + bool loaded; public: unsigned int ID{}; Shader(); Shader(std::filesystem::path vertexProgramPath, std::filesystem::path fragmentProgramPath); Shader(std::string vertexProgramSrc, std::string fragmentProgramSrc); + ~Shader() + { + if (loaded) + unload(); + } + + void unload() + { + // TODO: Recycle OpenGL shader handle + loaded = false; + } void use(); void reload(); diff --git a/src/demos/SkeletalAnim/CMakeLists.txt b/src/demos/SkeletalAnim/CMakeLists.txt index 8155f7d..e11fe61 100644 --- a/src/demos/SkeletalAnim/CMakeLists.txt +++ b/src/demos/SkeletalAnim/CMakeLists.txt @@ -19,7 +19,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}") # One Class Header, Implemented for multiple platforms CPMAddPackage( NAME ReWindow - URL https://git.redacted.cc/Redacted/ReWindow/archive/vA0.2.22.zip + URL https://git.redacted.cc/Redacted/ReWindow/archive/vA0.2.23.zip ) add_executable(SkeletalAnimDemo main.cpp)