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'; }
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; } }