Staged
This commit is contained in:
parent
90f5569855
commit
ba42be46ba
@ -1,37 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
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<DockPanelContext> dockPanelModules;
|
|
||||||
extern std::vector<ServiceScriptContext> serviceScriptModules;
|
|
||||||
extern DockPanelObject* currentDockPanelExecution;
|
|
||||||
|
|
||||||
void loadDockPanels();
|
|
||||||
void loadServiceScripts();
|
|
||||||
|
|
||||||
void registerEditorEngineFunctions();
|
|
||||||
void registerEditorEngineStructs();
|
|
||||||
} // namespace StudioAPI
|
|
||||||
} // namespace Deer
|
|
||||||
@ -102,14 +102,11 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
|
|
||||||
|
|
||||||
// TerrainEditor::onImGui();
|
// TerrainEditor::onImGui();
|
||||||
// viewport_onImGui();
|
// viewport_onImGui();
|
||||||
|
|
||||||
AngelScriptEngine::render();
|
AngelScriptEngine::render();
|
||||||
|
|
||||||
ImGui::ShowMetricsWindow();
|
|
||||||
|
|
||||||
Scene::gizmoRenderer.refresh();
|
Scene::gizmoRenderer.refresh();
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,10 @@ FrameBuffer renderMeshPreview(GPUMesh mesh) {
|
|||||||
return mainRenderService.renderMeshPreview(mesh);
|
return mainRenderService.renderMeshPreview(mesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FrameBuffer renderMeshPreview(GPUMesh mesh, float fase) {
|
||||||
|
return mainRenderService.renderMeshPreview(mesh, fase);
|
||||||
|
}
|
||||||
|
|
||||||
void setSceneCamera(SceneCamera sc) {
|
void setSceneCamera(SceneCamera sc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18,12 +22,10 @@ class RenderService : Service {
|
|||||||
|
|
||||||
shaderC.shader = Resource::loadShader("shader.glsl");
|
shaderC.shader = Resource::loadShader("shader.glsl");
|
||||||
|
|
||||||
|
|
||||||
Engine::print("CAM : " + sceneCamera.transform.position.x + " " + sceneCamera.transform.scale.x + " : " + sceneCamera.camera.aspect);
|
Engine::print("CAM : " + sceneCamera.transform.position.x + " " + sceneCamera.transform.scale.x + " : " + sceneCamera.camera.aspect);
|
||||||
sceneCamera.transform.position.z = -3;
|
sceneCamera.transform.position.z = -3;
|
||||||
sceneCamera.transform.position.y = 1;
|
sceneCamera.transform.position.y = 1;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameBuffer renderMeshPreview(GPUMesh mesh) {
|
FrameBuffer renderMeshPreview(GPUMesh mesh) {
|
||||||
@ -31,6 +33,18 @@ class RenderService : Service {
|
|||||||
|
|
||||||
buffer.clearRGBA(0, 0, 0, 0);
|
buffer.clearRGBA(0, 0, 0, 0);
|
||||||
meshC.meshResource = mesh;
|
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);
|
mainRenderService.env.render(buffer, mainRenderService.sceneCamera);
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import FrameBuffer renderMeshPreview(GPUMesh mesh) from "Previewer";
|
import FrameBuffer renderMeshPreview(GPUMesh mesh) from "Previewer";
|
||||||
|
import FrameBuffer renderMeshPreview(GPUMesh mesh, float fase) from "Previewer";
|
||||||
string selectedResource = "";
|
string selectedResource = "";
|
||||||
|
|
||||||
class ResourceExplorer : Panel {
|
class ResourceExplorer : Panel {
|
||||||
@ -6,6 +7,7 @@ class ResourceExplorer : Panel {
|
|||||||
array<string> subFolders;
|
array<string> subFolders;
|
||||||
array<string> subFiles;
|
array<string> subFiles;
|
||||||
bool alreadyRendered = false;
|
bool alreadyRendered = false;
|
||||||
|
float fase = 0;
|
||||||
|
|
||||||
dictionary meshFrameBuffer;
|
dictionary meshFrameBuffer;
|
||||||
|
|
||||||
@ -18,12 +20,14 @@ class ResourceExplorer : Panel {
|
|||||||
currentPath = path;
|
currentPath = path;
|
||||||
subFolders = Resource::getResourceFolders(path);
|
subFolders = Resource::getResourceFolders(path);
|
||||||
subFiles = Resource::getResourceFiles(path);
|
subFiles = Resource::getResourceFiles(path);
|
||||||
|
fase = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void render() {
|
void render() {
|
||||||
alreadyRendered = false;
|
alreadyRendered = false;
|
||||||
renderMenuBar();
|
renderMenuBar();
|
||||||
UI::space();
|
UI::space();
|
||||||
|
fase += 0.3;
|
||||||
UI::automaticColumns(182);
|
UI::automaticColumns(182);
|
||||||
|
|
||||||
string temp_path = currentPath;
|
string temp_path = currentPath;
|
||||||
@ -45,17 +49,22 @@ class ResourceExplorer : Panel {
|
|||||||
ResourceType resType = Resource::getResourceType(filename);
|
ResourceType resType = Resource::getResourceType(filename);
|
||||||
bool selected = filename == selectedResource;
|
bool selected = filename == selectedResource;
|
||||||
|
|
||||||
if (resType == ResourceType::Mesh && !alreadyRendered) {
|
if (resType == ResourceType::Mesh) {
|
||||||
FrameBuffer frameBuffer;
|
FrameBuffer frameBuffer;
|
||||||
if (meshFrameBuffer.exists(filename)) {
|
//if (meshFrameBuffer.exists(filename)) {
|
||||||
frameBuffer = FrameBuffer(meshFrameBuffer[filename]);
|
// frameBuffer = FrameBuffer(meshFrameBuffer[filename]);
|
||||||
|
//
|
||||||
|
//} else {
|
||||||
|
// GPUMesh mesh = Resource::loadGPUMesh(filename);
|
||||||
|
// frameBuffer = renderMeshPreview(mesh);
|
||||||
|
// meshFrameBuffer[filename] = frameBuffer;
|
||||||
|
// alreadyRendered = true;
|
||||||
|
//}
|
||||||
|
|
||||||
} else {
|
|
||||||
GPUMesh mesh = Resource::loadGPUMesh(filename);
|
GPUMesh mesh = Resource::loadGPUMesh(filename);
|
||||||
frameBuffer = renderMeshPreview(mesh);
|
frameBuffer = renderMeshPreview(mesh, fase);
|
||||||
meshFrameBuffer[filename] = frameBuffer;
|
meshFrameBuffer[filename] = frameBuffer;
|
||||||
alreadyRendered = true;
|
alreadyRendered = true;
|
||||||
}
|
|
||||||
|
|
||||||
if (UI::cartIconButton(Path::getName(filename), frameBuffer, 128, UI::getAvailableSizeX())) {
|
if (UI::cartIconButton(Path::getName(filename), frameBuffer, 128, UI::getAvailableSizeX())) {
|
||||||
selectedResource = filename;
|
selectedResource = filename;
|
||||||
|
|||||||
30
imgui.ini
30
imgui.ini
@ -1,13 +1,13 @@
|
|||||||
[Window][DockSpace Demo]
|
[Window][DockSpace Demo]
|
||||||
Pos=0,0
|
Pos=0,0
|
||||||
Size=1920,1011
|
Size=2560,1371
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][ViewportPanel]
|
[Window][ViewportPanel]
|
||||||
Pos=433,34
|
Pos=559,34
|
||||||
Size=927,428
|
Size=1441,704
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,1
|
DockId=0x00000004,0
|
||||||
|
|
||||||
[Window][Debug##Default]
|
[Window][Debug##Default]
|
||||||
Pos=60,60
|
Pos=60,60
|
||||||
@ -16,13 +16,13 @@ Collapsed=0
|
|||||||
|
|
||||||
[Window][TreePanel]
|
[Window][TreePanel]
|
||||||
Pos=0,34
|
Pos=0,34
|
||||||
Size=431,428
|
Size=557,704
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000001,0
|
DockId=0x00000001,0
|
||||||
|
|
||||||
[Window][ResourceExplorer]
|
[Window][ResourceExplorer]
|
||||||
Pos=0,464
|
Pos=0,740
|
||||||
Size=1920,546
|
Size=2560,630
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,0
|
DockId=0x00000006,0
|
||||||
|
|
||||||
@ -33,8 +33,8 @@ Collapsed=0
|
|||||||
DockId=0xA1672E74,1
|
DockId=0xA1672E74,1
|
||||||
|
|
||||||
[Window][PropertiesPanel]
|
[Window][PropertiesPanel]
|
||||||
Pos=1362,34
|
Pos=2002,34
|
||||||
Size=558,428
|
Size=558,704
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000003,0
|
DockId=0x00000003,0
|
||||||
|
|
||||||
@ -61,17 +61,17 @@ Collapsed=0
|
|||||||
|
|
||||||
[Window][Dear ImGui Metrics/Debugger]
|
[Window][Dear ImGui Metrics/Debugger]
|
||||||
Pos=433,34
|
Pos=433,34
|
||||||
Size=927,428
|
Size=1567,704
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,0
|
DockId=0x00000004,0
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=1920,976 Split=Y
|
DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=2560,1336 Split=Y
|
||||||
DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,428 Split=X
|
DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,704 Split=X
|
||||||
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1360,645 Split=X Selected=0xD9E076F4
|
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1360,645 Split=X Selected=0xD9E076F4
|
||||||
DockNode ID=0x00000001 Parent=0x00000002 SizeRef=431,976 Selected=0x16E3C1E7
|
DockNode ID=0x00000001 Parent=0x00000002 SizeRef=557,976 Selected=0x16E3C1E7
|
||||||
DockNode ID=0x00000004 Parent=0x00000002 SizeRef=927,976 CentralNode=1 Selected=0xD9E076F4
|
DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1441,976 CentralNode=1 Selected=0x0F5FFC8C
|
||||||
DockNode ID=0x00000003 Parent=0x00000005 SizeRef=558,645 Selected=0x9876A79B
|
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
|
DockSpace ID=0xA1672E74 Pos=0,34 Size=1920,976 CentralNode=1 Selected=0x9ED090AF
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user