[1:32:47][Compile and run to see our crazy w coordinate]
[1:33:56][Introduce handmade_opengl.h ]
[1:36:18][handmade_opengl.cpp: Make OpenGLInit() call OpenGLCreateProgram(), and write here docs for Header, Vertex and Fragment code]
[1:41:57][Run the game to find that we got through the compilation phase okay, and determine to enable OpenGLCreateProgram() to perform error handling]
[1:44:21][handmade_opengl.cpp: Enable OpenGLCreateProgram() to log shader info and assert on validation failure[ref
[1:56:05][@soysaucethekid][For some of the OpenGL function typedefs, you have the WINAPI entrypoint and others don't. I thought it was necessary to have it or else you get run-time errors when calling those functions (or at least I did)]
[1:57:13][@thesizik][Instead of Z-bias, why not make the sprite cards stand up at a steeper angle, and make them trapezoidal to undo the perspective foreshortening?]
[1:58:14][@bimbinel][When you started writing the placeholder shader code you mentioned something about “C++ ??? docs” that are not yet fully implemented. What is this feature exactly?[ref
[2:01:36][@pepevel][Do you think the Google's angle library (that translates OpenGL to DirectX calls) would solve the sRGB problem on your graphics card?]
[2:02:24][@gunstarrhero][Why are you downsizing 8 pixels into one using blit and not using 32 bit math and rendering 6 back into 2 with a subtract to finalize 8? 2 pass out of 8 bit back to render allows alpha on/off values and colour value attach. ( A|C| instead of colour value) where alpha belongs in blit, define each pixel]
[2:03:24][@insofaras][You can pass NULL as the length param to glShaderSource and it treats all the strings as null terminated]
[2:03:35][handmade_opengl.cpp: Make OpenGLCreateProgram() pass NULL to glShaderSource()]
[2:04:44][@fr0styninja][Can't we just adjust gamma in the shaders?]
[2:05:27][@fr0styninja][Regarding checking shaders status. Believe best practice is checking GL_COMPILE_STATUS after compiling a shader and then GL_LINK_STATUS after linking a program]
[2:06:25][@bimbinel][Are you eventually going to move shader code into the asset packs, or are you going to keep it inline?]
[2:06:45][@thesizik][Won't there still be problems if a tree is in front of a tall block, if the sprite still technically intersects the tile above?]
[2:08:04][@aceflameseer][Will you implement shader "hotloading"?]
[2:10:01][@enemymouse][Hotloading seems safest with the use of BindAttribLocation, correct, so as not to have to chase locations all over the place?]
[2:10:46][@xyane][Last time I was here you talked about the int32x types. What are your thoughts on type space vs cache utilization?]
[2:12:17][@ratchetfreak][If you recreate the program when hot reloading, you should probably free the old shaders and program]
[2:13:52][@abarishu][Are those programs cleared automatically when the game exits?]
[2:14:43][@macielda][Do you have opinions about Temporal AA?]
[2:14:52][@xyane][I assume that you dont give much thought to how hot data is? I remember a talk by Andrei that you could get a few percent speed up just from organizing the data according to hotness]
[2:17:04][@abarishu]["Unless there is a bug in the driver or in Windows..." Yeah, there are never any bugs in those]
[2:18:14][@xyane][Will you eventually be doing such a pass over Handmade Hero?]
[2:18:32][@pepevel][Should you add a \\n at the end of each line with the format you are using? Wouldn't it be parsed by OpenGL as a long comment as it is now?]
[2:19:44][@starchypancakes][Hey Casey, I got a job as a gameplay programmer! Wouldn't have happened without this stream, not in a million years]