hero/code and chat013: Miscellaneous fixes
This commit is contained in:
parent
6ea1be4b70
commit
eb4548b401
|
@ -82,7 +82,7 @@
|
||||||
[4:09:39][@user549][Maybe the smallest crt ever[ref
|
[4:09:39][@user549][Maybe the smallest crt ever[ref
|
||||||
site="suckless"
|
site="suckless"
|
||||||
page="suckless C compiler/crt.s"
|
page="suckless C compiler/crt.s"
|
||||||
url="http://git.suckless.org/scc/tree/crt/amd64-sysv-linux/crt.s"] ]
|
url="http://git.suckless.org/scc/tree/crt/amd64-sysv-linux/crt.s"]]
|
||||||
[4:10:02][@filiadelski][Is there a low-level reason you don't like virtual functions? My understanding of them is that they're basically just function pointers in a table that is dereferenced]
|
[4:10:02][@filiadelski][Is there a low-level reason you don't like virtual functions? My understanding of them is that they're basically just function pointers in a table that is dereferenced]
|
||||||
[4:11:45][@ingenero][First of all, thank you so much for this stream! At the beginning you mentioned you hadn't done some of these things for a while. My question is, in what context did you originally learn and apply all this information? It seems like spending time at work exploring this may be considered time taken away from actually being "productive". Is it just something you have to learn on your own time?]
|
[4:11:45][@ingenero][First of all, thank you so much for this stream! At the beginning you mentioned you hadn't done some of these things for a while. My question is, in what context did you originally learn and apply all this information? It seems like spending time at work exploring this may be considered time taken away from actually being "productive". Is it just something you have to learn on your own time?]
|
||||||
[4:15:07][Wrap it up there]
|
[4:15:07][Wrap it up there]
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
[1:17:53][How did you setup Visual Studio to have that black theme?]
|
[1:17:53][How did you setup Visual Studio to have that black theme?]
|
||||||
[1:18:22][During coding is it easy to discipline yourself to make the code as clean and tidy as possible. \[...\] Do you think this is good in general or could it backfire?]
|
[1:18:22][During coding is it easy to discipline yourself to make the code as clean and tidy as possible. \[...\] Do you think this is good in general or could it backfire?]
|
||||||
[1:22:20][Would there be a way to build your platform dependant code in a separate entity in order to allow you to use it in the future?]
|
[1:22:20][Would there be a way to build your platform dependant code in a separate entity in order to allow you to use it in the future?]
|
||||||
[1:23:11][Will you be developing your own implementation of strings? (No) ]
|
[1:23:11][Will you be developing your own implementation of strings? (No)]
|
||||||
[1:23:52][Does the unity build approach work with parallel compilation?]
|
[1:23:52][Does the unity build approach work with parallel compilation?]
|
||||||
[1:26:04][Do you feel it is necessary to make a flowchart before coding, or do you go with the flow?]
|
[1:26:04][Do you feel it is necessary to make a flowchart before coding, or do you go with the flow?]
|
||||||
[1:27:18][Why the #define part for the header file (include guards)]
|
[1:27:18][Why the #define part for the header file (include guards)]
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
[31:31][Addressing bug]
|
[31:31][Addressing bug]
|
||||||
[35:00][Compiling and running successfully]
|
[35:00][Compiling and running successfully]
|
||||||
[35:30][Observing weird gaps in sound]
|
[35:30][Observing weird gaps in sound]
|
||||||
[35:55][Not tracking frame time correctly ]
|
[35:55][Not tracking frame time correctly]
|
||||||
[38:30][Addressing the weird gaps]
|
[38:30][Addressing the weird gaps]
|
||||||
[50:00][Running new code for debug diagram. Sound card read seems unreliable]
|
[50:00][Running new code for debug diagram. Sound card read seems unreliable]
|
||||||
[53:00][Sound stream has to be continuous. Figuring out how far ahead of the current play cursor we should be writing]
|
[53:00][Sound stream has to be continuous. Figuring out how far ahead of the current play cursor we should be writing]
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
[video output=day038 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw]
|
[video output=day038 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw]
|
||||||
[0:00:00][Prestream stuff]
|
[0:00:00][Prestream stuff]
|
||||||
[0:09:18][Intro and welcome]
|
[0:09:18][Intro and welcome]
|
||||||
[0:10:52][Where we left of from last time]
|
[0:10:52][Where we left off from last time]
|
||||||
[0:11:17][Fixing the hero's color]
|
[0:11:17][Fixing the hero's color]
|
||||||
[0:16:16][Figuring out what the shift values are]
|
[0:16:16][Figuring out what the shift values are]
|
||||||
[0:18:48][Bitscanforward]
|
[0:18:48][Bitscanforward]
|
||||||
[0:27:53][Renaming bitscanforward to FindLeastSignificantSetBit]
|
[0:27:53][Renaming bitscanforward to FindLeastSignificantSetBit]
|
||||||
[0:29:36][The intrinsics thing]
|
[0:29:36][The intrinsics thing]
|
||||||
[0:30:16][Finding out what compiler we're on]
|
[0:30:16][Finding out what compiler we're on]
|
||||||
[0:31:27][Making a comprimise: Allowing the intrinsics file access to the platform layer]
|
[0:31:27][Making a compromise: Allowing the intrinsics file access to the platform layer]
|
||||||
[0:33:20][Determining what compiler is being used]
|
[0:33:20][Determining what compiler is being used]
|
||||||
[0:41:20][Simple version of using the alpha channel]
|
[0:41:20][Simple version of using the alpha channel]
|
||||||
[0:45:20][Alpha as an opacity value]
|
[0:45:20][Alpha as an opacity value]
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
[0:50:04][Krita crashes..]
|
[0:50:04][Krita crashes..]
|
||||||
[0:50:47][Blackboard session explaining alpha blending using the background value]
|
[0:50:47][Blackboard session explaining alpha blending using the background value]
|
||||||
[0:51:01]['Deriving' the formula for a linear blend]
|
[0:51:01]['Deriving' the formula for a linear blend]
|
||||||
[0:58:02][The cannonical form of a linear blend]
|
[0:58:02][The canonical form of a linear blend]
|
||||||
[0:58:45][How the 't' works in the linear blend formula]
|
[0:58:45][How the 't' works in the linear blend formula]
|
||||||
[1:00:35][Implementing the floating point version of linear blend]
|
[1:00:35][Implementing the floating point version of linear blend]
|
||||||
[1:06:55][Drawing the herohead at the location of the player]
|
[1:06:55][Drawing the herohead at the location of the player]
|
||||||
|
@ -38,5 +38,5 @@
|
||||||
[1:34:36][Is the large VirtualAlloc() at the beginning similar to Linux mmap()?]
|
[1:34:36][Is the large VirtualAlloc() at the beginning similar to Linux mmap()?]
|
||||||
[1:35:51][What bitvalue is 50% brightness?]
|
[1:35:51][What bitvalue is 50% brightness?]
|
||||||
[1:37:34][Does the display bitmap operation actually do anything with the alpha channel?]
|
[1:37:34][Does the display bitmap operation actually do anything with the alpha channel?]
|
||||||
[1:37:58][The solid curve on Wikipedias gamma correction is the linear space intensity. Should be what you're looking for.]
|
[1:37:58][The solid curve on Wikipedia's gamma correction is the linear space intensity. Should be what you're looking for.]
|
||||||
[/video]
|
[/video]
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
[0:16:20][Tackeling SetCursor]
|
[0:16:20][Tackeling SetCursor]
|
||||||
[0:17:45][Spy++]
|
[0:17:45][Spy++]
|
||||||
[0:21:45][LoadCursor()]
|
[0:21:45][LoadCursor()]
|
||||||
[0:25:50][Setting up dynamically controled cursor visability]
|
[0:25:50][Setting up dynamically controlled cursor visibility]
|
||||||
[0:34:12][Trying to figure out how to stop the 'loading' cursor]
|
[0:34:12][Trying to figure out how to stop the 'loading' cursor]
|
||||||
[0:37:53][Fullscreen support[ref
|
[0:37:53][Fullscreen support[ref
|
||||||
site="The Old New Thing"
|
site="The Old New Thing"
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
url="http://blogs.msdn.com/b/oldnewthing/archive/2010/04/12/9994016.aspx"]]
|
url="http://blogs.msdn.com/b/oldnewthing/archive/2010/04/12/9994016.aspx"]]
|
||||||
[0:51:09][Discussion on his method of going fullscreen in Windows]
|
[0:51:09][Discussion on his method of going fullscreen in Windows]
|
||||||
[0:54:45][Going over the notes]
|
[0:54:45][Going over the notes]
|
||||||
[0:55:30]['Hackey' way to fill the entire screen with the game]
|
[0:55:30]['Hacky' way to fill the entire screen with the game]
|
||||||
[0:58:50][Q&A][:speech]
|
[0:58:50][Q&A][:speech]
|
||||||
[0:59:57][You said you want your artist to leave an alpha apron around your bitmaps. Why is that?]
|
[0:59:57][You said you want your artist to leave an alpha apron around your bitmaps. Why is that?]
|
||||||
[1:02:15][Sour trolli worms or Haribo gummy bears?]
|
[1:02:15][Sour trolli worms or Haribo gummy bears?]
|
||||||
|
|
|
@ -31,13 +31,13 @@
|
||||||
[1:11:27][Will there be a minimum distance to the wall?]
|
[1:11:27][Will there be a minimum distance to the wall?]
|
||||||
[1:12:03][Will computing a vector where the player will stop just before the wall solve the sticking?]
|
[1:12:03][Will computing a vector where the player will stop just before the wall solve the sticking?]
|
||||||
[1:13:13][Additional explanation to the bounce vector calculation]
|
[1:13:13][Additional explanation to the bounce vector calculation]
|
||||||
[1:19:25][Is there a way to speed up the DrawBitmap -code?]
|
[1:19:25][Is there a way to speed up the DrawBitmap code?]
|
||||||
[1:21:15][Suggestion to remove reblitting the background to improve performance]
|
[1:21:15][Suggestion to remove reblitting the background to improve performance]
|
||||||
[1:22:08][Stream notes Casey drew the cos/sin triangle wrong]
|
[1:22:08][Stream notes Casey drew the cos/sin triangle wrong]
|
||||||
[1:23:39][A wish to mention formal keywords to help people look things up]
|
[1:23:39][A wish to mention formal keywords to help people look things up]
|
||||||
[1:24:53][Was the Witness collision trick to try maintain the distance traveled?]
|
[1:24:53][Was the Witness collision trick to try maintain the distance traveled?]
|
||||||
[1:25:21][Why does wall bouncing not seem to cause sticking, but sliding does?]
|
[1:25:21][Why does wall bouncing not seem to cause sticking, but sliding does?]
|
||||||
[1:27:06][Stream mentions KhanAchademy for learning math]
|
[1:27:06][Stream mentions KhanAcademy for learning math]
|
||||||
[1:27:20][Will the rendering code be able to squash bitmaps?]
|
[1:27:20][Will the rendering code be able to squash bitmaps?]
|
||||||
[1:28:01][Could you/would you benefit from unrolling the collision loop ... ?]
|
[1:28:01][Could you/would you benefit from unrolling the collision loop ... ?]
|
||||||
[/video]
|
[/video]
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
[0:00:00][Intro and welcome]
|
[0:00:00][Intro and welcome]
|
||||||
[0:01:25][Where we were..]
|
[0:01:25][Where we were..]
|
||||||
[0:01:50][Addressing a bug that was found by the forums]
|
[0:01:50][Addressing a bug that was found by the forums]
|
||||||
[0:04:30][Thinking about how to handle imput]
|
[0:04:30][Thinking about how to handle input]
|
||||||
[0:06:24][Which controller maps to which character?]
|
[0:06:24][Which controller maps to which character?]
|
||||||
[0:09:04][How we're going to handle this problem]
|
[0:09:04][How we're going to handle this problem]
|
||||||
[0:10:36][Maping a controller to a character]
|
[0:10:36][Mapping a controller to a character]
|
||||||
[0:11:36][Pulling player info into the 'entity' structure to support multiple players]
|
[0:11:36][Pulling player info into the 'entity' structure to support multiple players]
|
||||||
[0:12:50][Modifying game_input to allow for multiple players]
|
[0:12:50][Modifying game_input to allow for multiple players]
|
||||||
[0:14:31][Changing his mind about how to handle this]
|
[0:14:31][Changing his mind about how to handle this]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
[0:00:25][Owl of Shame: Single producer/Multiple consumer issue]
|
[0:00:25][Owl of Shame: Single producer/Multiple consumer issue]
|
||||||
[0:03:33][InterlockedCompareExchange]
|
[0:03:33][InterlockedCompareExchange]
|
||||||
[0:04:20][Fixing our shame]
|
[0:04:20][Fixing our shame]
|
||||||
[0:06:19][Siumplifying more with the API change]
|
[0:06:19][Simplifying more with the API change]
|
||||||
[0:09:00][Implementing the multithreading API]
|
[0:09:00][Implementing the multithreading API]
|
||||||
[0:12:42][Piping the work queue through]
|
[0:12:42][Piping the work queue through]
|
||||||
[0:14:33][Global defines for AddEntry and CompleteAllWork]
|
[0:14:33][Global defines for AddEntry and CompleteAllWork]
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
[1:16:10][@pragmascrypt][Is the WeShouldSleep still right after you changed the if condition?]
|
[1:16:10][@pragmascrypt][Is the WeShouldSleep still right after you changed the if condition?]
|
||||||
[1:17:55][@manicthenobody][Why do you use #if 0 instead of // or /*?]
|
[1:17:55][@manicthenobody][Why do you use #if 0 instead of // or /*?]
|
||||||
[1:19:09][@nightbasilisk][Can you show 4k?]
|
[1:19:09][@nightbasilisk][Can you show 4k?]
|
||||||
[1:19:47][gasto5 Q: Is multithreaded code less reliable than singlethreaded code?]
|
[1:19:47][@gasto5][Q: Is multithreaded code less reliable than singlethreaded code?]
|
||||||
[1:20:37][@noxy_key][So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.]
|
[1:20:37][@noxy_key][So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.]
|
||||||
[1:20:56][Power cord bumped, computer shut down]
|
[1:20:56][Power cord bumped, computer shut down]
|
||||||
[1:24:20][@noxy_key][(once more) So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.]
|
[1:24:20][@noxy_key][(once more) So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.]
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
[29:13][handmade_debug.cpp: Initialise that GroupStack in debug_variable_definition_context]
|
[29:13][handmade_debug.cpp: Initialise that GroupStack in debug_variable_definition_context]
|
||||||
[31:07][handmade_debug_variables.h: Continue on cleaning up compile errors]
|
[31:07][handmade_debug_variables.h: Continue on cleaning up compile errors]
|
||||||
[33:05][Blackboard: Traversing trees using pointers and then stacks]
|
[33:05][Blackboard: Traversing trees using pointers and then stacks]
|
||||||
[38:08][handmade_debug.cpp: Add *Stack to WriteHandmadeConfig ]
|
[38:08][handmade_debug.cpp: Add *Stack to WriteHandmadeConfig]
|
||||||
[41:51][Blackboard: The natural order of the stack]
|
[41:51][Blackboard: The natural order of the stack]
|
||||||
[45:40][handmade_debug.cpp: Introduce debug_variable_iterator to augment the stack]
|
[45:40][handmade_debug.cpp: Introduce debug_variable_iterator to augment the stack]
|
||||||
[52:39][handmade_debug.cpp: Continue cleaning up compile errors]
|
[52:39][handmade_debug.cpp: Continue cleaning up compile errors]
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
[56:11]["We won't add up to 100%"][quote 469]
|
[56:11]["We won't add up to 100%"][quote 469]
|
||||||
[58:00][Q&A][:speech]
|
[58:00][Q&A][:speech]
|
||||||
[59:22][@gunngames][Can I avoid taxation by reinvesting into capital gains?]
|
[59:22][@gunngames][Can I avoid taxation by reinvesting into capital gains?]
|
||||||
[59:44][@dudeinbasement1][Why won't we add to ~100%?]
|
[59:44][@dudeinbasement1][Why won't we add to \~100%?]
|
||||||
[1:00:42][@sssmcgrath][How would you self-update an exe? Right now I have a second exe that copies a file that overwrites the current exe. So main exe calls updateme.exe, closes itself, updateme sleeps for 1/2 second, then copies... There's gotta be something smarter]
|
[1:00:42][@sssmcgrath][How would you self-update an exe? Right now I have a second exe that copies a file that overwrites the current exe. So main exe calls updateme.exe, closes itself, updateme sleeps for 1/2 second, then copies... There's gotta be something smarter]
|
||||||
[1:01:27][@zamar037][Can the percentage support a decimal place?]
|
[1:01:27][@zamar037][Can the percentage support a decimal place?]
|
||||||
[1:01:46][handmade_debug.cpp: Print the percentage as a float]
|
[1:01:46][handmade_debug.cpp: Print the percentage as a float]
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
[1:52:02][Build and run in -Od and investigate what's happening]
|
[1:52:02][Build and run in -Od and investigate what's happening]
|
||||||
[1:54:18][handmade_sim_region.cpp: Add an assert in AddEntityToHash() to validate the hash, run the game and do not hit that assertion]
|
[1:54:18][handmade_sim_region.cpp: Add an assert in AddEntityToHash() to validate the hash, run the game and do not hit that assertion]
|
||||||
[1:55:07][Step through AddEntityToHash() and investigate what's happening]
|
[1:55:07][Step through AddEntityToHash() and investigate what's happening]
|
||||||
[1:56:30][handmade_sim_region.cpp: Add an assert in GetOrAddBrain() to validate the brain, run the game and ]
|
[1:56:30][handmade_sim_region.cpp: Walk through GetOrAddBrain()]
|
||||||
[1:57:38][handmade_sim_region.cpp: Make GetOrAddBrain() set the Hash->ID, run the game and crash in FreeFrame()]
|
[1:57:38][handmade_sim_region.cpp: Make GetOrAddBrain() set the Hash->ID, run the game and crash in FreeFrame()]
|
||||||
[1:58:31][handmade_sim_region.h: Remove the ID from the entity_hash and brain_hash and instead use their Ptr to identify them]
|
[1:58:31][handmade_sim_region.h: Remove the ID from the entity_hash and brain_hash and instead use their Ptr to identify them]
|
||||||
[1:59:36][Run the game and note that "our brains are still not working properly"][quote 535]
|
[1:59:36][Run the game and note that "our brains are still not working properly"][quote 535]
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
[42:06][handmade_opengl.cpp: Make OpenGLRenderCommands() call glDepthFunc()[ref
|
[42:06][handmade_opengl.cpp: Make OpenGLRenderCommands() call glDepthFunc()[ref
|
||||||
site="docs.GL"
|
site="docs.GL"
|
||||||
page="glDepthFunc"
|
page="glDepthFunc"
|
||||||
url="http://docs.gl/gl2/glDepthFunc"] ]
|
url="http://docs.gl/gl2/glDepthFunc"]]
|
||||||
[43:19][Run the game to see that the drawing order is being respected, but that the sort is unstable]
|
[43:19][Run the game to see that the drawing order is being respected, but that the sort is unstable]
|
||||||
[46:05][Determine to process the Z-values[ref
|
[46:05][Determine to process the Z-values[ref
|
||||||
site="Unspecified Behaviour"
|
site="Unspecified Behaviour"
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
page="glcorearb.h"
|
page="glcorearb.h"
|
||||||
url="https://www.khronos.org/registry/OpenGL/api/GL/glcorearb.h"]]
|
url="https://www.khronos.org/registry/OpenGL/api/GL/glcorearb.h"]]
|
||||||
[1:32:47][Compile and run to see our crazy w coordinate]
|
[1:32:47][Compile and run to see our crazy w coordinate]
|
||||||
[1:33:56][Introduce handmade_opengl.h ]
|
[1:33:56][Create handmade_opengl.h]
|
||||||
[1:36:18][handmade_opengl.cpp: Make OpenGLInit() call OpenGLCreateProgram(), and write here docs for Header, Vertex and Fragment code]
|
[1:36:18][handmade_opengl.cpp: Make OpenGLInit() call OpenGLCreateProgram(), and write here docs for Header, Vertex and Fragment code]
|
||||||
[1:41:57][Run the game to find that we got through the compilation phase okay, and determine to enable OpenGLCreateProgram() to perform error handling]
|
[1:41:57][Run the game to find that we got through the compilation phase okay, and determine to enable OpenGLCreateProgram() to perform error handling]
|
||||||
[1:44:21][handmade_opengl.cpp: Enable OpenGLCreateProgram() to log shader info and assert on validation failure[ref
|
[1:44:21][handmade_opengl.cpp: Enable OpenGLCreateProgram() to log shader info and assert on validation failure[ref
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
[1:37:56][handmade_opengl.cpp: Enable the FragmentCode to sample from textures, using a uniform]
|
[1:37:56][handmade_opengl.cpp: Enable the FragmentCode to sample from textures, using a uniform]
|
||||||
[1:41:39][Run the game and unexpectedly receive no error]
|
[1:41:39][Run the game and unexpectedly receive no error]
|
||||||
[1:41:50][handmade_opengl.cpp: Enable VertexCode to pass FragUV and FragColor out to the FragmentCode]
|
[1:41:50][handmade_opengl.cpp: Enable VertexCode to pass FragUV and FragColor out to the FragmentCode]
|
||||||
[1:45:03][Run the game ]
|
[1:45:03][Run the game]
|
||||||
[1:45:08][handmade_opengl.cpp: Make VertexCode correctly set FragUV using gl_TexCoord\[0\].xy]
|
[1:45:08][handmade_opengl.cpp: Make VertexCode correctly set FragUV using gl_TexCoord\[0\].xy]
|
||||||
[1:47:51][Run the game in the belief that we're passing down everything we need]
|
[1:47:51][Run the game in the belief that we're passing down everything we need]
|
||||||
[1:48:51][handmade_opengl.cpp: Make OpenGLRenderCommands() set a TextureSamplerID to pass to the FragmentCode shader]
|
[1:48:51][handmade_opengl.cpp: Make OpenGLRenderCommands() set a TextureSamplerID to pass to the FragmentCode shader]
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
[1:36:43][Run the game and watch the incorrect clipping behaviour]
|
[1:36:43][Run the game and watch the incorrect clipping behaviour]
|
||||||
[1:37:42][handmade_math.h: Tweak the near and far clip plane in PerspectiveProjection()]
|
[1:37:42][handmade_math.h: Tweak the near and far clip plane in PerspectiveProjection()]
|
||||||
[1:38:54][Try to find a source for the standard projection perspective matrix]
|
[1:38:54][Try to find a source for the standard projection perspective matrix]
|
||||||
[1:43:48][Run the game and consider ]
|
[1:43:48][Run the game to see some projection wonkiness]
|
||||||
[1:46:06][handmade_render_group.cpp: Try turning off the ZBias in PushBitmap()]
|
[1:46:06][handmade_render_group.cpp: Try turning off the ZBias in PushBitmap()]
|
||||||
[1:46:25][Run the game to see that everything is sorting as expected]
|
[1:46:25][Run the game to see that everything is sorting as expected]
|
||||||
[1:48:45][Consider that the ZBias is pre-transformed and appears to be being applied in clip space]
|
[1:48:45][Consider that the ZBias is pre-transformed and appears to be being applied in clip space]
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
[1:07:12][Investigate which VK_ keys are available to us]
|
[1:07:12][Investigate which VK_ keys are available to us]
|
||||||
[1:10:06][win32_handmade.cpp: Make Win32ProcessPendingMessage() use VK_OEM_PLUS and VK_OEM_MINUS]
|
[1:10:06][win32_handmade.cpp: Make Win32ProcessPendingMessage() use VK_OEM_PLUS and VK_OEM_MINUS]
|
||||||
[1:10:46][Run the game to try out our key bindings, and investigate why we can't cycle between the textures]
|
[1:10:46][Run the game to try out our key bindings, and investigate why we can't cycle between the textures]
|
||||||
[1:12:29][handmade_opengl.cpp: ]
|
[1:12:29][handmade_opengl.cpp: Double-check CompileFinalStretch()]
|
||||||
[1:13:05][Consult the documentation on Framebuffer[ref
|
[1:13:05][Consult the documentation on Framebuffer[ref
|
||||||
site="Khronos"
|
site="Khronos"
|
||||||
page="Framebuffer"
|
page="Framebuffer"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
[54:30][Blackboard: All light must go somewhere]
|
[54:30][Blackboard: All light must go somewhere]
|
||||||
[55:33][handmade_render_group.cpp: Enable LightingTest() to make RefC converge towards 0, and track the transference and accumulation of light]
|
[55:33][handmade_render_group.cpp: Enable LightingTest() to make RefC converge towards 0, and track the transference and accumulation of light]
|
||||||
[1:03:25][handmade_render_group.cpp: Enable LightingTest() to correct for the wrongness of the transfer]
|
[1:03:25][handmade_render_group.cpp: Enable LightingTest() to correct for the wrongness of the transfer]
|
||||||
[1:11:10][Step in to LightingTest() and ]
|
[1:11:10][Step through LightingTest()]
|
||||||
[1:13:10][Consider how to handle emission]
|
[1:13:10][Consider how to handle emission]
|
||||||
[1:13:46][handmade_render_group.cpp: Prevent LightingTest() from performing the correction and just letting the light bounce ad infinitum]
|
[1:13:46][handmade_render_group.cpp: Prevent LightingTest() from performing the correction and just letting the light bounce ad infinitum]
|
||||||
[1:14:27][Run the game to see the flickery results]
|
[1:14:27][Run the game to see the flickery results]
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
[1:12:47][Make RayCast() account for the Source Position in the Position computation][:lighting :rendering]
|
[1:12:47][Make RayCast() account for the Source Position in the Position computation][:lighting :rendering]
|
||||||
[1:13:55][:Run the game to see that it looks much more correct][:lighting :rendering]
|
[1:13:55][:Run the game to see that it looks much more correct][:lighting :rendering]
|
||||||
[1:15:47][Temporarily increase the RayCount in ComputeLightPropagation()][:lighting :rendering]
|
[1:15:47][Temporarily increase the RayCount in ComputeLightPropagation()][:lighting :rendering]
|
||||||
[1:16:01][:Run the game to see the :lighting solution with more rays[:rendering]]
|
[1:16:01][:Run the game to see the :lighting solution with more rays][:rendering]
|
||||||
[1:17:05][Determine to make the light sampling more unbiased][:lighting :rendering :speech]
|
[1:17:05][Determine to make the light sampling more unbiased][:lighting :rendering :speech]
|
||||||
[1:18:58][:Run the game and determine to enable :lighting recomputation while showing the :"debug visualisation"][:"debug system" :rendering]
|
[1:18:58][:Run the game and determine to enable :lighting recomputation while showing the :"debug visualisation"][:"debug system" :rendering]
|
||||||
[1:19:34][Enable UpdateAndRenderWorld() to recompute the :lighting while showing the :"debug visualisation"][:"debug system" :rendering]
|
[1:19:34][Enable UpdateAndRenderWorld() to recompute the :lighting while showing the :"debug visualisation"][:"debug system" :rendering]
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
page="HandmadeHero / cpp"
|
page="HandmadeHero / cpp"
|
||||||
url=https://github.com/HandmadeHero/cpp/issues]][:speech]
|
url=https://github.com/HandmadeHero/cpp/issues]][:speech]
|
||||||
[1:35][Show item_hat_03.png with a view to investigating why we are extracting six tiles from this four-tile asset][:admin :art :"asset system"]
|
[1:35][Show item_hat_03.png with a view to investigating why we are extracting six tiles from this four-tile asset][:admin :art :"asset system"]
|
||||||
[5:14][Determine to enable test_png to output ]
|
[5:14][Determine to enable test_png to output alpha pixels full white]
|
||||||
[6:54][Enable WriteImageTopDownRGBA() to output any alpha pixels full white, introducing ThreshAlpha()][:rendering]
|
[6:54][Enable WriteImageTopDownRGBA() to output any alpha pixels full white, introducing ThreshAlpha()][:rendering]
|
||||||
[9:52][Run test_png on item_hat_03.png and see some spurious data in the output][:admin :rendering]
|
[9:52][Run test_png on item_hat_03.png and see some spurious data in the output][:admin :rendering]
|
||||||
[11:40][Reacquaint ourselves with ProcessMultiTileImport() to see that it only processes tiles containing alpha pixels][:"asset system" :research :rendering]
|
[11:40][Reacquaint ourselves with ProcessMultiTileImport() to see that it only processes tiles containing alpha pixels][:"asset system" :research :rendering]
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
[1:55:52][Get a new dotahero][:admin]
|
[1:55:52][Get a new dotahero][:admin]
|
||||||
[1:56:43][Ponder ~RemedyBG's breakpoint confusion][:"hot reloading" :library :speech]
|
[1:56:43][Ponder ~RemedyBG's breakpoint confusion][:"hot reloading" :library :speech]
|
||||||
[1:57:46][Wonder why we're jumping to an unknown function][:"hot reloading" :library :speech]
|
[1:57:46][Wonder why we're jumping to an unknown function][:"hot reloading" :library :speech]
|
||||||
[1:58:17][:Run, rebuild, step in to OpenGLEndFrame() and ][:"hot reloading" :library]
|
[1:58:17][:Run, rebuild, step in to OpenGLEndFrame() and inspect the OpenGL struct][:"hot reloading" :library]
|
||||||
[1:59:51][Remember that our OpenGL functions reside in a dll-local table, and must be reinitialised][:"hot reloading" :library :speech]
|
[1:59:51][Remember that our OpenGL functions reside in a dll-local table, and must be reinitialised][:"hot reloading" :library :speech]
|
||||||
[2:01:32][Augment open_gl with our OpenGL functions, renaming OpenGLGlobalFunction() to OpenGLFunction()][:library :rendering]
|
[2:01:32][Augment open_gl with our OpenGL functions, renaming OpenGLGlobalFunction() to OpenGLFunction()][:library :rendering]
|
||||||
[2:08:23][Make our OpenGL context available to all OpenGL-calling functions, and Win32InitOpenGL() initialise our OpenGL functions][:library :rendering]
|
[2:08:23][Make our OpenGL context available to all OpenGL-calling functions, and Win32InitOpenGL() initialise our OpenGL functions][:library :rendering]
|
||||||
|
|
Loading…
Reference in New Issue