[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Fixings Bugs from the Issue List" vod_platform=youtube id=a346y2H9JcU annotator=Miblo] [0:03][Recap and set the stage for the day] [1:23][Consult and update the issues[ref site="GitHub" page="HandmadeHero/cpp Issues" url="https://github.com/HandmadeHero/cpp/issues"]] [4:32][Blackboard: Constant Power Panning] [7:37][handmade_audio.cpp: Double-check how the panning currently works] [12:04][Close the "Switch to constant power panning instead of linear panning in audio mixer" issue] [12:40][handmade_opengl.cpp: Make OpenGLInit() call glTexEnvi()] [14:24][Run the game, see that it's fine and close that issue] [14:48][Consider the "Improve spinlock efficiency in BeginTicketMutex()" issue[ref site="GitHub" page="HandmadeHero/cpp Issues" url="https://github.com/HandmadeHero/cpp/issues"]] [17:43][Read about the PAUSE instruction in the Intel 64 and IA-32 Architectures Software Developer's Manual[ref site="Intel" page="Intel 64 and IA-32 Architectures Software Developer Manuals" url="https://www-ssl.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html"]] [23:37][handmade_platform.h: Make BeginTicketMutex() call _mm_pause(), run the game and find that its execution hasn't changed] [24:08][Close that issue and consider the other ones[ref site="GitHub" page="HandmadeHero/cpp Issues" url="https://github.com/HandmadeHero/cpp/issues"]] [26:21][handmade_shared.h: Make ReadVarArgUnsignedInteger() promote all smaller types to 32-bit ints] [29:08][Determine to fix the "Clang: Passing va_list as a pointer" issue[ref site="GitHub" page="HandmadeHero/cpp Issues" url="https://github.com/HandmadeHero/cpp/issues"]] [31:19][handmade_shared.h: Change ReadVarArgUnsignedInteger(), ReadVarArgSignedInteger() and ReadVarArgFloat() into macros] [35:02][Run the game to verify that nothing broke here, and then close this issue] [35:55][handmade_render.h: Introduce GetStandardCameraParams() in order to unify the camera computations] [40:17][Run the game and tweak the camera settings] [43:35][Close that issue and endeavour to fix the "Failsafe: If DEBUGGameFrameEnd Pointer fails to load while HANDMADE_INTERNAL=1" issue[ref site="GitHub" page="HandmadeHero/cpp Issues" url="https://github.com/HandmadeHero/cpp/issues"]] [47:00][win32_handmade.cpp: Make WinMain() call DEBUGSetEventRecording() right after Win32LoadGameCode()] [47:52][Run the game and see how it goes] [48:44][win32_handmade.cpp: Make Win32LoadGameCode() set DEBUGFrameEnd] [49:03][Close that issue and request help from clang users to address the final clang compatibility issue] [50:43][Q&A] [51:10][@telconfig][Casey, is there a bug with chunk creation? You added a free list but are not using it?] [52:18][@mmozeiko][When doing copy & pasta you left (f64) cast in wrong place for ternary operator - ((f64)va_arg(ArgList, f64)) \: (va_arg(ArgList, f32))] [52:34][handmade_shared.h: Fix ReadVarArgFloat()] [52:59][@internal_static_void][When you found yourself unable to write code for something, what would you do to try to find something to do for said project?] [58:32][@braytoba][Looking to start a career in programming / computer science. I am currently 16 and in grade 12. Any tips on what I should do? "Also thanks chat for all the help"] [59:45][@longboolean][It has been a while since we've seen some of the CTime stats that are being collected. If you have time?] [1:00:58][Consult the CTime stats] [1:02:16][@snoringtortoise][What is the current schedule for the stream? It seems that we have been dealing with bugs for a while - sorry I may have missed the explanation if you provided it a little while ago] [1:02:32][@telconfig][When we get the chunk in GetWorldChunk() it seems we always allocate new memory. We never reuse the old chunks after removing them? I assumed you would add the removed chunk to the free list on the world and then reuse these when creating a new chunk rather than allocate more memory using the push struct? But you are currently not using this free list?] [1:04:31][handmade_world.cpp: Enable GetWorldChunk() to recycle old chunks] [1:06:31][Run the game] [1:06:55][@uplinkcoder][What makes a bad programmer in your opinion?] [1:07:28][@internal_static_void][About your build.bat file, why do you disable exceptions and warnings?] [1:08:08][@Miblo][A related thing mentioned in a creative writing course I did was to "postpone perfection"] [1:09:44][Wind it down] [/video]