[video output=day245 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Using wglChoosePixelFormatARB" vod_platform=youtube id=SvlirEF-R-4 annotator=Miblo]
[0:47][Blackboard: PBO's (Pixel Buffer Objects)]
[2:51][Blackboard: Virtual Addresses, Physical Addresses and the TLB]
[4:59][Blackboard: The GPU does not have access to the TLB]
[6:20][Blackboard: How the GPU transfers the textures into its memory]
[12:52][Load the code and set the stage for the day]
[14:56][win32_handmade.cpp: Move wglGetProcAddress until after we have created a Context]
[17:25][win32_handmade.cpp: Nullify the Context and try setting the PIXELFORMATDESCRIPTOR again]
[18:49][Debugger: Step into wglMakeCurrent]
[21:25][win32_handmade.cpp: Try destroying the Context a little later and then step through again to see if the pixel format got successfully changed]
[24:08][win32_handmade.cpp: Introduce LoadWGLExtensions]
[25:08][Crash 4coder and investigate what happened]
[28:39]["Minidump with heap, bro"][quote 398]
[29:07][A few words on the helpfulness of submitting crash reports to developers]
[30:09][win32_handmade.cpp: Introduce Win32LoadWGLExtensions]
[32:44][win32_handmade.cpp: Introduce Win32ChoosePixelFormat]
[41:24][win32_handmade.cpp: Call Win32LoadWGLExtensions in Win32InitOpenGL and test to see whether or not we are able to get a ModernContext]
[44:53][Debugger: Step into Win32LoadWGLExtensions and follow what happens]
[46:25][win32_handmade.cpp: Revert to the old way of creating two DCs]
[48:11][Debugger: See if we have any better luck with that][quote 399]
[48:56][Moment of realisation: We forgot to call Win32SetPixelFormat on WindowDC]
[49:56][Debugger: Step into Win32SetPixelFormat and find that it works]
[52:12][win32_handmade.cpp: Use WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB]
[53:48][Run the game...]
[54:47][...and see stuff that we cannot see on stream][quote 400]
[55:37][win32_handmade.cpp: Set WGL_DOUBLE_BUFFER_ARB to GL_FALSE for the benefit of the stream]
[56:03][Run the game for us all to see]
[57:26][Q&A][:speech]
[57:40][@cubercaleb][Aren't pretty much all games double buffered? If so, why doesn't OBS have problems capturing game footage for other games?]
[58:55][@longboolean][Does this mean Handmade Hero cannot be let's played?]
[59:34][@nxsy][There's a scene switcher plugin in OBS]
[1:00:15][@cubercaleb][Shouldn't we also call GetPixelFormat to make sure we got what we wanted?]
[1:02:21][@cubercaleb][So for games that is fine, but for something like photoshop I am assuming you would have to care?]
[1:04:37][@laneatomic][Have you started thinking about cross-platform support? I've missed quite a bit of the stream]
[1:05:48][@ttbjm][Is the GPU doing pre-multiplied alpha?]
[1:08:34][@cixidota][Are you staying with immediate mode?]
[1:09:06][@dudeinbasement1][Could we do sRGB with a shader and not with glEnable?]
[1:10:34][@erdomina][Are we still going to do work on the debug UI?]
[1:11:07][@cubercaleb][Every time you go to answer a question and the cutscene loops, a pink screen appears]
[1:12:08][Wrap it up][:speech]
[/video]
