fixed initialzation

This commit is contained in:
Mikulas Florek 2020-10-16 21:56:36 +02:00
parent 7def32a83a
commit 69924192a2
6 changed files with 52 additions and 28 deletions

View file

@ -237,12 +237,14 @@ public:
m_toggle_ui.func.bind<&GUIEditor::onAction>(this);
m_toggle_ui.is_selected.bind<&GUIEditor::isOpen>(this);
app.addWindowAction(&m_toggle_ui);
}
m_editor = &app.getWorldEditor();
Engine& engine = app.getEngine();
void init() {
m_editor = &m_app.getWorldEditor();
Engine& engine = m_app.getEngine();
Renderer& renderer = *static_cast<Renderer*>(engine.getPluginManager().getPlugin("renderer"));
PipelineResource* pres = engine.getResourceManager().load<PipelineResource>(Path("pipelines/gui_editor.pln"));
m_pipeline = Pipeline::create(renderer, pres, "", allocator);
m_pipeline = Pipeline::create(renderer, pres, "", m_app.getAllocator());
}
@ -906,6 +908,7 @@ struct StudioAppPlugin : StudioApp::IPlugin
void init() override
{
m_gui_editor.init();
m_app.registerComponent("", "gui_button", "GUI / Button");
m_app.registerComponent("", "gui_canvas", "GUI / Canvas");
m_app.registerComponent(ICON_FA_IMAGE, "gui_image", "GUI / Image", Sprite::TYPE, "Sprite");

View file

@ -58,17 +58,21 @@ GameView::GameView(StudioApp& app)
Engine& engine = app.getEngine();
auto f = &LuaWrapper::wrapMethodClosure<&GameView::forceViewport>;
LuaWrapper::createSystemClosure(engine.getState(), "GameView", this, "forceViewport", f);
}
IAllocator& allocator = app.getAllocator();
void GameView::init() {
IAllocator& allocator = m_app.getAllocator();
m_toggle_ui.init("Game View", "Toggle game view", "game_view", "", true);
m_toggle_ui.func.bind<&GameView::onAction>(this);
m_toggle_ui.is_selected.bind<&GameView::isOpen>(this);
app.addWindowAction(&m_toggle_ui);
m_app.addWindowAction(&m_toggle_ui);
m_fullscreen_action.init("Game View fullscreen", "Game View fullscreen", "game_view_fullscreen", "", true);
m_fullscreen_action.func.bind<&GameView::toggleFullscreen>(this);
app.addAction(&m_fullscreen_action);
m_app.addAction(&m_fullscreen_action);
Engine& engine = m_app.getEngine();
auto* renderer = (Renderer*)engine.getPluginManager().getPlugin("renderer");
PipelineResource* pres = engine.getResourceManager().load<PipelineResource>(Path("pipelines/main.pln"));
m_pipeline = Pipeline::create(*renderer, pres, "GAME_VIEW", engine.getAllocator());

View file

@ -38,6 +38,7 @@ public:
bool isOpen() const { return m_is_open; }
void onAction() { m_is_open = !m_is_open; }
void onWindowGUI() override;
void init();
public:
bool m_is_open;

View file

@ -1438,12 +1438,6 @@ struct ModelPlugin final : AssetBrowser::IPlugin, AssetCompiler::IPlugin
, m_fbx_importer(app)
{
app.getAssetCompiler().registerExtension("fbx", Model::TYPE);
createPreviewUniverse();
createTileUniverse();
m_viewport.is_ortho = false;
m_viewport.fov = degreesToRadians(60.f);
m_viewport.near = 0.1f;
m_viewport.far = 10000.f;
}
@ -1458,6 +1452,16 @@ struct ModelPlugin final : AssetBrowser::IPlugin, AssetCompiler::IPlugin
}
void init() {
createPreviewUniverse();
createTileUniverse();
m_viewport.is_ortho = false;
m_viewport.fov = degreesToRadians(60.f);
m_viewport.near = 0.1f;
m_viewport.far = 10000.f;
}
Meta getMeta(const Path& path) const
{
Meta meta;
@ -2587,14 +2591,6 @@ struct EnvironmentProbePlugin final : PropertyGrid::IPlugin
: m_app(app)
, m_probes(app.getAllocator())
{
Engine& engine = app.getEngine();
PluginManager& plugin_manager = engine.getPluginManager();
Renderer* renderer = static_cast<Renderer*>(plugin_manager.getPlugin("renderer"));
IAllocator& allocator = app.getAllocator();
ResourceManagerHub& rm = engine.getResourceManager();
PipelineResource* pres = rm.load<PipelineResource>(Path("pipelines/main.pln"));
m_pipeline = Pipeline::create(*renderer, pres, "PROBE", allocator);
m_ibl_filter_shader = rm.load<Shader>(Path("pipelines/ibl_filter.shd"));
}
@ -2603,6 +2599,16 @@ struct EnvironmentProbePlugin final : PropertyGrid::IPlugin
m_ibl_filter_shader->decRefCount();
}
void init() {
Engine& engine = m_app.getEngine();
PluginManager& plugin_manager = engine.getPluginManager();
Renderer* renderer = static_cast<Renderer*>(plugin_manager.getPlugin("renderer"));
IAllocator& allocator = m_app.getAllocator();
ResourceManagerHub& rm = engine.getResourceManager();
PipelineResource* pres = rm.load<PipelineResource>(Path("pipelines/main.pln"));
m_pipeline = Pipeline::create(*renderer, pres, "PROBE", allocator);
m_ibl_filter_shader = rm.load<Shader>(Path("pipelines/ibl_filter.shd"));
}
bool saveCubemap(u64 probe_guid, const Vec4* data, u32 texture_size, u32 mips_count)
{
@ -3769,6 +3775,11 @@ struct StudioAppPlugin : StudioApp::IPlugin
property_grid.addPlugin(m_model_properties_plugin);
property_grid.addPlugin(m_env_probe_plugin);
property_grid.addPlugin(m_terrain_plugin);
m_scene_view.init();
m_game_view.init();
m_env_probe_plugin.init();
m_model_plugin.init();
}
void showEnvironmentProbeGizmo(UniverseView& view, ComponentUID cmp) {

View file

@ -596,15 +596,7 @@ SceneView::SceneView(StudioApp& app)
Engine& engine = m_editor.getEngine();
IAllocator& allocator = engine.getAllocator();
auto* renderer = static_cast<Renderer*>(engine.getPluginManager().getPlugin("renderer"));
PipelineResource* pres = engine.getResourceManager().load<PipelineResource>(Path("pipelines/main.pln"));
m_pipeline = Pipeline::create(*renderer, pres, "SCENE_VIEW", engine.getAllocator());
m_pipeline->addCustomCommandHandler("renderSelection").callback.bind<&SceneView::renderSelection>(this);
m_pipeline->addCustomCommandHandler("renderGizmos").callback.bind<&SceneView::renderGizmos>(this);
m_pipeline->addCustomCommandHandler("renderIcons").callback.bind<&SceneView::renderIcons>(this);
ResourceManagerHub& rm = engine.getResourceManager();
m_debug_shape_shader = rm.load<Shader>(Path("pipelines/debug_shape.shd"));
m_copy_move_action.init("Duplicate move", "Duplicate entity when moving with gizmo", "duplicateEntityMove", "", false);
m_orbit_action.init("Orbit", "Orbit with RMB", "orbitRMB", "", false);
@ -636,6 +628,18 @@ SceneView::SceneView(StudioApp& app)
m_editor.setView(m_view);
}
void SceneView::init() {
Engine& engine = m_editor.getEngine();
auto* renderer = static_cast<Renderer*>(engine.getPluginManager().getPlugin("renderer"));
PipelineResource* pres = engine.getResourceManager().load<PipelineResource>(Path("pipelines/main.pln"));
m_pipeline = Pipeline::create(*renderer, pres, "SCENE_VIEW", engine.getAllocator());
m_pipeline->addCustomCommandHandler("renderSelection").callback.bind<&SceneView::renderSelection>(this);
m_pipeline->addCustomCommandHandler("renderGizmos").callback.bind<&SceneView::renderGizmos>(this);
m_pipeline->addCustomCommandHandler("renderIcons").callback.bind<&SceneView::renderIcons>(this);
ResourceManagerHub& rm = engine.getResourceManager();
m_debug_shape_shader = rm.load<Shader>(Path("pipelines/debug_shape.shd"));
}
void SceneView::resetCameraSpeed()
{

View file

@ -36,6 +36,7 @@ struct SceneView : StudioApp::GUIPlugin
void onWindowGUI() override;
Pipeline* getPipeline() { return m_pipeline.get(); }
const char* getName() const override { return "scene_view"; }
void init();
private:
void manipulate();