예제 #1
0
파일: main.cpp 프로젝트: drsounds/synfig
synfig::Main::~Main()
{
	ref_count_.detach();
	if(!synfig_ref_count_.unique())
		return;
	synfig_ref_count_.detach();

	// Add deinitialization after this point

	if(get_open_canvas_map().size())
	{
		synfig::warning("Canvases still open!");
		std::map<synfig::String, etl::loose_handle<Canvas> >::iterator iter;
		for(iter=get_open_canvas_map().begin();iter!=get_open_canvas_map().end();++iter)
		{
			synfig::warning("%s: count()=%d",iter->first.c_str(), iter->second.count());
		}
	}

	// synfig::info("ValueNode::subsys_stop()");
	ValueNode::subsys_stop();
	// synfig::info("Importer::subsys_stop()");
	Importer::subsys_stop();
	CairoImporter::subsys_stop();
	// synfig::info("Target::subsys_stop()");
	Target::subsys_stop();
	// synfig::info("Layer::subsys_stop()");
	Layer::subsys_stop();
	/*! \todo For some reason, uncommenting the next line will cause things to crash.
			  This needs to be looked into at some point. */
 	// synfig::info("Module::subsys_stop()");
	// Module::subsys_stop();
	// synfig::info("Exiting");
	rendering::Renderer::subsys_stop();
	Type::subsys_stop();
	SoundProcessor::subsys_stop();

#if defined(HAVE_SIGNAL_H) && defined(SIGPIPE)
	signal(SIGPIPE, SIG_DFL);
#endif

	assert(instance);
	instance = NULL;
}
예제 #2
0
synfigapp::Main::~Main()
{
    ref_count_.detach();
    if(!synfigapp_ref_count_.unique())
        return;
    synfigapp_ref_count_.detach();

    // Add deinitialization after this point

    delete action_main;

    selected_input_device_=0;
    input_devices_.clear();

    settings_.destruct();
    signal_outline_color_changed_.destruct();
    signal_fill_color_changed_.destruct();
    signal_gradient_changed_.destruct();

    //signal_opacity_changed_.destruct();
    //signal_blend_method_changed_.destruct();
    signal_interpolation_changed_.destruct();
}