Quite a bit going on in here.
- Messing with shaders
- Move ShaderProgram to std::unique_ptr
These are part of efforts to clean up the ShaderProgram class to have a
better interface.
- Working on shell-ing out commands.
This is pointless but getting me in the state of thinking about the
system as a whole - e.g. "stop" at the "prompt" should "stop the
server," so the prompt thread will need to communicate with the main
thread. We already have event signalling in place for this.
- Triangle strip cube
Performance testing reasons. Not being used for now.
- Remove TCP stuff from UDPbase. It only does UDP now.
So when PACKET_SDL_EVENT was SDL_USEREVENT, things worked fine in the
main loop it would see SDL_USEREVENT and send it off to my_SDL_UserEvent.
But when I started adding more events, the SDL_UserEvent paradigm given
in the SDL Wiki stopped working.
The example here is broken: https://wiki.libsdl.org/SDL_AddTimer
The example here is working and "correct": https://wiki.libsdl.org/SDL_UserEvent
All SDL_RegisterEvents is increase a static counter. SDL doesn't
actually use these events anyway. It's purely symbolic, as far as I can tell.
So anyway. Now events work after a bunch of debugging.
SHADER_PROGRAM_REFRESH is the second user event I've done.
The ShaderProgram runs an SDL_TimerID that looks at mVertexPath,
mGeometryPath if present, and mFragmentPath. mVertexPath and
mFragmentPath are required by Compile3ShaderBuffers.
In the future I'd like to change the way this class behaves.