From 26025f5bc9c619f1181cfd1c8761f30bbb1ae73d Mon Sep 17 00:00:00 2001 From: Matt Mascarenhas Date: Sun, 12 Aug 2018 17:53:07 +0100 Subject: [PATCH] Annotate hero/code470 --- cmuratori/hero/code/code470.hmml | 53 ++++++++++++++++++++++++++++++++ cmuratori/hero/code/code471.hmml | 2 ++ 2 files changed, 55 insertions(+) create mode 100644 cmuratori/hero/code/code470.hmml create mode 100644 cmuratori/hero/code/code471.hmml diff --git a/cmuratori/hero/code/code470.hmml b/cmuratori/hero/code/code470.hmml new file mode 100644 index 0000000..6552136 --- /dev/null +++ b/cmuratori/hero/code/code470.hmml @@ -0,0 +1,53 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 1)" vod_platform=youtube id=q6VHxmGoAuc annotator=Miblo] +[0:00][][:speech][quote 624] +[0:12][Set up for the special two-stream day separating out and finalising the renderer for use in a new project][:api :speech] +[4:44][Determine to perform Snuffleupagus-Oriented Programming, creating our dream sample program to drive :API development][:speech] +[6:26][Add a renderer test bed compilation line to build.bat][:admin] +[8:34][Create win32_renderer_test.cpp as a trimmed down version of [~hero Handmade Hero]'s Windows :"platform layer"[ref + site=MSDN + page="WinMain entry point" + url=https://msdn.microsoft.com/en-us/library/windows/desktop/ms633559.aspx]] +[19:43][Create handmade_types.h, replacing global_variable with global][:language] +[24:10][:Run the game just as normal] +[24:18][Set up new win32_renderer_test project][:admin] +[27:51][:Run Handmade Hero Renderer Test to see nothing happen, as expected] +[28:04][Incorporate a trimmed down Win32ProcessPendingMessages() in to win32_renderer_test.cpp][:"platform layer"] +[29:22][:Run the Renderer Test and successfully resize and close the window][:"platform layer"] +[29:36][Create win32_handmade_opengl.cpp to consolidate all our OpenGL code][:hardware :rendering :"platform layer"] +[39:11][Temporarily make win32_renderer_test.cpp use stdio.h string functions in place of the game's custom ones[ref + site=MSDN + page="sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l" + url=https://msdn.microsoft.com/en-us/library/ce3zzk1k.aspx]][:"string manipulation"] +[43:16][Continue to consolidate our types and OpenGL code][:hardware :language :rendering :"platform layer"] +[48:18][Include handmade_math.h and handmade_intrinsics.h in win32_renderer_test.cpp][:admin] +[53:05][Create handmade_software_renderer.cpp to contain all the software renderer code][:admin] +[56:33][Rename our render files in a more organised fashion][:admin] +[58:36][Merge handmade_render.{cpp,h} and handmade_render_group.{cpp,h} into handmade_renderer.{cpp,h}][:admin] +[1:05:09][:Run the game okay] +[1:05:26][Pull out the parts of the renderer that are wedded to the :"platform layer"] +[1:11:51][Temporarily make win32_renderer_test.cpp use further stdio.h string functions in place of the game's custom ones[ref + site=MSDN + page="isspace, iswspace, _isspace_l, _iswspace_l" + url=https://msdn.microsoft.com/en-us/library/y13z34da.aspx]][:"string manipulation"] +[1:16:39][Consider cleaning up the lighting box data][:"platform layer"] +[1:21:52][Return from OBS crash][:admin :speech] +[1:22:09][Move the LightBoxes from game_render_commands to render_group and relieve the operating system of allocating them for us][:memory :"platform layer"] +[1:31:43][Prevent PushLighting() from being called twice, also moving handmade_render.{cpp,h} and handmade_render_group.{cpp,h} into the "retired" directory][:admin :memory] +[1:35:12][:Run the game to see the :lighting working just fine][:rendering] +[1:35:48][Determine to generalise texture management][:api :rendering :speech] +[1:37:29][Change win32_renderer_test.cpp to be OpenGL only][:hardware :rendering] +[1:41:04][Set up to test the OpenGL :memory allocation][:speech] +[1:42:32][Enable win32_renderer_test.cpp to allocate OpenGL buffers][:memory] +[1:46:16][Step through win32_renderer_test.cpp to see that all is okay][:hardware :rendering :run] +[1:49:45][Make win32_renderer_test.cpp call PushFullClear() and hit the situation where we need to talk to the renderer][:hardware :rendering] +[1:52:42][Q&A][:speech] +[1:53:24][@jim0_o][Q: Are you going to check the recording that ended in an app crash?] +[1:54:17][@genos3][Q: Is Vulkan worthwhile for the performance gain over OpenGL?][:api] +[1:55:32][@sratke][Q: Will you take this opportunity to implement the d3d backend?][:api] +[1:56:06][@frostyninja][How long is lunch break?] +[1:56:23][@genos3][Q: Are there practical solutions to reducing the fill rate in the software renderer?][:rendering] +[1:56:59][@uplinkcoder][Q: Isn't every graphics :API just a middleman?] +[1:59:04][@joesweeney][Q: How do you recommend a beginner get better at writing platform layers? Is the only way to just write a bunch of them to figure out the common patterns?][:"platform layer"] +[1:59:24][@Rounin][Q: I'm one of the Linux people. Please don't give us Vulkan][:api] +[2:00:53][Close it down for a timezone-appropriate meal][:speech] +[/video] diff --git a/cmuratori/hero/code/code471.hmml b/cmuratori/hero/code/code471.hmml new file mode 100644 index 0000000..0f9eb89 --- /dev/null +++ b/cmuratori/hero/code/code471.hmml @@ -0,0 +1,2 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Separating the Renderer Completely (Part 1)" vod_platform=youtube id=RS4kudtk0Xw annotator=] +[/video] \ No newline at end of file