Original Post
I'm making a C++ program using OpenGL/SDL for graphics, but I want to be able to interact with the user using a command line interface. I don't know if this is what is meant by Multi-Threading, because I havn't read much about it, but basically I want there to be two windows open at once: 1. The terminal window from where the app was started that will ask for inputs and output results/messages/exceptions. 2. The OpenGL/SDL window that displays the GFX. Note that I must be able to communicate between the two processes. A user input in the terminal should be processed by the program, and effectively modify the GFX display. Similarly, any OpenGL/SDL exceptions, etc. should be reported back via the terminal. How would I go around doing this? Note: Just including and then doing the terminal stuff and rendering in the same loop is not what I am looking for. For example, when I ask for user input with cin I don't want the rendering to halt, I just want both tasks running simultaneously, and communicating by sending each other events/statuses.