Esempio n. 1
0
PropertyGrid::PropertyGrid(StudioApp& app)
	: m_app(app)
	, m_is_opened(true)
	, m_editor(*app.getWorldEditor())
	, m_plugins(app.getWorldEditor()->getAllocator())
{
	m_particle_emitter_updating = true;
	m_particle_emitter_timescale = 1.0f;
	m_component_filter[0] = '\0';
}
Esempio n. 2
0
AssetBrowser::AssetBrowser(StudioApp& app)
	: m_editor(*app.getWorldEditor())
	, m_metadata(*app.getMetadata())
	, m_resources(app.getWorldEditor()->getAllocator())
	, m_selected_resource(nullptr)
	, m_autoreload_changed_resource(true)
	, m_changed_files(app.getWorldEditor()->getAllocator())
	, m_is_focus_requested(false)
	, m_changed_files_mutex(false)
	, m_history(app.getWorldEditor()->getAllocator())
	, m_plugins(app.getWorldEditor()->getAllocator())
	, m_on_resource_changed(app.getWorldEditor()->getAllocator())
	, m_app(app)
	, m_is_update_enabled(true)
	, m_current_type(0)
	, m_is_opened(false)
	, m_activate(false)
	, m_history_index(-1)
{
	auto& editor = *app.getWorldEditor();
	auto& allocator = editor.getAllocator();
	m_filter[0] = '\0';
	m_resources.emplace(allocator);

	findResources();

	const char* base_path = editor.getEngine().getDiskFileDevice()->getBasePath();
	m_watchers[0] = FileSystemWatcher::create(base_path, allocator);
	m_watchers[0]->getCallback().bind<AssetBrowser, &AssetBrowser::onFileChanged>(this);
	if (editor.getEngine().getPatchFileDevice())
	{
		base_path = editor.getEngine().getPatchFileDevice()->getBasePath();
		m_watchers[1] = FileSystemWatcher::create(base_path, allocator);
		m_watchers[1]->getCallback().bind<AssetBrowser, &AssetBrowser::onFileChanged>(this);
	}
	else
	{
		m_watchers[1] = nullptr;
	}

	m_auto_reload_action = LUMIX_NEW(allocator, Action)("Auto-reload", "autoReload");
	m_auto_reload_action->is_global = false;
	m_auto_reload_action->func.bind<AssetBrowser, &AssetBrowser::toggleAutoreload>(this);
	m_auto_reload_action->is_selected.bind<AssetBrowser, &AssetBrowser::isAutoreload>(this);
	m_back_action = LUMIX_NEW(allocator, Action)("Back", "back");
	m_back_action->is_global = false;
	m_back_action->func.bind<AssetBrowser, &AssetBrowser::goBack>(this);
	m_forward_action = LUMIX_NEW(allocator, Action)("Forward", "forward");
	m_forward_action->is_global = false;
	m_forward_action->func.bind<AssetBrowser, &AssetBrowser::goForward>(this);
	m_refresh_action = LUMIX_NEW(allocator, Action)("Refresh", "refresh");
	m_refresh_action->is_global = false;
	m_refresh_action->func.bind<AssetBrowser, &AssetBrowser::findResources>(this);
	m_app.addAction(m_auto_reload_action);
	m_app.addAction(m_back_action);
	m_app.addAction(m_forward_action);
	m_app.addAction(m_refresh_action);
}
ShaderCompiler::ShaderCompiler(StudioApp& app, LogUI& log_ui)
	: m_app(app)
	, m_editor(*app.getWorldEditor())
	, m_log_ui(log_ui)
	, m_dependencies(m_editor.getAllocator())
	, m_to_reload(m_editor.getAllocator())
	, m_processes(m_editor.getAllocator())
	, m_changed_files(m_editor.getAllocator())
	, m_mutex(false)
{
	m_notifications_id = -1;
	m_is_compiling = false;

	m_watcher = FileSystemWatcher::create("shaders", m_editor.getAllocator());
	m_watcher->getCallback().bind<ShaderCompiler, &ShaderCompiler::onFileChanged>(this);
	parseDependencies();
	makeUpToDate();
}
AssetBrowser::AssetBrowser(StudioApp& app)
	: m_editor(*app.getWorldEditor())
	, m_metadata(*app.getMetadata())
	, m_resources(app.getWorldEditor()->getAllocator())
	, m_selected_resource(nullptr)
	, m_autoreload_changed_resource(true)
	, m_changed_files(app.getWorldEditor()->getAllocator())
	, m_is_focus_requested(false)
	, m_changed_files_mutex(false)
	, m_history(app.getWorldEditor()->getAllocator())
	, m_plugins(app.getWorldEditor()->getAllocator())
	, m_on_resource_changed(app.getWorldEditor()->getAllocator())
	, m_app(app)
{
	auto& editor = *app.getWorldEditor();
	m_is_update_enabled = true;
	m_filter[0] = '\0';
	m_current_type = 0;
	m_is_opened = false;
	m_activate = false;
	m_resources.emplace(editor.getAllocator());

	findResources();

	const char* base_path = editor.getEngine().getDiskFileDevice()->getBasePath();
	m_watchers[0] = FileSystemWatcher::create(base_path, editor.getAllocator());
	m_watchers[0]->getCallback().bind<AssetBrowser, &AssetBrowser::onFileChanged>(this);
	if (editor.getEngine().getPatchFileDevice())
	{
		base_path = editor.getEngine().getPatchFileDevice()->getBasePath();
		m_watchers[1] = FileSystemWatcher::create(base_path, editor.getAllocator());
		m_watchers[1]->getCallback().bind<AssetBrowser, &AssetBrowser::onFileChanged>(this);
	}
	else
	{
		m_watchers[1] = nullptr;
	}
}