Multi Threading
iam thinking about writing a multi threaded app in Win32 using openGL, can anybody here point out any pitfalls ar problems or just give advice in general on this topic.
Thanks Paul.
quote:Original post by Spider_In_A_Web
iam thinking about writing a multi threaded app in Win32 using openGL, can anybody here point out any pitfalls ar problems or just give advice in general on this topic.
Thanks Paul.
OpenGL is a state machine, so it isn''t thread safe. If you write a multi-threaded program, you should probably make sure only one thread is calling openGL at a time. Do this by either having one thread do all the openGL, or by using a semaphore.
an MFC App usually has 2 threads.. yeah, just make sure all OGL is in 1 thread.. works great for my Leveleditor...
(but boy, whatch out for those linked lists when doing multi threading.. :o)
cya,
Phil
Visit Rarebyte!
and no!, there are NO kangaroos in Austria (I got this questions a few times over in the states
(but boy, whatch out for those linked lists when doing multi threading.. :o)
cya,
Phil
Visit Rarebyte!
and no!, there are NO kangaroos in Austria (I got this questions a few times over in the states
The main reason i want to do a multi-threaded app is mainly for the learnin experience, but the plan is to have one main thread handling the window messages and another running the game!
This is based on the article under DirectX Graphics in the gamedev resources!!
The only problem i currently have is working out how to tell my game thread that the window has changed and that the render context needs to be reset!!
This is based on the article under DirectX Graphics in the gamedev resources!!
The only problem i currently have is working out how to tell my game thread that the window has changed and that the render context needs to be reset!!
I have some screen saver and mini demo things on my web site. I have always used a seperate rendering thread for all my stuff. All the source code is there for you to use.
You need a "critical section" with which to communicate between the threads.
transparent
You need a "critical section" with which to communicate between the threads.
transparent
I tend to take multi-threading a bit far usually
One for rendering, one for the engine, one for AI, etc. etc.
One for rendering, one for the engine, one for AI, etc. etc.
Hm.
What has the best way to do multi-threading, Ronin ?
I`ve thought about setting each main processing block into a thread(AI,rendering,physics, blah blah blah)
Whats your experience shown you ?
~V''lion
I came, I saw, I got programmers block.
~V''''lion
What has the best way to do multi-threading, Ronin ?
I`ve thought about setting each main processing block into a thread(AI,rendering,physics, blah blah blah)
Whats your experience shown you ?
~V''lion
I came, I saw, I got programmers block.
~V''''lion
Well in the real C++ world you would create what is called a listener patern.
Your window object would have some virtual method called onResize and every object that wanted to know that your window was resized would implement the on resize method. Of course this is to general of an explanation but that would be one of the ways. As for multi threading...
Use mutli threading in this way. One thread handles graphics, another thread handles input, another graphics, maybe another one for networking etc....
Your window object would have some virtual method called onResize and every object that wanted to know that your window was resized would implement the on resize method. Of course this is to general of an explanation but that would be one of the ways. As for multi threading...
Use mutli threading in this way. One thread handles graphics, another thread handles input, another graphics, maybe another one for networking etc....
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement