GLFW template code for CS334


NOTE: This template relies on (somewhat) recent additions to
the C++ standard, specifically the std::filesystem module that
was introduced in C++17. Thus, you will need a modern compiler
that implements this standard (VS2019 or later, GCC 8.0 or
later, or a recent Apple Clang). There are workarounds if you
use an older compiler (ask on Piazza if this affects you).

Run the program from the project directory: it looks for
models/ and shaders/ relative to the working directory.



MACOS =========================

1. Install the dependencies with Homebrew.

	$ brew install glfw glm

2. Compile (the mac make is added to Makefile this time so no need to use Makefile.mac from A0, just run make;of course it would still work if you add the missing cpp files to Makefile.mac)
	$ make

3. Run
	$ ./base_glfw




LINUX =========================

1. Make sure you have all dependencies installed.

	Debian-based systems (e.g. Ubuntu):
	$ sudo apt install build-essential libglm-dev libglfw3-dev

	Arch-based systems (e.g. Manjaro):
	$ sudo pacman -Sy base-devel glm glfw

2. Compile
	$ make

3. Run
	$ ./base_glfw




WINDOWS =======================

GLM is included with the project; 
GLFW a prebuilt binary per compiler version so if the included GLFW not work for you do step 1.

1. Get GLFW, either with vcpkg
	> vcpkg install glfw3:x64-windows
   or by downloading the 64-bit Windows binaries from
   https://www.glfw.org/download.html and copying
	include\GLFW\   ->  include\GLFW\
	glfw3.lib       ->  lib\x64\
   The project already adds include\ and lib\x64\ to its search
   paths and links opengl32.lib and glfw3.lib.
2. Open base_glfw.sln in Visual Studio
3. Build & run


