need to upload

This commit is contained in:
2026-04-20 23:02:01 -05:00
parent 1cfcdaf4b7
commit 3c3d8cae00
3 changed files with 39 additions and 55 deletions

View File

@@ -1,21 +1,37 @@
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/Utility/Arguments.h>
#include <Corrade/Containers/Optional.h>
#include <Corrade/Containers/Pair.h>
#include <Magnum/GL/TextureFormat.h>
#include <Magnum/GL/Framebuffer.h>
#include <Magnum/GL/DefaultFramebuffer.h>
#include <Magnum/GL/Renderer.h>
#include <Magnum/GL/Texture.h>
#include <Magnum/Trade/SceneData.h>
#include <Magnum/Trade/ObjectData2D.h>
#include <Magnum/Trade/ImageData.h>
#include <Magnum/Trade/AbstractImporter.h>
#include <Magnum/Trade/MeshData.h>
#include <Magnum/Trade/PhongMaterialData.h>
#include <Magnum/Trade/TextureData.h>
#include <Magnum/Math/Color.h>
#include <Magnum/MeshTools/Compile.h>
#include <Magnum/ImGuiIntegration/Context.hpp>
#include <Magnum/Math/Quaternion.h>
#include <Magnum/SceneGraph/MatrixTransformation3D.h>
#include <Magnum/SceneGraph/Camera.h>
#include <imgui.h>
#include <entt/entt.hpp>
#include "Chocolate.h" #include "Chocolate.h"
#include "MagnumDrawable.h" #include "MagnumDrawable.h"
#include "Components.h" #include "Components.h"
#include <Magnum/GL/Renderbuffer.h>
#include <Magnum/GL/TextureFormat.h>
#include <Magnum/GL/RenderbufferFormat.h>
#include <Magnum/GL/Framebuffer.h>
#include <Magnum/Math/Quaternion.h>
#include <Magnum/Trade/SceneData.h>
#include <Magnum/Trade/LightData.h>
#include <imgui.h>
#include <Magnum/ImGuiIntegration/Context.hpp>
#include "Magnum/ShaderTools/Stage.h"
#include "Magnum/Trade/ObjectData2D.h"
#include <Magnum/Trade/ImageData.h>
Chocolate::Chocolate(const Arguments& arguments) : Chocolate::Chocolate(const Arguments& arguments) :
Platform::Application{ Platform::Application{
arguments, Configuration{} arguments, Configuration{}
@@ -184,7 +200,7 @@ void Chocolate::ResizeUI(Vector2i windowSize)
_uiSceneRenderer.SetPosition(renderWindowPosition); _uiSceneRenderer.SetPosition(renderWindowPosition);
_uiSceneRenderer.Resize(renderWindowSize); _uiSceneRenderer.Resize(renderWindowSize);
Vector2i entityListPanelSize = {static_cast<int>(windowSize.x() * _sidebarWidth), windowSize.y()}; Vector2i entityListPanelSize = {static_cast<int>(windowSize.x() * _sidebarWidth), windowSize.y() / 2};
Vector2i entityListPanelPosition = {0, 0}; Vector2i entityListPanelPosition = {0, 0};
_uiEntityListPanel.SetPosition(entityListPanelPosition); _uiEntityListPanel.SetPosition(entityListPanelPosition);
_uiEntityListPanel.Resize(entityListPanelSize); _uiEntityListPanel.Resize(entityListPanelSize);
@@ -241,19 +257,6 @@ void Chocolate::Import(const std::string& file)
<< importer->image2DName(textureData->image()); << importer->image2DName(textureData->image());
continue; continue;
} }
_textures.push_back(std::make_unique<GL::Texture2D>(std::move(GL::Texture2D{}
.setMagnificationFilter(textureData->magnificationFilter())
.setMinificationFilter(textureData->minificationFilter(),
textureData->mipmapFilter())
.setWrapping(textureData->wrapping().xy())
.setStorage(Math::log2(imageData->size().max()) + 1,
GL::textureFormat(imageData->format()), imageData->size())
.setSubImage(0, {}, *imageData)
.generateMipmap())));
auto texture = _textures.back().get();
sceneTextures[i] = texture;
} }
Containers::Array<Containers::Optional<Trade::PhongMaterialData>> materials{importer->materialCount()}; Containers::Array<Containers::Optional<Trade::PhongMaterialData>> materials{importer->materialCount()};

