Maybe it's just me and I'm really really crap
I''m working on a crappy crap thing and I''d really liek to have
the game run in a new thread so it can be made without ten
million state machines pissing me off.
But wehnever I try to do anything with OpenGL in the created
thread, nothing displays
Here''s roughly how my thing works...
WINMAIN
1. MAEK TEH WINDOW
2. START OPENGL
3. RUN TEH THREAD
4. GO INTO TEH MESSAGE LOOP
END WINMAIN
THREAD FUNCTION
1. DRAW STUFF
2. SWAP TEH BUFFERS
END THREAD FUNCTION
When I put the stuff from the thread into the winmain function
it all works fine! WHY OH WHY OH WHY???
you should be creating the window in the same thread as you draw it in. what i mean is, in your thread callback function, first create and show the window, and then run your message loop. don''t create the window in WinMain and then run the message loop in a different thread, because your app won''t be able to see the messages.
scott
scott
The Message loop IS in the thread the window is created, it is
receiving messages fine. Is there any way I can draw to the window from outside the thread it is created in?
AHA! I was playing with the code while i wrote this and
I fixed my problem:
this is how it goes now
WINMAIN
1.CREATE THE WINDOW
2.CREATE THE GAME THREAD
3.DO THE MESSAGE LOOP (IN *THIS* THREAD)
END
GAME THREAD
1.START OPENGL
2.DRAW STUFF
3.SWAP THE BUFFERS
END
My guess is that I needed to get the rendering context in the
thread that OpenGL runs in. it''s just a guess though.
All I know is that it werks and I can write my programs in
glorious linear fashion now
receiving messages fine. Is there any way I can draw to the window from outside the thread it is created in?
AHA! I was playing with the code while i wrote this and
I fixed my problem:
this is how it goes now
WINMAIN
1.CREATE THE WINDOW
2.CREATE THE GAME THREAD
3.DO THE MESSAGE LOOP (IN *THIS* THREAD)
END
GAME THREAD
1.START OPENGL
2.DRAW STUFF
3.SWAP THE BUFFERS
END
My guess is that I needed to get the rendering context in the
thread that OpenGL runs in. it''s just a guess though.
All I know is that it werks and I can write my programs in
glorious linear fashion now
You have to make the context current in the drawing thread and NOT make it current in the main thread.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement