void tile_ready() { Glib::Mutex::Lock lock(mutex); if(!alive_flag) { tile_queue.clear(); cond_tile_queue_empty.signal(); return; } while(!tile_queue.empty() && alive_flag) { tile_t& tile(tile_queue.front()); // if (getenv("SYNFIG_SHOW_TILE_OUTLINES")) // { // Color red(1,0,0); // tile.surface.fill(red, 0, 0, 1, tile.surface.get_h()); // tile.surface.fill(red, 0, 0, tile.surface.get_w(), 1); // } alive_flag=warm_target->add_tile(tile.surface,tile.x,tile.y); tile_queue.pop_front(); } cond_tile_queue_empty.signal(); }
void frame_ready() { Glib::Mutex::Lock lock(mutex); if(alive_flag) alive_flag=warm_target->put_surface(surface, callback); #ifdef SINGLE_THREADED if (!single_threaded()) #endif cond_frame_queue_empty.signal(); ready_next=true; }