From 2193cb3fc4317433491330ca58f7ff1f708f4354 Mon Sep 17 00:00:00 2001 From: zmertens Date: Wed, 8 Apr 2015 14:20:44 -0700 Subject: [PATCH 1/3] fixed issue with Linux and CMake not finding resource files when launching executable and edited README for Linux more precise building instructions --- CMakeLists.txt | 9 +++------ README.md | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 65cab3b..e0034fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,6 +115,8 @@ foreach(CHAPTER ${CHAPTERS}) target_link_libraries(${DEMO} ${LIBS}) if(WIN32) set_target_properties(${DEMO} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/${CHAPTER}") + elseif(UNIX) + set_target_properties(${DEMO} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/${CHAPTER}") endif(WIN32) # copy shader files to build directory file(GLOB SHADERS @@ -127,7 +129,7 @@ foreach(CHAPTER ${CHAPTERS}) # configure_file(${SHADER} "test") add_custom_command(TARGET ${DEMO} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${SHADER} $) elseif(UNIX) - file(COPY ${SHADER} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + file(COPY ${SHADER} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin/${CHAPTER}) endif(WIN32) endforeach(SHADER) @@ -139,8 +141,3 @@ foreach(CHAPTER ${CHAPTERS}) endforeach(CHAPTER) include_directories(${CMAKE_SOURCE_DIR}/includes) - -if(UNIX) - file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -endif(UNIX) - diff --git a/README.md b/README.md index 60404b3..563d5fe 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,4 @@ Note that you still have to manually copy the required .DLL files from the /dlls ## Linux building First make sure you have CMake, Git, and GCC by typing as root (sudo) `apt-get install g++ cmake git` and then get the required packages: -Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` +Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` . Next, run CMake (preferably CMake-gui). The source directory is LearnOpenGL and specify the build directory as LearnOpenGL/build. Creating the build directory within LearnOpenGL is important for linking to the resource files (it also will be ignored by Git). Hit configure and specify your compiler files (Unix Makefiles are recommended), resolve any missing directories or libraries, and then hit generate. Navigate to the build directory (`cd LearnOpenGL/build`) and type make in the terminal. This should generate the executables in the respective chapter folders. Note that using CodeBlocks or an IDE may have issues running the programs due to problems finding the shader and resource files, however it should still be able to generate the exectuables. From 9602f4d618761e4265d6e5d73f62d32f638638ee Mon Sep 17 00:00:00 2001 From: Zach Date: Wed, 8 Apr 2015 14:23:23 -0700 Subject: [PATCH 2/3] Update README.md added backticks to make instruction --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 563d5fe..2e7ab90 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,4 @@ Note that you still have to manually copy the required .DLL files from the /dlls ## Linux building First make sure you have CMake, Git, and GCC by typing as root (sudo) `apt-get install g++ cmake git` and then get the required packages: -Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` . Next, run CMake (preferably CMake-gui). The source directory is LearnOpenGL and specify the build directory as LearnOpenGL/build. Creating the build directory within LearnOpenGL is important for linking to the resource files (it also will be ignored by Git). Hit configure and specify your compiler files (Unix Makefiles are recommended), resolve any missing directories or libraries, and then hit generate. Navigate to the build directory (`cd LearnOpenGL/build`) and type make in the terminal. This should generate the executables in the respective chapter folders. Note that using CodeBlocks or an IDE may have issues running the programs due to problems finding the shader and resource files, however it should still be able to generate the exectuables. +Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev` . Next, run CMake (preferably CMake-gui). The source directory is LearnOpenGL and specify the build directory as LearnOpenGL/build. Creating the build directory within LearnOpenGL is important for linking to the resource files (it also will be ignored by Git). Hit configure and specify your compiler files (Unix Makefiles are recommended), resolve any missing directories or libraries, and then hit generate. Navigate to the build directory (`cd LearnOpenGL/build`) and type `make` in the terminal. This should generate the executables in the respective chapter folders. Note that using CodeBlocks or an IDE may have issues running the programs due to problems finding the shader and resource files, however it should still be able to generate the exectuables. From 049037561a42beeea290feefc64def4509bca37f Mon Sep 17 00:00:00 2001 From: zmertens Date: Sun, 12 Apr 2015 21:01:31 -0700 Subject: [PATCH 3/3] added keyboard call back to geometry shader tutorial --- .../geometry_shader_houses.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/4.advanced_opengl/9.geometry_shader/geometry_shader_houses.cpp b/src/4.advanced_opengl/9.geometry_shader/geometry_shader_houses.cpp index c758946..56dd846 100644 --- a/src/4.advanced_opengl/9.geometry_shader/geometry_shader_houses.cpp +++ b/src/4.advanced_opengl/9.geometry_shader/geometry_shader_houses.cpp @@ -11,6 +11,9 @@ // Properties GLuint screenWidth = 800, screenHeight = 600; +bool keys[1024]; +void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode); + // The MAIN function, from here we start our application and run our Game loop int main() { @@ -27,6 +30,9 @@ int main() // Options glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED); + // Set the required callback functions + glfwSetKeyCallback(window, key_callback); + // Initialize GLEW to setup the OpenGL Function pointers glewExperimental = GL_TRUE; glewInit(); @@ -81,3 +87,15 @@ int main() glfwTerminate(); return 0; } + +// Is called whenever a key is pressed/released via GLFW +void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode) +{ + if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) + glfwSetWindowShouldClose(window, GL_TRUE); + + if(action == GLFW_PRESS) + keys[key] = true; + else if(action == GLFW_RELEASE) + keys[key] = false; +}