This introduces a new OOP command model to the Metal app, which I started documenting in a new readme. I'm hoping this makes for a nice separation of duties between the command interface, renderer, and specific commands.
This PR touches a lot of code! The raw diff might be hard to read. In addition to the new readme, here are some highlights that I hope will make reviewing the change easier:
A lot of this was moving command-specific snippets of code out of the mglRenderer class, into their own classes/files.
This was almost completely refactoring within the metal app, with no changes the Matlab rendering or other commands.
The only Matlab changes are small adjustments to test scripts to accommodate this and other recent work.
Existing tests like mglRunRenderingTests, mglRenderingDemo and others should still be running and passing.
While doing this refactor, I've had upcoming features in mind, like counter api timestamps and queued batches of commands. I haven't implemented these yet, but I think they will fit right in :-)
This introduces a new OOP command model to the Metal app, which I started documenting in a new readme. I'm hoping this makes for a nice separation of duties between the command interface, renderer, and specific commands.
This PR touches a lot of code! The raw diff might be hard to read. In addition to the new readme, here are some highlights that I hope will make reviewing the change easier:
mglRunRenderingTests
,mglRenderingDemo
and others should still be running and passing.While doing this refactor, I've had upcoming features in mind, like counter api timestamps and queued batches of commands. I haven't implemented these yet, but I think they will fit right in :-)