+ void initialize()\r
+ {\r
+ context_.reset([&]{return new flash_renderer(safe_ptr<diagnostics::graph>(graph_), frame_factory_, filename_, width_, height_);});\r
+ while(frame_buffer_.try_push(core::basic_frame::empty())){} \r
+ render(context_.get());\r
+ }\r
+\r
+ safe_ptr<core::basic_frame> render_frame()\r
+ {\r
+ auto frame = context_->render_frame(frame_buffer_.size() < frame_buffer_.capacity()); \r
+ tbb::spin_mutex::scoped_lock lock(last_frame_mutex_);\r
+ last_frame_ = make_safe<core::basic_frame>(frame);\r
+ return frame;\r
+ }\r
+\r
+ void render(const flash_renderer* renderer)\r
+ { \r