Labs are due at the end of the next lab. Couple things that would make our demo a LOT easier to use: A function to make shaders A function print shader errors glGetShaderInfoLog(GLuint, length_of_the_log, &length_report_for_log, actual_log) glGetShaderiv(GLuint, GL_INFO_LOG_LENGTH, &where_the_length_goes) We don't have to keep allocating and deallocating memory for this - a general buffer is ok Can even be used to store shader code Will impose a maximum length! Note also: Most of these functions can fail They return error codes Could be really useful to know! scolor library, stop on compile failure Adding a few more vertices: We can make a pyramid! Note about colors: You can also just generate these In the vertex shader, with relation to x, y, and z In the fragment shader, based on something from the vertex shader This can be useful for debugging! Depth buffering: I'm not sure if I can induce a problem here glEnable and GL_DEPTH_TEST glClear and GL_DEPTH_BUFFER_BIT With GLUT, you had to turn this on for the window As far as I can tell, glfw has it on, and you can only set the number of bits From looking through here: https://www.glfw.org/docs/latest/window_guide.html Note about lighting: We'll do it in the fragment shader, at some point Not right away! Lots of stuff to cover first RTX 3090 demos are happening, release this month, expensive