I believe it’s separated into ‘three tiers’, where instead of passing a pixel buffer to the game code, you pass a ‘command buffer’ (basically memory to write your custom graphics commands in). Then when the game specific code runs, it fills up the buffer. Then on the platform side you run the third tier, where you pass the command buffer to execute on whatever graphics api your using. I believe this was pulled into a seperate dll as well.