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