# renderer-tutorial This softwre aims to be an OpenGL renderer written in Haskell following the OpenGL tutorial by The Cherno (). ## Important notes There are some major deviations from the tutorial setup here as follows: * Code base is entirely written in Haskell, not C++ * Instead of GLFW with GLEW I use SDL2 out of familiarity * Shaders are actually split into files per type, since I'mn ot willing to unleash Haskell list magic * Since I am using the OpenGL core profile from the start there is also a vertex array creation call present from the start. * I don't have not found a suitable GUI library, so all things interactive are done through input events. I leave as many helpful comments as possible throughout the code, so feel free to peruse it. ## Mapped input events ### Keyboard To switch to a scene, press one of the buttons below, To return to the Menu, press `Escape`. ## `F1` - Colour changer Use the keys `1` through `4` to increase the values of R, G, B or A of the background colour. Press `Left Shift` and the number key to decrease it. ## `F2` - Textured quads Use keys `1` and `2` to switch between the textured quads, move them forward on the x and y axis by pressing `X` and `Y` respectively or backward using `Left Shift` and the appropriate key. ## `F3` - Textured quads batched statically Move the quads forward on the x and y axis by pressing `X` and `Y` respectively or backward using `Left Shift` and the appropriate key. ## `F4` - Textured quads batched dynamically No interaction.