Archived

This topic is now archived and is closed to further replies.

Spider_In_A_Web

Multi Threading

Recommended Posts

Guest Anonymous Poster
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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!!

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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....

Share this post


Link to post
Share on other sites
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 )

Share this post


Link to post
Share on other sites