[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]