Advertisement
Guest User

Untitled

a guest
Mar 17th, 2012
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <SFML/OpenGL.hpp>
  3.  
  4. sf::Mutex g_mutex;
  5.  
  6. void load_texture( void* arg ) {
  7.     sf::Image image;
  8.  
  9.     image.create( 64, 64, sf::Color::Green );
  10.  
  11.     g_mutex.lock();
  12.  
  13.     sf::Texture* texture = reinterpret_cast<sf::Texture*>( arg );
  14.     texture->loadFromImage( image );
  15.     glFlush();
  16.  
  17.     g_mutex.unlock();
  18. }
  19.  
  20. int main() {
  21.     sf::RenderWindow window( sf::VideoMode( 800, 600 ), "Test" );
  22.     sf::Texture texture;
  23.     sf::Clock timer;
  24.     bool loaded = false;
  25.  
  26.     {
  27.         sf::Image image;
  28.         image.create( 64, 64, sf::Color::Red );
  29.         texture.loadFromImage( image );
  30.     }
  31.  
  32.     sf::Sprite sprite( texture );
  33.  
  34.     sf::Thread thread( &load_texture, &texture );
  35.  
  36.     while( timer.getElapsedTime() < sf::seconds( 3 ) ) {
  37.         if( !loaded && timer.getElapsedTime() > sf::seconds( 1 ) ) {
  38.             loaded = true;
  39.             thread.launch();
  40.         }
  41.  
  42.         g_mutex.lock();
  43.  
  44.         window.clear();
  45.         window.draw( sprite );
  46.         window.display();
  47.  
  48.         g_mutex.unlock();
  49.     }
  50.  
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement