[video output=day011 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="The Basics of Platform API Design" vod_platform=youtube id=_4vnV2Eng7M annotator=schme]
[3:35][About platform specific code]
[7:56][What is left to be done on the platform layer]
[11:23][Topic of the day revealed!]
[11:33][Portability and cross platformness]
[13:37][How people used to make code be cross platform (preprocessor #if #else)]
[18:48][About preprocessor #if #else cross platforming]
[23:52][Separate platform files (e.g. linux_handmade.cpp) as the entry point]
[31:41][Unity builds, building your project as one translation unit]
[34:08][Virtualising the OS to the game (architecture style 1)]
[34:23][Example implementation for virtualising a window wrapper]
[42:54][Reasons why perhaps not to use style 1]
[44:31][Game as a service to the OS (architecture style 2)]
[47:15][Implementing style 2]
[51:30][GameUpdateAndRender() - moving RenderWeirdGradient to game code]
[1:01:00][Q&A][:speech]
[1:01:23][Seems 'unsafe' to include the platform independent code after including the platform specific headers]
[1:03:22][Would you always orchestrate how you do threading in the platform layer or does it make sense for the platform layer to also provide a more generic threading job service?]
[1:05:12][You said last stream you didn't really like showing the FPS because you didn't find it useful. Can you explain that?]
[1:09:48][On the scale from genius to totally awesome how can you remember all this?]
[1:12:21][Do we currently have a hidden platform dependancy inside the bitmap memory or is BGRA something that happens on the other platforms too?]
[1:15:18][It seems like your approach to handling platform dependant services is to prefer a many-to-one relationship instead of a one-to-many. \[...\]]
[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: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: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:27:18][Why the #define part for the header file (include guards)]
[1:29:09][Why do you specify void in function definitions when they don't take arguments?]
[1:30:06][Do you have a specific method for solving programming problems or do you just write things and solve them in place?]
[1:30:29][Why are you forward declaring game layer functions in the header when you include the whole documentation?]
[1:31:17][Do you think it is realistic for someone with awful math skills to be an efficient game developer?]
[/video]
