diff --git a/DeerStudio/headers/DeerStudio/EditorEngine.h.old b/DeerStudio/headers/DeerStudio/EditorEngine.h.old deleted file mode 100644 index 0f49ac2..0000000 --- a/DeerStudio/headers/DeerStudio/EditorEngine.h.old +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include -#include - -class asIScriptEngine; -class asIScriptModule; -class asIScriptContext; -class CScriptBuilder; - -namespace Deer { - // This namespace implements all interface ported from c++ ImGui to an easier lua aproach with simplifications - namespace StudioAPI { - class DockPanelContext; - class DockPanelObject; - class ServiceScriptContext; - - void initialize(); - void deinitialize(); - - void render(); - - // INTERNAL - // Panels - extern asIScriptEngine* scriptEngine; - extern CScriptBuilder scriptBuilder; - - extern std::vector dockPanelModules; - extern std::vector serviceScriptModules; - extern DockPanelObject* currentDockPanelExecution; - - void loadDockPanels(); - void loadServiceScripts(); - - void registerEditorEngineFunctions(); - void registerEditorEngineStructs(); - } // namespace StudioAPI -} // namespace Deer \ No newline at end of file diff --git a/DeerStudio/src/DeerStudio/DeerStudio.cpp b/DeerStudio/src/DeerStudio/DeerStudio.cpp index 1f38994..a1cb159 100644 --- a/DeerStudio/src/DeerStudio/DeerStudio.cpp +++ b/DeerStudio/src/DeerStudio/DeerStudio.cpp @@ -102,14 +102,11 @@ namespace Deer { } ImGui::PopStyleVar(); - // TerrainEditor::onImGui(); // viewport_onImGui(); AngelScriptEngine::render(); - ImGui::ShowMetricsWindow(); - Scene::gizmoRenderer.refresh(); ImGui::End(); } diff --git a/Editor/Modules/Previewer/MeshPreview.as b/Editor/Modules/Previewer/MeshPreview.as index 8c36972..f736e23 100644 --- a/Editor/Modules/Previewer/MeshPreview.as +++ b/Editor/Modules/Previewer/MeshPreview.as @@ -4,7 +4,11 @@ FrameBuffer renderMeshPreview(GPUMesh mesh) { return mainRenderService.renderMeshPreview(mesh); } -void setSceneCamera (SceneCamera sc) { +FrameBuffer renderMeshPreview(GPUMesh mesh, float fase) { + return mainRenderService.renderMeshPreview(mesh, fase); +} + +void setSceneCamera(SceneCamera sc) { } class RenderService : Service { @@ -18,11 +22,9 @@ class RenderService : Service { shaderC.shader = Resource::loadShader("shader.glsl"); - Engine::print("CAM : " + sceneCamera.transform.position.x + " " + sceneCamera.transform.scale.x + " : " + sceneCamera.camera.aspect); sceneCamera.transform.position.z = -3; sceneCamera.transform.position.y = 1; - } @@ -31,6 +33,18 @@ class RenderService : Service { buffer.clearRGBA(0, 0, 0, 0); meshC.meshResource = mesh; + child.transform.rotation = vec3(0, 0, 0); + mainRenderService.env.render(buffer, mainRenderService.sceneCamera); + + return buffer; + } + + FrameBuffer renderMeshPreview(GPUMesh mesh, float fase) { + FrameBuffer buffer = Resource::createLoadRGBA8FrameBuffer(mesh.path, 128, 128, 4); + + buffer.clearRGBA(0, 0, 0, 0); + meshC.meshResource = mesh; + child.transform.rotation = vec3(0, (1-(1/(1+fase * fase)))*45, 0); mainRenderService.env.render(buffer, mainRenderService.sceneCamera); return buffer; @@ -39,5 +53,5 @@ class RenderService : Service { Environment env; SceneCamera sceneCamera; MeshComponent meshC; - Entity child; -} \ No newline at end of file + Entity child; +} diff --git a/Editor/Modules/ResourceExplorer/ResourceExplorer.as b/Editor/Modules/ResourceExplorer/ResourceExplorer.as index cb213ed..6e4973b 100644 --- a/Editor/Modules/ResourceExplorer/ResourceExplorer.as +++ b/Editor/Modules/ResourceExplorer/ResourceExplorer.as @@ -1,4 +1,5 @@ import FrameBuffer renderMeshPreview(GPUMesh mesh) from "Previewer"; +import FrameBuffer renderMeshPreview(GPUMesh mesh, float fase) from "Previewer"; string selectedResource = ""; class ResourceExplorer : Panel { @@ -6,6 +7,7 @@ class ResourceExplorer : Panel { array subFolders; array subFiles; bool alreadyRendered = false; + float fase = 0; dictionary meshFrameBuffer; @@ -18,12 +20,14 @@ class ResourceExplorer : Panel { currentPath = path; subFolders = Resource::getResourceFolders(path); subFiles = Resource::getResourceFiles(path); + fase = 0; } void render() { alreadyRendered = false; renderMenuBar(); UI::space(); + fase += 0.3; UI::automaticColumns(182); string temp_path = currentPath; @@ -45,18 +49,23 @@ class ResourceExplorer : Panel { ResourceType resType = Resource::getResourceType(filename); bool selected = filename == selectedResource; - if (resType == ResourceType::Mesh && !alreadyRendered) { + if (resType == ResourceType::Mesh) { FrameBuffer frameBuffer; - if (meshFrameBuffer.exists(filename)) { - frameBuffer = FrameBuffer(meshFrameBuffer[filename]); + //if (meshFrameBuffer.exists(filename)) { + // frameBuffer = FrameBuffer(meshFrameBuffer[filename]); +// + //} else { + // GPUMesh mesh = Resource::loadGPUMesh(filename); + // frameBuffer = renderMeshPreview(mesh); + // meshFrameBuffer[filename] = frameBuffer; + // alreadyRendered = true; + //} + + GPUMesh mesh = Resource::loadGPUMesh(filename); + frameBuffer = renderMeshPreview(mesh, fase); + meshFrameBuffer[filename] = frameBuffer; + alreadyRendered = true; - } else { - GPUMesh mesh = Resource::loadGPUMesh(filename); - frameBuffer = renderMeshPreview(mesh); - meshFrameBuffer[filename] = frameBuffer; - alreadyRendered = true; - } - if (UI::cartIconButton(Path::getName(filename), frameBuffer, 128, UI::getAvailableSizeX())) { selectedResource = filename; } diff --git a/imgui.ini b/imgui.ini index 4573f2a..183b723 100644 --- a/imgui.ini +++ b/imgui.ini @@ -1,13 +1,13 @@ [Window][DockSpace Demo] Pos=0,0 -Size=1920,1011 +Size=2560,1371 Collapsed=0 [Window][ViewportPanel] -Pos=433,34 -Size=927,428 +Pos=559,34 +Size=1441,704 Collapsed=0 -DockId=0x00000004,1 +DockId=0x00000004,0 [Window][Debug##Default] Pos=60,60 @@ -16,13 +16,13 @@ Collapsed=0 [Window][TreePanel] Pos=0,34 -Size=431,428 +Size=557,704 Collapsed=0 DockId=0x00000001,0 [Window][ResourceExplorer] -Pos=0,464 -Size=1920,546 +Pos=0,740 +Size=2560,630 Collapsed=0 DockId=0x00000006,0 @@ -33,8 +33,8 @@ Collapsed=0 DockId=0xA1672E74,1 [Window][PropertiesPanel] -Pos=1362,34 -Size=558,428 +Pos=2002,34 +Size=558,704 Collapsed=0 DockId=0x00000003,0 @@ -61,17 +61,17 @@ Collapsed=0 [Window][Dear ImGui Metrics/Debugger] Pos=433,34 -Size=927,428 +Size=1567,704 Collapsed=0 DockId=0x00000004,0 [Docking][Data] -DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=1920,976 Split=Y - DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,428 Split=X +DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=2560,1336 Split=Y + DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,704 Split=X DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1360,645 Split=X Selected=0xD9E076F4 - DockNode ID=0x00000001 Parent=0x00000002 SizeRef=431,976 Selected=0x16E3C1E7 - DockNode ID=0x00000004 Parent=0x00000002 SizeRef=927,976 CentralNode=1 Selected=0xD9E076F4 + DockNode ID=0x00000001 Parent=0x00000002 SizeRef=557,976 Selected=0x16E3C1E7 + DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1441,976 CentralNode=1 Selected=0x0F5FFC8C DockNode ID=0x00000003 Parent=0x00000005 SizeRef=558,645 Selected=0x9876A79B - DockNode ID=0x00000006 Parent=0x0AC2E849 SizeRef=1920,546 Selected=0x018A0F9B + DockNode ID=0x00000006 Parent=0x0AC2E849 SizeRef=1920,630 Selected=0x018A0F9B DockSpace ID=0xA1672E74 Pos=0,34 Size=1920,976 CentralNode=1 Selected=0x9ED090AF