From 3817b5a3559af973fccf0ef2d767bd94ae03dcae Mon Sep 17 00:00:00 2001 From: Chewico Date: Fri, 5 Dec 2025 13:20:02 +0100 Subject: [PATCH] Scene videw working --- Deer/Include/Deer/Resource.h | 2 +- Deer/Include/DeerRender/FrameBuffer.h | 29 +++++---- Deer/src/Deer/Scene/Scene.cpp | 2 +- .../DeerRender/FrameBuffer/FrameBuffer.cpp | 23 +++++++ .../FrameBuffer/FrameBufferManager.cpp | 64 ------------------- .../DeerStudio/StudioAPI/FrameBuffer.h | 2 +- .../DeerStudio/StudioAPI/GenericRefStructs.h | 2 +- .../Registers/FrameBuffer.cpp | 3 +- .../src/DeerStudio/StudioAPI/Environment.cpp | 16 ++++- .../src/DeerStudio/StudioAPI/FrameBuffer.cpp | 40 ++++++------ DeerStudio/src/DeerStudio/StudioAPI/UI.cpp | 15 ++--- Editor/Modules/ActiveEntity/as.predefined | 5 +- .../Modules/EntityManipulation/as.predefined | 5 +- Editor/Modules/ResourceExplorer/as.predefined | 5 +- Editor/Modules/TreeExplorer/as.predefined | 5 +- Editor/Modules/Viewport/Viewport.as | 2 +- Editor/Modules/Viewport/as.predefined | 11 ++-- imgui.ini | 8 +-- 18 files changed, 107 insertions(+), 132 deletions(-) create mode 100644 Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp diff --git a/Deer/Include/Deer/Resource.h b/Deer/Include/Deer/Resource.h index 550637d..ec835f7 100644 --- a/Deer/Include/Deer/Resource.h +++ b/Deer/Include/Deer/Resource.h @@ -21,7 +21,7 @@ namespace Deer { bool isValid() const { return ResourceManager::isValid(*this); } T& getData() { return ResourceManager::getResourceData(*this); } - const std::string& getStorageId() const { return ResourceManager::getStorageId(); } + const std::string& getStorageId() const { return ResourceManager::getStorageId(*this); } inline explicit operator bool() const { return resourceId >= 0; } diff --git a/Deer/Include/DeerRender/FrameBuffer.h b/Deer/Include/DeerRender/FrameBuffer.h index 71b4102..302aebe 100644 --- a/Deer/Include/DeerRender/FrameBuffer.h +++ b/Deer/Include/DeerRender/FrameBuffer.h @@ -1,22 +1,29 @@ #pragma once #include "DeerRender/Render/FrameBuffer.h" +#include "DeerRender/Resource.h" #include #include namespace Deer { - // TODO: Add safety - namespace FrameBufferManager { - uint16_t createRGBA8FrameBuffer(std::string& name, int, int); - void resizeFrameBuffer(uint16_t frameBufferId, int, int); + struct FrameBufferData { + enum class FrameBufferType : int { + RGBA8 = 1 + }; - int getFrameBufferWidth(uint16_t frameBufferId); - int getFrameBufferHeight(uint16_t frameBufferId); + FrameBufferType frameBufferType; + int sizeX, sizeY; + int samples; + + FrameBufferData(int _sizeX = 100, int _sizeY = 100, int _samples = 4, FrameBufferType type = FrameBufferType::RGBA8) + : sizeX(_sizeX), sizeY(_sizeY), samples(_samples), frameBufferType(type) { } + }; - const std::string& getFrameBufferName(uint16_t); - uint16_t getFrameBufferId(std::string& name); - FrameBuffer& getFrameBuffer(uint16_t); + template <> + class ResourceBuilder { + public: + using BaseDataType = FrameBufferData; + static Scope buildResource(const BaseDataType& baseData); + }; - void unloadAllFrameBuffer(); - } } \ No newline at end of file diff --git a/Deer/src/Deer/Scene/Scene.cpp b/Deer/src/Deer/Scene/Scene.cpp index dd61c4f..b52868b 100755 --- a/Deer/src/Deer/Scene/Scene.cpp +++ b/Deer/src/Deer/Scene/Scene.cpp @@ -27,7 +27,7 @@ namespace Deer { #ifdef DEER_RENDER ResourceManager::unloadResources(); ResourceManager::unloadResources(); - FrameBufferManager::unloadAllFrameBuffer(); + ResourceManager::unloadResources(); #endif } diff --git a/Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp b/Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp new file mode 100644 index 0000000..6eca93f --- /dev/null +++ b/Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp @@ -0,0 +1,23 @@ +#include "DeerRender/FrameBuffer.h" + +namespace Deer { + Scope ResourceBuilder::buildResource(const FrameBufferData& baseData) { + TextureBufferType tbt; + switch (baseData.frameBufferType) + { + case FrameBufferData::FrameBufferType::RGBA8 : + tbt = TextureBufferType::RGBA8; + break; + + default: + break; + } + + FrameBufferSpecification spec(baseData.sizeX, baseData.sizeY, {tbt}, baseData.samples); + + + Scope frameBuffer = Scope(FrameBuffer::create(spec)); + return frameBuffer; + + } +} \ No newline at end of file diff --git a/Deer/src/DeerRender/FrameBuffer/FrameBufferManager.cpp b/Deer/src/DeerRender/FrameBuffer/FrameBufferManager.cpp index 8cc14bc..664ca1e 100644 --- a/Deer/src/DeerRender/FrameBuffer/FrameBufferManager.cpp +++ b/Deer/src/DeerRender/FrameBuffer/FrameBufferManager.cpp @@ -15,69 +15,5 @@ namespace Deer { std::unordered_map frameBuffers_name_id_map; } - uint16_t FrameBufferManager::createRGBA8FrameBuffer(std::string& name, int x, int y) { - FrameBufferSpecification specs( - x, y, - {TextureBufferType::RGBA8}, 4, - false); - - FrameBuffer* frameBuffer = FrameBuffer::create(specs); - - uint16_t frameBufferId = maxFrameBufferId; - maxFrameBufferId++; - frameBuffers[frameBufferId].frameBuffer_data = frameBuffer; - frameBuffers[frameBufferId].frameBuffer_name = name; - - frameBuffers_name_id_map[name] = frameBufferId; - return frameBufferId; - } - - void FrameBufferManager::resizeFrameBuffer(uint16_t frameBufferId, int x, int y) { - FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data; - - frameBuffer->resize(x, y); - } - - int FrameBufferManager::getFrameBufferWidth(uint16_t frameBufferId) { - FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data; - - return frameBuffer->getSpecification().width; - } - - int FrameBufferManager::getFrameBufferHeight(uint16_t frameBufferId) { - FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data; - - return frameBuffer->getSpecification().height; - } - - const std::string& FrameBufferManager::getFrameBufferName(uint16_t id) { - DEER_CORE_ASSERT(id >= 0 && id < maxFrameBufferId, "Invalid frame buffer id {0}", id); - - return frameBuffers[id].frameBuffer_name; - } - - FrameBuffer& FrameBufferManager::getFrameBuffer(uint16_t id) { - DEER_CORE_ASSERT(id > 0 && id < maxFrameBufferId, "Invalid frame buffer id {0}", id); - - return *frameBuffers[id].frameBuffer_data; - } - - uint16_t FrameBufferManager::getFrameBufferId(std::string& name) { - return frameBuffers_name_id_map[name]; - } - - void FrameBufferManager::unloadAllFrameBuffer() { - for (int x = 1; x < maxFrameBufferId; x++) { - delete frameBuffers[x].frameBuffer_data; - frameBuffers[x].frameBuffer_data = nullptr; - } - - frameBuffers_name_id_map.clear(); - - maxFrameBufferId = 1; - frameBuffers[0].frameBuffer_data = nullptr; - frameBuffers[0].frameBuffer_name = "NULL"; - frameBuffers_name_id_map["NULL"] = 0; - } } \ No newline at end of file diff --git a/DeerStudio/headers/DeerStudio/StudioAPI/FrameBuffer.h b/DeerStudio/headers/DeerStudio/StudioAPI/FrameBuffer.h index 4e06d85..0e484c4 100644 --- a/DeerStudio/headers/DeerStudio/StudioAPI/FrameBuffer.h +++ b/DeerStudio/headers/DeerStudio/StudioAPI/FrameBuffer.h @@ -18,7 +18,7 @@ namespace Deer { std::string getName(); }; - FrameBufferStruct createRGBA8FrameBuffer(std::string& name, int, int); + FrameBufferStruct createLoadRGBA8FrameBuffer(std::string& name, int sizeX, int sizeY, int samples); FrameBufferStruct getFrameBuffer(std::string& name); void frameBuffer_constructor(FrameBufferHandleStruct* mem); diff --git a/DeerStudio/headers/DeerStudio/StudioAPI/GenericRefStructs.h b/DeerStudio/headers/DeerStudio/StudioAPI/GenericRefStructs.h index 88e3db7..eca62d8 100644 --- a/DeerStudio/headers/DeerStudio/StudioAPI/GenericRefStructs.h +++ b/DeerStudio/headers/DeerStudio/StudioAPI/GenericRefStructs.h @@ -21,7 +21,7 @@ namespace Deer { struct FrameBufferHandleStruct { FrameBufferHandleStruct(int _id = 0) : frameBufferId(_id) {} - uint16_t frameBufferId; + int32_t frameBufferId = 0; }; } // namespace StudioAPI } // namespace Deer \ No newline at end of file diff --git a/DeerStudio/src/DeerStudio/AngelScriptEngine/Registers/FrameBuffer.cpp b/DeerStudio/src/DeerStudio/AngelScriptEngine/Registers/FrameBuffer.cpp index 7c5083b..cdc8e24 100644 --- a/DeerStudio/src/DeerStudio/AngelScriptEngine/Registers/FrameBuffer.cpp +++ b/DeerStudio/src/DeerStudio/AngelScriptEngine/Registers/FrameBuffer.cpp @@ -15,8 +15,7 @@ namespace Deer { REGISTER_EXT_OBJECT_CONSTRUCTOR("FrameBuffer", "void f()", StudioAPI::frameBuffer_constructor); scriptEngine->SetDefaultNamespace("Engine"); - REGISTER_GLOBAL_FUNC("FrameBuffer createRGBA8FrameBuffer(const string&in, int, int)", StudioAPI::createRGBA8FrameBuffer); - REGISTER_GLOBAL_FUNC("FrameBuffer getFrameBuffer(const string&in)", StudioAPI::getFrameBuffer); + REGISTER_GLOBAL_FUNC("FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4)", StudioAPI::createLoadRGBA8FrameBuffer); scriptEngine->SetDefaultNamespace(""); } } // namespace Deer \ No newline at end of file diff --git a/DeerStudio/src/DeerStudio/StudioAPI/Environment.cpp b/DeerStudio/src/DeerStudio/StudioAPI/Environment.cpp index 3f84a10..d5dda74 100644 --- a/DeerStudio/src/DeerStudio/StudioAPI/Environment.cpp +++ b/DeerStudio/src/DeerStudio/StudioAPI/Environment.cpp @@ -16,8 +16,20 @@ namespace Deer { std::vector environments{&Scene::environment}; void EnvironmentStruct::render(FrameBufferHandleStruct frameBuffer_handle, SceneCamera& sc) { - FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer(frameBuffer_handle.frameBufferId); - Environment& env = *environments[environmentId]; + Resource frameBufferResource = Resource::unsafeFromId(frameBuffer_handle.frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); + + Environment* envPtr = nullptr; + if (environmentId < 0) { + envPtr = &Scene::environment; + } else { + Resource environmentResource = + Resource::unsafeFromId(environmentId); + + envPtr = &environmentResource.getData(); + } + + Environment& env = *envPtr; frameBuffer.bind(); diff --git a/DeerStudio/src/DeerStudio/StudioAPI/FrameBuffer.cpp b/DeerStudio/src/DeerStudio/StudioAPI/FrameBuffer.cpp index 52f658b..c1d2c6b 100644 --- a/DeerStudio/src/DeerStudio/StudioAPI/FrameBuffer.cpp +++ b/DeerStudio/src/DeerStudio/StudioAPI/FrameBuffer.cpp @@ -5,38 +5,45 @@ namespace Deer { namespace StudioAPI { int FrameBufferStruct::getWidth() { - return FrameBufferManager::getFrameBufferWidth(frameBufferId); + Resource frameBufferResource = Resource::unsafeFromId(frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); + return frameBuffer.getSpecification().width; } int FrameBufferStruct::getHeight() { - return FrameBufferManager::getFrameBufferWidth(frameBufferId); + Resource frameBufferResource = Resource::unsafeFromId(frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); + return frameBuffer.getSpecification().height; } void FrameBufferStruct::resize(int x, int y) { - FrameBufferManager::resizeFrameBuffer(frameBufferId, x, y); + Resource frameBufferResource = Resource::unsafeFromId(frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); + + frameBuffer.resize(x, y); } void FrameBufferStruct::clearRGBA(int r, int g, int b, int a) { - FrameBuffer& frameBuffer = - FrameBufferManager::getFrameBuffer(frameBufferId); + + Resource frameBufferResource = Resource::unsafeFromId(frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); frameBuffer.bind(); frameBuffer.clear(); - uint8_t clearColor[4]{(uint8_t)r, (uint8_t)g, (uint8_t)b, - (uint8_t)a}; + uint8_t clearColor[4]{(uint8_t)r, (uint8_t)g, (uint8_t)b, (uint8_t)a}; frameBuffer.clearBuffer(0, &clearColor); frameBuffer.unbind(); } std::string FrameBufferStruct::getName() { - return FrameBufferManager::getFrameBufferName(frameBufferId); + return Resource::unsafeFromId(frameBufferId).getStorageId(); } - FrameBufferStruct createRGBA8FrameBuffer(std::string& name, int x, - int y) { - uint16_t id = - FrameBufferManager::createRGBA8FrameBuffer(name, x, y); - return FrameBufferStruct(id); + FrameBufferStruct createLoadRGBA8FrameBuffer(std::string& name, int sizeX, int sizeY, int samples) { + FrameBufferData fbd(sizeX, sizeY, samples, FrameBufferData::FrameBufferType::RGBA8); + Resource frameBuffer = ResourceManager::loadResourceFromData(fbd, name); + + return FrameBufferStruct(frameBuffer.getResourceId()); } void frameBuffer_constructor(FrameBufferHandleStruct* mem) { @@ -44,11 +51,8 @@ namespace Deer { } bool FrameBufferStruct::isValid() { - return frameBufferId > 0 && frameBufferId < 100; - } - - FrameBufferStruct getFrameBuffer(std::string& name) { - return FrameBufferManager::getFrameBufferId(name); + DEER_CORE_TRACE("{} fbid", frameBufferId); + return frameBufferId >= 0 && frameBufferId < 100; } } // namespace StudioAPI } // namespace Deer \ No newline at end of file diff --git a/DeerStudio/src/DeerStudio/StudioAPI/UI.cpp b/DeerStudio/src/DeerStudio/StudioAPI/UI.cpp index 1037132..1fa8093 100644 --- a/DeerStudio/src/DeerStudio/StudioAPI/UI.cpp +++ b/DeerStudio/src/DeerStudio/StudioAPI/UI.cpp @@ -221,10 +221,10 @@ namespace Deer { ImGui::Image((void*)(uint64_t)iconId, ImVec2(size, size), ImVec2(0, 1), ImVec2(1, 0), ImVec4(0.5f, 0.6f, 0.8f, 1.0f), ImVec4(0,0,0,0)); } - void drawFrameBuffer(FrameBufferHandleStruct frameBuffer_handle, - int sizeX, int sizeY) { - FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer( - frameBuffer_handle.frameBufferId); + void drawFrameBuffer(FrameBufferHandleStruct frameBuffer_handle, int sizeX, int sizeY) { + + Resource frameBufferResource = Resource::unsafeFromId(frameBuffer_handle.frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); frameBuffer.bind(); int frameBufferId = frameBuffer.getTextureBufferID(0); @@ -233,10 +233,9 @@ namespace Deer { frameBuffer.unbind(); } - void drawFrameBufferCentered(FrameBufferHandleStruct frameBuffer_handle, - int _x, int _y) { - FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer( - frameBuffer_handle.frameBufferId); + void drawFrameBufferCentered(FrameBufferHandleStruct frameBuffer_handle, int _x, int _y) { + Resource frameBufferResource = Resource::unsafeFromId(frameBuffer_handle.frameBufferId); + FrameBuffer& frameBuffer = frameBufferResource.getData(); int frameBufferId = frameBuffer.getTextureBufferID(); float sizeX; diff --git a/Editor/Modules/ActiveEntity/as.predefined b/Editor/Modules/ActiveEntity/as.predefined index db362c6..0fd4352 100644 --- a/Editor/Modules/ActiveEntity/as.predefined +++ b/Editor/Modules/ActiveEntity/as.predefined @@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); } namespace Resource { string[]@ getResourceFiles(string&in path); } namespace Resource { ResourceType getResourceType(string&in path); } namespace Engine { Environment getMainEnvironment(); } -namespace Engine { Environment createEnvironment(); } +namespace Engine { Environment createLoadEnvironment(const string&in envId); } namespace Engine { Entity getRoot(); } namespace Engine { void print(const string&in text); } namespace Path { string getParent(const string&in path); } namespace Path { string getParentName(const string&in path); } namespace Path { string getName(const string&in path); } namespace Path { string[]@ divide(const string&in path); } -namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); } -namespace Engine { FrameBuffer getFrameBuffer(const string&in); } +namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); } diff --git a/Editor/Modules/EntityManipulation/as.predefined b/Editor/Modules/EntityManipulation/as.predefined index db362c6..0fd4352 100644 --- a/Editor/Modules/EntityManipulation/as.predefined +++ b/Editor/Modules/EntityManipulation/as.predefined @@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); } namespace Resource { string[]@ getResourceFiles(string&in path); } namespace Resource { ResourceType getResourceType(string&in path); } namespace Engine { Environment getMainEnvironment(); } -namespace Engine { Environment createEnvironment(); } +namespace Engine { Environment createLoadEnvironment(const string&in envId); } namespace Engine { Entity getRoot(); } namespace Engine { void print(const string&in text); } namespace Path { string getParent(const string&in path); } namespace Path { string getParentName(const string&in path); } namespace Path { string getName(const string&in path); } namespace Path { string[]@ divide(const string&in path); } -namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); } -namespace Engine { FrameBuffer getFrameBuffer(const string&in); } +namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); } diff --git a/Editor/Modules/ResourceExplorer/as.predefined b/Editor/Modules/ResourceExplorer/as.predefined index db362c6..0fd4352 100644 --- a/Editor/Modules/ResourceExplorer/as.predefined +++ b/Editor/Modules/ResourceExplorer/as.predefined @@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); } namespace Resource { string[]@ getResourceFiles(string&in path); } namespace Resource { ResourceType getResourceType(string&in path); } namespace Engine { Environment getMainEnvironment(); } -namespace Engine { Environment createEnvironment(); } +namespace Engine { Environment createLoadEnvironment(const string&in envId); } namespace Engine { Entity getRoot(); } namespace Engine { void print(const string&in text); } namespace Path { string getParent(const string&in path); } namespace Path { string getParentName(const string&in path); } namespace Path { string getName(const string&in path); } namespace Path { string[]@ divide(const string&in path); } -namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); } -namespace Engine { FrameBuffer getFrameBuffer(const string&in); } +namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); } diff --git a/Editor/Modules/TreeExplorer/as.predefined b/Editor/Modules/TreeExplorer/as.predefined index db362c6..0fd4352 100644 --- a/Editor/Modules/TreeExplorer/as.predefined +++ b/Editor/Modules/TreeExplorer/as.predefined @@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); } namespace Resource { string[]@ getResourceFiles(string&in path); } namespace Resource { ResourceType getResourceType(string&in path); } namespace Engine { Environment getMainEnvironment(); } -namespace Engine { Environment createEnvironment(); } +namespace Engine { Environment createLoadEnvironment(const string&in envId); } namespace Engine { Entity getRoot(); } namespace Engine { void print(const string&in text); } namespace Path { string getParent(const string&in path); } namespace Path { string getParentName(const string&in path); } namespace Path { string getName(const string&in path); } namespace Path { string[]@ divide(const string&in path); } -namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); } -namespace Engine { FrameBuffer getFrameBuffer(const string&in); } +namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); } diff --git a/Editor/Modules/Viewport/Viewport.as b/Editor/Modules/Viewport/Viewport.as index 29031ec..f7befe2 100644 --- a/Editor/Modules/Viewport/Viewport.as +++ b/Editor/Modules/Viewport/Viewport.as @@ -70,7 +70,7 @@ class ViewportPanel : Panel { } void init() { - frameBuffer = Engine::createRGBA8FrameBuffer("MainFrameBuffer", 400, 400); + frameBuffer = Engine::createLoadRGBA8FrameBuffer("MainFrameBuffer", 400, 400); mainEnv = Engine::getMainEnvironment(); sceneCamera.transform.position = vec3(0, 1, -2); diff --git a/Editor/Modules/Viewport/as.predefined b/Editor/Modules/Viewport/as.predefined index 3c82c3e..0fd4352 100644 --- a/Editor/Modules/Viewport/as.predefined +++ b/Editor/Modules/Viewport/as.predefined @@ -69,9 +69,9 @@ enum key { LeftSuper = 530, RightSuper = 534, LeftCtrl = 527, - MouseLeft = 641, - MouseRight = 642, - MouseMiddle = 643 + MouseLeft = 656, + MouseRight = 657, + MouseMiddle = 658 } class ref { ~ref(); @@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); } namespace Resource { string[]@ getResourceFiles(string&in path); } namespace Resource { ResourceType getResourceType(string&in path); } namespace Engine { Environment getMainEnvironment(); } -namespace Engine { Environment createEnvironment(); } +namespace Engine { Environment createLoadEnvironment(const string&in envId); } namespace Engine { Entity getRoot(); } namespace Engine { void print(const string&in text); } namespace Path { string getParent(const string&in path); } namespace Path { string getParentName(const string&in path); } namespace Path { string getName(const string&in path); } namespace Path { string[]@ divide(const string&in path); } -namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); } -namespace Engine { FrameBuffer getFrameBuffer(const string&in); } +namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); } diff --git a/imgui.ini b/imgui.ini index 31b22e4..d8c774c 100644 --- a/imgui.ini +++ b/imgui.ini @@ -4,10 +4,10 @@ Size=1920,1011 Collapsed=0 [Window][ViewportPanel] -Pos=333,24 -Size=1282,732 +Pos=433,34 +Size=1057,615 Collapsed=0 -DockId=0xA1672E74,0 +DockId=0x00000004,1 [Window][Debug##Default] Pos=60,60 @@ -70,7 +70,7 @@ DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=1920,976 Split=Y DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,615 Split=X DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1490,645 Split=X Selected=0xD9E076F4 DockNode ID=0x00000001 Parent=0x00000002 SizeRef=431,976 Selected=0x16E3C1E7 - DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1057,976 CentralNode=1 Selected=0xD9E076F4 + DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1057,976 CentralNode=1 Selected=0x0F5FFC8C DockNode ID=0x00000003 Parent=0x00000005 SizeRef=428,645 Selected=0x9876A79B DockNode ID=0x00000006 Parent=0x0AC2E849 SizeRef=1920,359 Selected=0x018A0F9B DockSpace ID=0xA1672E74 Pos=0,34 Size=1920,976 CentralNode=1 Selected=0x9ED090AF