Jump to content
  • Advertisement


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


Threads in SDL

This topic is 5620 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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!