Example code for the OpenGL Shading Language Cookbook
Switch branches/tags
Nothing to show
Clone or download
Latest commit 77bd3ca Jun 9, 2018
Failed to load latest commit information.
chapter01 Fixes for MSVC May 3, 2018
chapter02 Cleanup: May 3, 2018
chapter03 Cleanup: May 3, 2018
chapter04 Cleanup: May 3, 2018
chapter05 Cleanup: May 3, 2018
chapter06 Cleanup: May 3, 2018
chapter07 Fixes for MSVC May 3, 2018
chapter08 Fixes for MSVC May 3, 2018
chapter09 Fixes for MSVC May 3, 2018
chapter10 Fixes for MSVC May 3, 2018
ingredients Fixes for MSVC May 3, 2018
media Cleanup: May 3, 2018
.gitignore Cleanup: May 3, 2018
CMakeLists.txt Fixes for MSVC May 3, 2018
LICENSE Create LICENSE Jan 1, 2018
README.md Update README Jun 9, 2018


Example code from the OpenGL Shading Language Cookbook

🎉 NEW Coming soon: 3rd Edition!!! 🎉

The example code from the OpenGL Shading Language Cookbook, by David Wolff and published by Packt Publishing, 2013 (ISBN: 9781782167020).

Recent changes:

  • Most examples now run on MacOS!
  • CMake build now uses package config files when finding GLM and GLFW. This should make for a more streamlined configuration. Use CMAKE_PREFIX_PATH to point CMake to your installs.
  • Examples now properly support high-density displays.


To compile these examples, you'll need the following:

  • The GLM Mathematics Library version 0.9.6 or later. Note that versions prior to 0.9.6 may not work properly because of a switch from degrees to radians. GLM 0.9.5 will work, but you'll need to add #define GLM_FORCE_RADIANS prior to including the glm header files.
  • GLFW version 3.0 or later.

Compiling the examples

The example code builds with CMake. Note that the examples for Chapter 10 will not function on MacOS due to lack of support for compute shaders on that platform.

  1. Install GLFW by following the instructions on their web site.
  2. Install the latest version of GLM. Note that for CMake to find GLM correctly, you need to run the install "build" (e.g. make install) or install GLM from your favorite package manager. Otherwise, the CMake config files will not be created/available.
  3. Download this example code from github, or clone using git.
  4. Run cmake. If cmake has difficulties finding the GLFW or GLM installations, set the variable CMAKE_PREFIX_PATH to help cmake find them.
  5. Compile by running make.

Any problems, create an issue on github.

Tips for compiling for Windows with Visual Studio

  • Use the Visual Studio target in CMake: -G "Visual Studio...", open the Visual Studio solution. You should see one project per chapter.
  • Each chapter requires a command line argument to choose a recipe. When running in VS, be sure to set the 'Command Argument' under 'Properties' for the appropriate recipe.

OpenGL Function Loading

An OpenGL header file and a function loader for a 4.3 core profile are included with this project. They were generated using GLAD. This loader should also work on MacOS under a 4.1 core profile, but of course not all functions will load.

The code has been tested with OpenGL 4.3 on Windows/Linux and OpenGL 4.1 on MacOS.