Advertisement
Guest User

Untitled

a guest
Mar 14th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2.  
  3. sf::Mutex g_mutex;
  4.  
  5. void load_texture( void* arg ) {
  6.     sf::Image image;
  7.  
  8.     image.create( 64, 64, sf::Color::White );
  9.  
  10.     g_mutex.lock();
  11.  
  12.     sf::Context context;
  13.  
  14.     sf::Texture* texture = reinterpret_cast<sf::Texture*>( arg );
  15.     texture->loadFromImage( image );
  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::Blue );
  29.         texture.loadFromImage( image );
  30.     }
  31.  
  32.     sf::Sprite sprite( texture );
  33.  
  34.     while( timer.getElapsedTime() < sf::seconds( 2 ) ) {
  35.         if( !loaded && timer.getElapsedTime() > sf::seconds( 1 ) ) {
  36.             sf::Thread thread( &load_texture, &texture );
  37.             thread.launch();
  38.         }
  39.  
  40.         g_mutex.lock();
  41.  
  42.         window.clear();
  43.         window.draw( sprite );
  44.         window.display();
  45.  
  46.         g_mutex.unlock();
  47.     }
  48.  
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement