[video output=day242 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="OpenGL Context Escalation" vod_platform=youtube id=99kIYIEzbpc annotator=Miblo]
[0:08][Recap and set the stage for the day]
[3:41][Run the game and point out that we experience a pause while textures get loaded in]
[7:19][win32_handmade.cpp: Clean up and consult the TODO list]
[7:36][win32_handmade.cpp: On checking for OpenGL extension strings]
[9:07][handmade_opengl.cpp: Move the GL_ defines in from win32_handmade.cpp and introduce OpenGLGetInfo]
[17:31][Run the game and inspect our opengl_info]
[19:03][handmade_opengl.cpp: Parse the available extensions and compare them with our requirements]
[22:32][handmade.h: Write a new version of StringsAreEqual]
[23:31][handmade_opengl.cpp: Use StringsAreEqual to continue with the extension comparison]
[29:17][Debugger: Inspect the Extensions string]
[33:14][Debugger: Run through OpenGLGetInfo and see what the parser is doing]
[35:06][handmade_opengl.cpp: Introduce OpenGLInit]
[37:06][Context escalation]
[42:19][Internet: WGL_ARB_create_context[ref
    site="OpenGL"
    page="WGL_ARB_create_context"
    url="https://www.opengl.org/registry/specs/ARB/wgl_create_context.txt"]]
[44:53][win32_handmade.cpp: typedef and use wglCreateContextAttribsARB to check which OpenGL context we're on]
[53:33][Debugger: Step into wglCreateContextAttribsARB and see if it works]
[59:33]["And now it's like Mr. Doesn't-Want-To-Do-That-For-Me"][quote 366]
[1:00:04][handmade_opengl.cpp: #define GL_SHADING_LANGUAGE_VERSION and use it in OpenGLGetInfo]
[1:01:27][Debugger: Step into OpenGLGetInfo and inspect the ShadingLanguageVersion]
[1:02:04][Q&A][:speech]
[1:02:46][@Ikkir_Isth][Looking at winXP and cards, looks like they need GL 2.0 as the 'max' they can support, more or less (if you use era cards)]
[1:03:23][@Razoul05][In the function OpenGLGetInfo why did you do an "#if 0 ... #else ... #endif" rather than just commenting it out?]
[1:03:52][@insofaras][For sRGB do you also have to set WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB when you choose the pixel format or is that something different?[ref
    site="OpenGL"
    page="ARB_framebuffer_sRGB"
    url="https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt"]]
[1:09:22][@Kelimion][From connor_rentz (just left): What is umm data type and what is it used for? I will watch the recording]
[1:09:47][@Razoul05][Yes, that's what I was talking about. I didn't notice you did more there]
[1:09:51][@Cynokron][What's the difference between sRGB and RGBA?]
[1:10:19][Blackboard: sRGB]
[1:16:58][@andsz_][I just checked my Dell monitor. It has Adobe RGB as well as sRGB modes and they look fairly different. So what's the better one?]
[1:18:34][@garlandobloom][I've heard a lot of monitors aren't even really 32-bit color. Sometimes less with dithering in the monitor]
[1:19:18][Shut down now][:speech]
[/video]
