Multi Threading

Started by
8 comments, last by Spider_In_A_Web 22 years, 5 months ago
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.
Advertisement
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
Visit Rarebyte! and no!, there are NO kangaroos in Austria (I got this question 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!!
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
Thank you!!
I tend to take multi-threading a bit far usually

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
~V'lionBugle4d
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....

I wouldn''t use multithreading in an client app.. at least not in an normale game... (an GUI App is something diffrent).... in a Server? Yes...

cya,
Phil


Visit Rarebyte!
and no!, there are NO kangaroos in Austria (I got this questions a few times over in the states )
Visit Rarebyte! and no!, there are NO kangaroos in Austria (I got this question a few times over in the states ;) )

This topic is closed to new replies.

Advertisement