Jump to content
  • Advertisement


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


Threads in SDL

This topic is 5535 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I did but i dont understand how to pass variables and what exactly is hapenning when you initialize a thread. Any help would be appreciated.

Share this post

Link to post
Share on other sites
from the header file:

extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread( int (*fn)(void *), void *data);

let''s disect this...

it returns a pointer to ''SDL_Thread''. Usefull for keeping track of threads from the parent if you need to do that.

it accepts two parameters.

The first parameter is a pointer to a function. Specifically, a function returning an int, and taking a void pointer. Not void, a void pointer.

The second parameter is a void pointer as well.

Can you guess the answer?

if not...:

when you create the thread, you can pass a single pointer to it. If you need to send a good deal of information, then pack that all up into a structure or something, and then cast a pointer to that to void and pass that as the ''data'' variable in the SDL_CreateThread function call.

Then, in the called function, cast the void pointer you get back to a pointer to the structure type, which you can dereference to get to all that nifty data.

aka something like:

#include <iostream>
#include <string>
#include <SDL/SDL.h>
using namespace std;

class Something
string say;

int test( void *param )
cout << ((Something *)param)->say << endl;
return 0;

int main( ... )

Something *mysomething = new Something;
mysomething->say = "WOOT!!!";
SDL_CreateThread( test , (void*) mysomething );


Share this post

Link to post
Share on other sites
SDL threads are just there or provide thread functionality. The documentation was not intended to be general purpose tutorial on threads, but rather a tutorial on how SDL implements threads.

To learn about threads read these two tutorials:
http://www.cpp-home.com/tutorial.php?124_2 and

The first tut is general theory on threads in general. The second give a practical implementation of threads using a thread library, simliar to the SDL threads library.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!