64 lines
5.1 KiB
Plaintext
64 lines
5.1 KiB
Plaintext
|
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Clearing Out Pending GitHub Bugs" vod_platform=youtube id=pqOlYhlfxSE annotator=Miblo]
|
||
|
[0:10][Set the stage for clearing out pending GitHub bugs[ref
|
||
|
site="GitHub"
|
||
|
page="HandmadeHero/cpp Issues"
|
||
|
url="https://github.com/HandmadeHero/cpp/issues"]]
|
||
|
[0:58][ctray.cpp: Fix "enterring" typo]
|
||
|
[2:17][readme.txt: Update links to point to the new locations]
|
||
|
[5:05]["You never upgrade anything during the development of the game"][quote 540]
|
||
|
[7:10][Determine to enable the game to compile without warnings or errors in VS 2015]
|
||
|
[7:45][simple_preprocessor.cpp: Make ParseMember() cast everything to int]
|
||
|
[10:00][On the two different versions of the CRT's maths routines]
|
||
|
[11:42][handmade_intrinsics.h: Make AbsoluteValue() call fabsf()]
|
||
|
[12:16][handmade_platform.h: Determine to enable AlignPow2() to compile without warning]
|
||
|
[16:54][handmade_platform.h: Make AlignPow2() add (Value-Value) to force integral promotion to the size of Value]
|
||
|
[18:37][handmade_entity.cpp: Make DEBUGPickEntity() cast Entity->ID.Value to a umm before converting to pointer]
|
||
|
[19:29][win32_handmade.cpp: Make WinMain() cast the GlobalBackbuffer values to u32]
|
||
|
[19:53][Fix many "hides function parameter" and "hides previous local declaration" warnings]
|
||
|
[33:50][Close that issue and request help for the CLANG compatibility issue]
|
||
|
[37:12][Determine to reduce the PeekMessage latency]
|
||
|
[38:11][On message queues and how Windows implements theirs]
|
||
|
[43:37][On PeekMessage()]
|
||
|
[47:36][win32_handmade.cpp: Enable Win32ProcessPendingMessages() to make PeekMessage() circumvent WM_PAINT and WM_MOUSEMOVE]
|
||
|
[51:43][Run the game to see that it all still works and close that issue]
|
||
|
[53:54][Determine to fix the PushClipRect and glScissor issue]
|
||
|
[54:30][win32_handmade.cpp: Pass a lower resolution to Win32ResizeDIBSection() and run the game to see that we're in bad shape]
|
||
|
[56:25][On food and feeding the world][quote 541]
|
||
|
[59:48][win32_handmade.cpp: Switch to the software renderer and run the game to determine that the problem is only in the hardware renderer]
|
||
|
[1:01:08][Compare the code for the software and hardware renderers]
|
||
|
[1:06:32][Run the game in windowed mode, and resize it to exhibit the bug]
|
||
|
[1:09:03][Consult the glScissor documentation[ref
|
||
|
site="Khronos"
|
||
|
page="glScissor"
|
||
|
url="https://www.khronos.org/opengles/sdk/docs/man/xhtml/glScissor.xml"]]
|
||
|
[1:09:59][Consult the glViewPort documentation[ref
|
||
|
site="docs.GL"
|
||
|
page="glViewPort"
|
||
|
url="http://docs.gl/gl2/glViewport"] and endeavour to understand the difference between the renderers]
|
||
|
[1:21:23][Run the game and eyeball how the cliprect is scaling]
|
||
|
[1:25:04][handmade_opengl.cpp: Determine to enable OpenGLRenderCommands() to perform the glScissor() in the correct space]
|
||
|
[1:27:43][Blackboard: glScissor coords]
|
||
|
[1:29:03][Blackboard: Normalized device coordinates]
|
||
|
[1:31:02][Blackboard: Calculating our correct glScissor coordinates]
|
||
|
[1:33:30][handmade_opengl.cpp: Enable OpenGLRenderCommands() to correctly scale the region passed to glScissor()]
|
||
|
[1:39:52][Run the game to see that the hardware renderer's cliprect is now correct, and close that issue]
|
||
|
[1:42:06][handmade_render.cpp: Enable DrawRectangle() to AND the StartClipMask and EndClipMask together for rectangles <= 3 pixels wide]
|
||
|
[1:48:02][handmade_entity.cpp: Toggle off rendering of Traversables, run the game and see the effects of the DrawRectangle() change]
|
||
|
[1:52:35][handmade_render.cpp: Change DrawRectangle() to test == 4]
|
||
|
[1:54:17][Recompile and run to see that the drawing of narrow rectangles is now correct]
|
||
|
[1:55:10][handmade_render.cpp: Consider removing the ClipMask from DrawRectangleQuickly(), before closing the issue with it still intact]
|
||
|
[1:58:25][Reflect on the day's work]
|
||
|
[1:58:58][Q&A]
|
||
|
[1:59:11][@kknewkles][It's rolled over 'round these parts already so Happy New 2017, everyone]
|
||
|
[1:59:35][@Jim0_o][In the compression code there is an assert(LiteralCount == 0) it seems to fire on some files, should the literal buffer be flushed after the loop in case it didn't end on a run?]
|
||
|
[2:00:55][simple_compressor.cpp: Enable RLECompress() and LZCompress() to correctly flush the literal buffer]
|
||
|
[2:03:06][@thesizik][Are you going to consider resizing the debug display for lower display resolutions, or would that not really be worthwhile since it's not part of the final game?]
|
||
|
[2:07:50][@phillip_green][A wee bit off-topic, but have you ever considered setting up a green screen / chromakey for your stream?]
|
||
|
[2:08:49][@tukimitzoo][What are your 2017 resolutions for Handmade Hero?]
|
||
|
[2:09:22][@mtsmox][Shouldn't the cliprect only be rescaled at the same point that the offset is done? Only the main buffer should have it]
|
||
|
[2:10:36][@hayai][No high production values? Stream looks good and there's a frame around the scare-cam and a nice little fade-in timer. That seems like more effort than a lot of what I see]
|
||
|
[2:12:34][@thezoq2][So that black box is a window, not just an overlay in OBS?]
|
||
|
[2:14:04][@jessermeyer][Please consider demonstrating NVidia's cmdlist extension as a way of thinking about modern graphics dev]
|
||
|
[2:15:10][Close it down with a glimpse into 2017]
|
||
|
[/video]
|