View File

@@ -1,39 +1,15 @@
#ifndef CHOCOLATE_CHOCOLATE_H #ifndef CHOCOLATE_CHOCOLATE_H
#define CHOCOLATE_CHOCOLATE_H #define CHOCOLATE_CHOCOLATE_H
#include <Corrade/Containers/Optional.h>
#include <Corrade/Containers/Pair.h>
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/Utility/Arguments.h>
#include <Magnum/GL/Framebuffer.h>
#include <Magnum/ImageView.h>
#include <Magnum/Math/Time.h> #include <Magnum/Math/Time.h>
#include <Magnum/Mesh.h>
#include <Magnum/GL/DefaultFramebuffer.h>
#include <Magnum/GL/Mesh.h> #include <Magnum/GL/Mesh.h>
#include <Magnum/GL/Renderer.h>
#include <Magnum/Math/Color.h>
#include <Magnum/MeshTools/Compile.h>
#include <Magnum/Platform/Sdl2Application.h> #include <Magnum/Platform/Sdl2Application.h>
#include <Magnum/SceneGraph/Camera.h>
#include <Magnum/SceneGraph/Drawable.h> #include <Magnum/SceneGraph/Drawable.h>
#include <Magnum/SceneGraph/MatrixTransformation3D.h>
#include <Magnum/SceneGraph/Scene.h> #include <Magnum/SceneGraph/Scene.h>
#include <Magnum/Shaders/PhongGL.h> #include <Magnum/Shaders/PhongGL.h>
#include <Magnum/Trade/AbstractImporter.h>
#include <Magnum/Trade/MeshData.h>
#include <Magnum/Trade/PhongMaterialData.h>
#include <Magnum/Trade/TextureData.h>
#include <entt/entt.hpp>
#include <imgui.h>
#include <Magnum/ImGuiIntegration/Context.hpp> #include <Magnum/ImGuiIntegration/Context.hpp>
#include "Camera.h" #include "Camera.h"
#include "Materials.h" #include "Materials.h"
#include "UI.h" #include "UI.h"
@@ -85,11 +61,8 @@ private:
entt::registry _registry; entt::registry _registry;
entt::entity selectedEntityToEdit = entt::null;
bool showEntityEditorWindow = false;
ImGuiIntegration::Context _imgui{NoCreate}; ImGuiIntegration::Context _imgui{NoCreate};
float _sidebarWidth = 0.17f; float _sidebarWidth = 0.17f;
std::vector<UI::Component*> _uiComponents; std::vector<UI::Component*> _uiComponents;
UI::RenderWindow _uiSceneRenderer; UI::RenderWindow _uiSceneRenderer;
UI::EntityListPanel _uiEntityListPanel; UI::EntityListPanel _uiEntityListPanel;

View File

@@ -37,8 +37,16 @@ namespace UI
void RenderWindow::Resize(const Vector2i& size) void RenderWindow::Resize(const Vector2i& size)
{ {
_framebuffer.release();
_framebuffer = GL::Framebuffer({{}, size});
_renderTexture.setStorage(1, GL::TextureFormat::RGBA8, size); _renderTexture.setStorage(1, GL::TextureFormat::RGBA8, size);
_depthStencil.setStorage(GL::RenderbufferFormat::Depth24Stencil8, size); _depthStencil.setStorage(GL::RenderbufferFormat::Depth24Stencil8, size);
_framebuffer.attachTexture(GL::Framebuffer::ColorAttachment{0}, _renderTexture, 0);
_framebuffer.attachRenderbuffer(GL::Framebuffer::BufferAttachment::DepthStencil, _depthStencil);
_size = size;
} }
void RenderWindow::SetPosition(const Vector2i& position) void RenderWindow::SetPosition(const Vector2i& position)