diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..5e09a03 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "chrono": "cpp" + } +} \ No newline at end of file diff --git a/cmake/FindASSIMP.cmake b/cmake/FindASSIMP.cmake deleted file mode 100644 index 426c276..0000000 --- a/cmake/FindASSIMP.cmake +++ /dev/null @@ -1,102 +0,0 @@ - -# ASSIMP_FOUND -# ASSIMP_INCLUDE_DIR -# ASSIMP_LIBRARY_RELEASE -# ASSIMP_LIBRARY_DEBUG -# ASSIMP_LIBRARIES -# ASSIMP_BINARY (win32 only) - -include(FindPackageHandleStandardArgs) - -find_path(ASSIMP_INCLUDE_DIR assimp/Importer.hpp - - PATHS - $ENV{ASSIMP_DIR} - $ENV{PROGRAMFILES}/Assimp - /usr - /usr/local - /sw - /opt/local - - PATH_SUFFIXES - /include - - DOC "The directory where assimp/Importer.hpp etc. resides") - -if(MSVC AND X64) - set(ASSIMP_PF "64") -else() - set(ASSIMP_PF "86") -endif() - -find_library(ASSIMP_LIBRARY_RELEASE NAMES assimp - - HINTS - ${ASSIMP_INCLUDE_DIR}/.. - - PATHS - $ENV{ASSIMP_DIR} - /usr - /usr/local - /sw - /opt/local - - PATH_SUFFIXES - /lib - /lib${ASSIMP_PF} - /build/code - /build-debug/code - - DOC "The Assimp library (release)") - -find_library(ASSIMP_LIBRARY_DEBUG NAMES assimpd - - HINTS - ${ASSIMP_INCLUDE_DIR}/.. - - PATHS - $ENV{ASSIMP_DIR} - /usr - /usr/local - /sw - /opt/local - - PATH_SUFFIXES - /lib - /lib${ASSIMP_PF} - /build/code - /build-debug/code - - DOC "The Assimp library (debug)") - -set(ASSIMP_LIBRARIES "") -if(ASSIMP_LIBRARY_RELEASE AND ASSIMP_LIBRARY_DEBUG) - set(ASSIMP_LIBRARIES - optimized ${ASSIMP_LIBRARY_RELEASE} - debug ${ASSIMP_LIBRARY_DEBUG}) -elseif(ASSIMP_LIBRARY_RELEASE) - set(ASSIMP_LIBRARIES ${ASSIMP_LIBRARY_RELEASE}) -elseif(ASSIMP_LIBRARY_DEBUG) - set(ASSIMP_LIBRARIES ${ASSIMP_LIBRARY_DEBUG}) -endif() - -if(WIN32) - - find_file(ASSIMP_BINARY NAMES assimp.dll "assimp${ASSIMP_PF}.dll" - - HINTS - ${ASSIMP_INCLUDE_DIR}/.. - - PATHS - $ENV{ASSIMP_DIR} - - PATH_SUFFIXES - /bin - /bin${ASSIMP_PF} - - DOC "The Assimp binary") - -endif() - -find_package_handle_standard_args(ASSIMP DEFAULT_MSG ASSIMP_LIBRARIES ASSIMP_INCLUDE_DIR) -mark_as_advanced(ASSIMP_FOUND ASSIMP_INCLUDE_DIR ASSIMP_LIBRARIES) diff --git a/cmake/FindFFMPEG.cmake b/cmake/FindFFMPEG.cmake deleted file mode 100644 index 55f507e..0000000 --- a/cmake/FindFFMPEG.cmake +++ /dev/null @@ -1,76 +0,0 @@ - -# - Try to find ffmpeg libraries (libavcodec, libavformat and libavutil) -# Once done this will define -# -# FFMPEG_FOUND - system has ffmpeg or libav -# FFMPEG_INCLUDE_DIR - the ffmpeg include directory -# FFMPEG_LIBRARIES - Link these to use ffmpeg -# FFMPEG_LIBAVCODEC -# FFMPEG_LIBAVFORMAT -# FFMPEG_LIBAVUTIL -# FFMPEG_LIBSWSCALE -# -# Copyright (c) 2008 Andreas Schneider -# Modified for other libraries by Lasse Kärkkäinen -# Modified for Hedgewars by Stepik777 -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# - -if (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR) - # in cache already - set(FFMPEG_FOUND TRUE) -else (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR) - find_path(FFMPEG_AVCODEC_INCLUDE_DIR - NAMES libavcodec/avcodec.h - PATHS ${_FFMPEG_AVCODEC_INCLUDE_DIRS} /usr/include /usr/local/include /opt/local/include /sw/include - PATH_SUFFIXES ffmpeg libav - ) - - find_library(FFMPEG_LIBAVCODEC - NAMES avcodec - PATHS ${_FFMPEG_AVCODEC_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib - ) - - find_library(FFMPEG_LIBAVFORMAT - NAMES avformat - PATHS ${_FFMPEG_AVFORMAT_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib - ) - - find_library(FFMPEG_LIBAVUTIL - NAMES avutil - PATHS ${_FFMPEG_AVUTIL_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib - ) - - find_library(FFMPEG_LIBSWSCALE - NAMES swscale - PATHS ${_FFMPEG_SWSCALE_LIBRARY_DIRS} /usr/lib /usr/local/lib /opt/local/lib /sw/lib - ) - - if (FFMPEG_LIBAVCODEC AND FFMPEG_LIBAVFORMAT) - set(FFMPEG_FOUND TRUE) - endif() - - if (FFMPEG_FOUND) - set(FFMPEG_INCLUDE_DIR ${FFMPEG_AVCODEC_INCLUDE_DIR}) - - set(FFMPEG_LIBRARIES - ${FFMPEG_LIBAVCODEC} - ${FFMPEG_LIBAVFORMAT} - ${FFMPEG_LIBAVUTIL} - ) - - endif (FFMPEG_FOUND) - - if (FFMPEG_FOUND) - if (NOT FFMPEG_FIND_QUIETLY) - message(STATUS "Found FFMPEG or Libav: ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIR}") - endif (NOT FFMPEG_FIND_QUIETLY) - else (FFMPEG_FOUND) - if (FFMPEG_FIND_REQUIRED) - message(FATAL_ERROR "Could not find libavcodec or libavformat or libavutil") - endif (FFMPEG_FIND_REQUIRED) - endif (FFMPEG_FOUND) - -endif (FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR) diff --git a/cmake/FindGLEW.cmake b/cmake/FindGLEW.cmake deleted file mode 100644 index 7df4a2c..0000000 --- a/cmake/FindGLEW.cmake +++ /dev/null @@ -1,72 +0,0 @@ - -# GLEW_FOUND -# GLEW_INCLUDE_DIR -# GLEW_LIBRARY - -# GLEW_BINARY (win32 only) - - -find_path(GLEW_INCLUDE_DIR GL/glew.h - - PATHS - $ENV{GLEW_DIR} - /usr - /usr/local - /sw - /opt/local - - PATH_SUFFIXES - /include - - DOC "The directory where GL/glew.h resides") - -if (X64) - set(GLEW_BUILD_DIR Release/x64) -else() - set(GLEW_BUILD_DIR Release/Win32) -endif() - -find_library(GLEW_LIBRARY NAMES GLEW glew glew32 glew32s - - PATHS - $ENV{GLEW_DIR} - /usr - /usr/local - /sw - /opt/local - - # authors prefered choice for development - /build - /build-release - /build-debug - $ENV{GLEW_DIR}/build - $ENV{GLEW_DIR}/build-release - $ENV{GLEW_DIR}/build-debug - - PATH_SUFFIXES - /lib - /lib64 - /lib/${GLEW_BUILD_DIR} - - DOC "The GLEW library") - -if(WIN32) - - find_file(GLEW_BINARY NAMES glew32.dll glew32s.dll - - HINTS - ${GLEW_INCLUDE_DIR}/.. - - PATHS - $ENV{GLEW_DIR} - - PATH_SUFFIXES - /bin - /bin/${GLEW_BUILD_DIR} - - DOC "The GLEW binary") - -endif() - -find_package_handle_standard_args(GLEW REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY) -mark_as_advanced(GLEW_INCLUDE_DIR GLEW_LIBRARY) diff --git a/cmake/FindGLFW.cmake b/cmake/FindGLFW.cmake deleted file mode 100644 index 0e80af2..0000000 --- a/cmake/FindGLFW.cmake +++ /dev/null @@ -1,115 +0,0 @@ - -# GLFW_FOUND -# GLFW_INCLUDE_DIR -# GLFW_LIBRARY - -# GLFW_BINARY (win32 only) - -include(FindPackageHandleStandardArgs) - - -find_path(GLFW_INCLUDE_DIR GLFW/glfw3.h - - PATHS - $ENV{GLFW_DIR} - /usr - /usr/local - /usr/include/GL - /sw - /opt/local - /opt/graphics/OpenGL - /opt/graphics/OpenGL/contrib/libglfw - - PATH_SUFFIXES - /include - - DOC "The directory where GLFW/glfw.h resides") - -find_library(GLFW_LIBRARY_RELEASE NAMES glfw3 glfw glfw3dll glfwdll - - PATHS - $ENV{GLFW_DIR} - /lib/x64 - /lib/cocoa - /usr - /usr/local - /sw - /opt/local - - # authors prefered choice for development - /build - /build-release - $ENV{GLFW_DIR}/build - $ENV{GLFW_DIR}/build-release - - PATH_SUFFIXES - /lib - /lib64 - /src # for from-source builds - - DOC "The GLFW library") - -find_library(GLFW_LIBRARY_DEBUG NAMES glfw3d glfwd glfw3ddll glfwddll - - PATHS - $ENV{GLFW_DIR} - /lib/x64 - /lib/cocoa - /usr - /usr/local - /sw - /opt/local - - # authors prefered choice for development - /build - /build-debug - $ENV{GLFW_DIR}/build - $ENV{GLFW_DIR}/build-debug - - PATH_SUFFIXES - /lib - /lib64 - /src # for from-source builds - - DOC "The GLFW library") - -set(GLFW_LIBRARIES "") -if(GLFW_LIBRARY_RELEASE AND GLFW_LIBRARY_DEBUG) - set(GLFW_LIBRARIES - optimized ${GLFW_LIBRARY_RELEASE} - debug ${GLFW_LIBRARY_DEBUG}) -elseif(GLFW_LIBRARY_RELEASE) - set(GLFW_LIBRARIES ${GLFW_LIBRARY_RELEASE}) -elseif(GLFW_LIBRARY_DEBUG) - set(GLFW_LIBRARIES ${GLFW_LIBRARY_DEBUG}) -endif() - -if(WIN32) - - find_file(GLFW_BINARY glfw3.dll - - HINTS - ${GLFW_INCLUDE_DIR}/.. - - PATHS - $ENV{GLFW_DIR} - /lib/x64 - /lib/cocoa - - PATH_SUFFIXES - /lib - /bin - - DOC "The GLFW binary") - -endif() - -if(APPLE) - set(GLFW_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX") - set(GLFW_iokit_LIBRARY "-framework IOKit" CACHE STRING "IOKit framework for OSX") -endif() - -# GLFW is required to link statically for now (no deploy specified) - -find_package_handle_standard_args(GLFW DEFAULT_MSG GLFW_LIBRARIES GLFW_INCLUDE_DIR) -mark_as_advanced(GLFW_FOUND GLFW_INCLUDE_DIR GLFW_LIBRARIES) diff --git a/cmake/FindGLM.cmake b/cmake/FindGLM.cmake deleted file mode 100644 index 8ee86a4..0000000 --- a/cmake/FindGLM.cmake +++ /dev/null @@ -1,23 +0,0 @@ - -# GLM_FOUND -# GLM_INCLUDE_DIR - -include(FindPackageHandleStandardArgs) - -FIND_PATH(GLM_INCLUDE_DIR glm/glm.hpp - - PATHS - $ENV{GLM_DIR} - /usr - /usr/local - /sw - /opt/local - - PATH_SUFFIXES - /include - - DOC "The directory where glm/glm.hpp resides.") - -find_package_handle_standard_args(GLM REQUIRED_VARS GLM_INCLUDE_DIR) - -mark_as_advanced(GLM_INCLUDE_DIR) diff --git a/cmake/FindKHR.cmake b/cmake/FindKHR.cmake new file mode 100644 index 0000000..8ae9c1e --- /dev/null +++ b/cmake/FindKHR.cmake @@ -0,0 +1,34 @@ + +# KHR::KHR +# KHR_FOUND +# KHR_INCLUDE_DIR +# KHR_LIBRARY + +include(FindPackageHandleStandardArgs) + +find_path(KHR_INCLUDE_DIR KHR/khrplatform.h + + PATHS + $ENV{KHR_DIR} + /usr + /usr/local + /sw + /opt/local + + PATH_SUFFIXES + /include + + DOC "The directory where KHR/khrplatform.h resides") + +if(KHR_INCLUDE_DIR) + + add_library(KHR::KHR INTERFACE IMPORTED) + + set_target_properties(KHR::KHR PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${KHR_INCLUDE_DIR}" + ) + +endif() + +find_package_handle_standard_args(KHR REQUIRED_VARS KHR_INCLUDE_DIR) +mark_as_advanced(KHR_INCLUDE_DIR KHR_LIBRARY) diff --git a/data/sky_triangle/cube.vert b/data/sky_triangle/cube.vert index 11bcece..286327a 100644 --- a/data/sky_triangle/cube.vert +++ b/data/sky_triangle/cube.vert @@ -5,7 +5,7 @@ in vec3 a_vertex; void main() { - vec2 uv = vec2(0, floor(gl_InstanceID)) * 2.0; + vec2 uv = vec2(0, floor(float(gl_InstanceID))) * 2.0; vec3 v = a_vertex; v.xz += uv; diff --git a/source/cgutils/CMakeLists.txt b/source/cgutils/CMakeLists.txt index 29a79aa..9c8fe00 100644 --- a/source/cgutils/CMakeLists.txt +++ b/source/cgutils/CMakeLists.txt @@ -3,7 +3,7 @@ # External dependencies # -find_package(GLM REQUIRED) +find_package(glm REQUIRED) find_package(glbinding REQUIRED) @@ -93,7 +93,6 @@ target_include_directories(${target} PUBLIC ${DEFAULT_INCLUDE_DIRECTORIES} - ${GLM_INCLUDE_DIR} INTERFACE $ @@ -111,6 +110,7 @@ target_link_libraries(${target} PUBLIC ${DEFAULT_LIBRARIES} + glm::glm glbinding::glbinding INTERFACE ) @@ -127,6 +127,7 @@ target_compile_definitions(${target} $<$>:${target_upper}_STATIC_DEFINE> ${DEFAULT_COMPILE_DEFINITIONS} GLM_FORCE_RADIANS + INTERFACE ) diff --git a/source/cgutils/include/cgutils/common.h b/source/cgutils/include/cgutils/common.h index 5443eae..80c5523 100644 --- a/source/cgutils/include/cgutils/common.h +++ b/source/cgutils/include/cgutils/common.h @@ -7,6 +7,7 @@ #pragma warning(push) #pragma warning(disable : 4201) #include +#include #pragma warning(pop) #include diff --git a/source/particles/CMakeLists.txt b/source/particles/CMakeLists.txt index 4fb37d2..f3a652f 100644 --- a/source/particles/CMakeLists.txt +++ b/source/particles/CMakeLists.txt @@ -3,8 +3,8 @@ # External dependencies # -find_package(GLM REQUIRED) -find_package(GLFW) +find_package(glm REQUIRED) +find_package(glfw3) find_package(glbinding REQUIRED) find_package(OpenMP QUIET) @@ -17,7 +17,7 @@ find_package(OpenMP QUIET) set(target particles) # Exit here if required dependencies are not met -if (NOT GLFW_FOUND) +if (NOT glfw3_FOUND) message("${target} skipped: GLFW not found") return() endif() @@ -87,8 +87,6 @@ target_include_directories(${target} ${DEFAULT_INCLUDE_DIRECTORIES} ${PROJECT_BINARY_DIR}/source/include SYSTEM - ${GLFW_INCLUDE_DIR} - ${GLM_INCLUDE_DIR} $ ) @@ -100,9 +98,10 @@ target_include_directories(${target} target_link_libraries(${target} PRIVATE ${DEFAULT_LIBRARIES} - ${GLFW_LIBRARIES} + glfw ${META_PROJECT_NAME}::cgutils glbinding::glbinding + glbinding::glbinding-aux ) diff --git a/source/particles/main.cpp b/source/particles/main.cpp index 217391d..df9320a 100644 --- a/source/particles/main.cpp +++ b/source/particles/main.cpp @@ -181,7 +181,7 @@ int main(int /*argc*/, char ** /*argv*/) glfwMakeContextCurrent(window); - glbinding::Binding::initialize(false); + glbinding::Binding::initialize(glfwGetProcAddress, false); int width, height; glfwGetFramebufferSize(window, &width, &height); diff --git a/source/particles/particles.cpp b/source/particles/particles.cpp index 4063147..0db2c20 100644 --- a/source/particles/particles.cpp +++ b/source/particles/particles.cpp @@ -17,7 +17,7 @@ #pragma warning(pop) #include -#include +#include #include @@ -156,9 +156,9 @@ void Particles::setupBuffer(const bool mapBuffer, const bool bufferStorageAvaila void Particles::initialize() { // can map and unmap buffer api be used - //m_bufferStorageAvailable = glbinding::ContextInfo::supported({ GLextension::GL_ARB_buffer_storage }); + //m_bufferStorageAvailable = glbinding::aux::ContextInfo::supported({ GLextension::GL_ARB_buffer_storage }); // can compute shader - m_computeShadersAvailable = glbinding::ContextInfo::supported({ GLextension::GL_ARB_compute_shader }); + m_computeShadersAvailable = glbinding::aux::ContextInfo::supported({ GLextension::GL_ARB_compute_shader }); // setup common state diff --git a/source/screen_aligned_triangles/CMakeLists.txt b/source/screen_aligned_triangles/CMakeLists.txt index c6c8e2d..6bc42fc 100644 --- a/source/screen_aligned_triangles/CMakeLists.txt +++ b/source/screen_aligned_triangles/CMakeLists.txt @@ -3,8 +3,8 @@ # External dependencies # -find_package(GLM REQUIRED) -find_package(GLFW) +find_package(glm REQUIRED) +find_package(glfw3) find_package(glbinding REQUIRED) @@ -22,7 +22,7 @@ if (APPLE) endif() # Exit here if required dependencies are not met -if (NOT GLFW_FOUND) +if (NOT glfw3_FOUND) message("${target} skipped: GLFW not found") return() endif() @@ -81,8 +81,6 @@ target_include_directories(${target} ${DEFAULT_INCLUDE_DIRECTORIES} ${PROJECT_BINARY_DIR}/source/include SYSTEM - ${GLFW_INCLUDE_DIR} - ${GLM_INCLUDE_DIR} $ ) @@ -94,7 +92,7 @@ target_include_directories(${target} target_link_libraries(${target} PRIVATE ${DEFAULT_LIBRARIES} - ${GLFW_LIBRARIES} + glfw ${META_PROJECT_NAME}::cgutils glbinding::glbinding ) diff --git a/source/screen_aligned_triangles/main.cpp b/source/screen_aligned_triangles/main.cpp index 19c842f..7ab9b65 100644 --- a/source/screen_aligned_triangles/main.cpp +++ b/source/screen_aligned_triangles/main.cpp @@ -111,7 +111,7 @@ int main(int /*argc*/, char ** /*argv*/) glfwMakeContextCurrent(window); - glbinding::Binding::initialize(false); + glbinding::Binding::initialize(glfwGetProcAddress, false); example.resize(canvasWidth, canvasHeight); example.initialize(); diff --git a/source/sky_triangle/CMakeLists.txt b/source/sky_triangle/CMakeLists.txt index 4213868..652c271 100644 --- a/source/sky_triangle/CMakeLists.txt +++ b/source/sky_triangle/CMakeLists.txt @@ -3,8 +3,8 @@ # External dependencies # -find_package(GLM REQUIRED) -find_package(GLFW) +find_package(glm REQUIRED) +find_package(glfw3) find_package(glbinding REQUIRED) @@ -16,7 +16,7 @@ find_package(glbinding REQUIRED) set(target sky_triangle) # Exit here if required dependencies are not met -if (NOT GLFW_FOUND) +if (NOT glfw3_FOUND) message("${target} skipped: GLFW not found") return() endif() @@ -89,8 +89,6 @@ target_include_directories(${target} ${DEFAULT_INCLUDE_DIRECTORIES} ${PROJECT_BINARY_DIR}/source/include SYSTEM - ${GLFW_INCLUDE_DIR} - ${GLM_INCLUDE_DIR} $ ) @@ -102,7 +100,7 @@ target_include_directories(${target} target_link_libraries(${target} PRIVATE ${DEFAULT_LIBRARIES} - ${GLFW_LIBRARIES} + glfw ${META_PROJECT_NAME}::cgutils glbinding::glbinding ) diff --git a/source/sky_triangle/cursor.h b/source/sky_triangle/cursor.h index 96b8190..eaa3bfb 100644 --- a/source/sky_triangle/cursor.h +++ b/source/sky_triangle/cursor.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include using msecs = std::chrono::milliseconds; class Cursor diff --git a/source/sky_triangle/main.cpp b/source/sky_triangle/main.cpp index f55b8b4..88ed283 100644 --- a/source/sky_triangle/main.cpp +++ b/source/sky_triangle/main.cpp @@ -144,7 +144,7 @@ int main(int /*argc*/, char ** /*argv*/) glfwMakeContextCurrent(window); - glbinding::Binding::initialize(false); + glbinding::Binding::initialize(glfwGetProcAddress, false); glfwGetFramebufferSize(window, &frameBufferWidth, &frameBufferHeight); scene.initialize(); diff --git a/source/sky_triangle/skybox.cpp b/source/sky_triangle/skybox.cpp index 1f689e9..45554fa 100644 --- a/source/sky_triangle/skybox.cpp +++ b/source/sky_triangle/skybox.cpp @@ -1,5 +1,5 @@ -#include "Skybox.h" +#include "skybox.h" #include #include