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.
Server listens correctly with threads and stdin reader thread.
Client does nothing currently gutting UDP_Write for a UDPbase class
introduced in this commit.
< Bubblegumdrop> SDLNet_UDP_Open seems to call SDLNet_Read16 (which is just SDL_SwapBE16)
< Bubblegumdrop> But on the server side I don't use SDLNet_UDP_Open to host the port
< whitt> probably the sender was flipping it but the receiver wasn't and so they were incompatible
< Bubblegumdrop> removing the SDL_SwapBE16 on the client side fixed it