Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
GUI.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#define IMGUI_DEFINE_MATH_OPERATORS
9#include "imgui.h"
10#include <imgui_internal.h>
11#include "imgui_impl_win32.h"
12#include "imgui_impl_dx11.h"
13#include "ImGuizmo.h"
14
15class Viewport;
16class Window;
17class Device;
18class DeviceContext;
19class Actor;
20class Camera;
21
29class
30GUI {
31public:
32 GUI() = default;
33 ~GUI() = default;
34
38 void
40
44 void
45 init(Window& window, Device& device, DeviceContext& deviceContext);
46
50 void
51 update(Viewport& viewport, Window& window);
52
56 void
57 render();
58
59 void
60 destroy();
61
62 void
63 ToolBar();
64
65
66 void
67 closeApp();
68
69 void
71
72 void
73 appleLiquidStyle(float opacity /*0..1f*/, ImVec4 accent /*=#0A84FF*/);
74
75 void
76 vec3Control(const std::string& label,
77 float* values,
78 float resetValues = 0.0f,
79 float columnWidth = 100.0f,
80 bool displayAsDegrees = false);
81
82 void
84
85 void
87
88 void
89 outliner(const std::vector<EU::TSharedPointer<Actor>>& actors);
90
91 void
93
94 void
96
97 void ToFloatArray(const XMMATRIX& mat, float* dest) {
98 XMFLOAT4X4 temp;
99 XMStoreFloat4x4(&temp, mat);
100 memcpy(dest, &temp, sizeof(float) * 16);
101 }
102
103 void
105
106 void drawViewportPanel(ID3D11ShaderResourceView* viewportSRV);
107
108 void drawRenderDebugPanel(ID3D11ShaderResourceView* preShadowSRV,
109 ID3D11ShaderResourceView* finalViewportSRV,
110 ID3D11ShaderResourceView* shadowMapSRV);
111
112 void drawEditorDockspace();
113
118 bool
120 const bool requested = m_requestSaveScene;
121 m_requestSaveScene = false;
122 return requested;
123 }
124
125private:
126
127 bool checkboxValue = true;
128 bool checkboxValue2 = false;
129 std::vector<const char*> m_objectsNames;
130 std::vector<const char*> m_tooltips;
131
132 bool show_exit_popup = false; // Variable de estado para el popup
133 bool m_requestSaveScene = false;
134 ImDrawList* m_viewportDrawList = nullptr;
135 bool m_viewportActive = false;
136
137public:
138 bool m_isUsingGizmo = false;
140 ImVec2 m_viewportPos = ImVec2(0.0f, 0.0f);
141 ImVec2 m_viewportSize = ImVec2(0.0f, 0.0f);
142 bool m_viewportHovered = false;
143 bool m_viewportFocused = false;
144};
145
146
Declara la API de Prerequisites dentro del subsistema Core.
Representa una entidad gráfica con mallas, texturas y estados de renderizado.
Definition Actor.h:32
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
Clase TSharedPointer para manejar la gestión de memoria compartida.
Centraliza la interfaz del editor construida sobre ImGui e ImGuizmo.
Definition GUI.h:30
void toolTipData()
Definition GUI.cpp:364
void editTransform(Camera &cam, Window &window, EU::TSharedPointer< Actor > actor)
Definition GUI.cpp:800
std::vector< const char * > m_objectsNames
Definition GUI.h:129
void inspectorGeneral(EU::TSharedPointer< Actor > actor)
Definition GUI.cpp:541
bool m_requestSaveScene
Definition GUI.h:133
void destroy()
Definition GUI.cpp:259
int selectedActorIndex
Indice del actor seleccionado en el outliner.
Definition GUI.h:139
bool consumeSaveSceneRequest()
Consume de forma atomica la solicitud de guardado emitida desde la UI.
Definition GUI.h:119
void awake()
Inicializa estado interno previo a la integracion con ImGui.
void drawEditorDockspace()
Definition GUI.cpp:1318
void init(Window &window, Device &device, DeviceContext &deviceContext)
Configura los backends de ImGui para Win32 y Direct3D 11.
Definition GUI.cpp:193
void drawRenderDebugPanel(ID3D11ShaderResourceView *preShadowSRV, ID3D11ShaderResourceView *finalViewportSRV, ID3D11ShaderResourceView *shadowMapSRV)
Definition GUI.cpp:1257
GUI()=default
~GUI()=default
bool checkboxValue2
Definition GUI.h:128
ImDrawList * m_viewportDrawList
Definition GUI.h:134
void update(Viewport &viewport, Window &window)
Actualiza el frame de ImGui y el estado de la ventana del editor.
Definition GUI.cpp:224
bool m_viewportFocused
Indica si el viewport tiene foco de entrada.
Definition GUI.h:143
void drawStudioTopRibbon()
Definition GUI.cpp:937
ImVec2 m_viewportPos
Posicion del panel de viewport en pantalla.
Definition GUI.h:140
bool m_viewportHovered
Indica si el cursor esta sobre el viewport.
Definition GUI.h:142
void drawViewportPanel(ID3D11ShaderResourceView *viewportSRV)
Definition GUI.cpp:1203
void vec3Control(const std::string &label, float *values, float resetValues=0.0f, float columnWidth=100.0f, bool displayAsDegrees=false)
Definition GUI.cpp:267
bool show_exit_popup
Definition GUI.h:132
bool m_viewportActive
Definition GUI.h:135
bool m_isUsingGizmo
Indica si el gizmo esta capturando entrada del usuario.
Definition GUI.h:138
void ToolBar()
Definition GUI.cpp:462
bool checkboxValue
Definition GUI.h:127
std::vector< const char * > m_tooltips
Definition GUI.h:130
void inspectorContainer(EU::TSharedPointer< Actor > actor)
Definition GUI.cpp:722
ImVec2 m_viewportSize
Tamano actual del viewport del editor.
Definition GUI.h:141
void ToFloatArray(const XMMATRIX &mat, float *dest)
Definition GUI.h:97
void closeApp()
Definition GUI.cpp:514
void outliner(const std::vector< EU::TSharedPointer< Actor > > &actors)
Definition GUI.cpp:733
void drawGizmoToolbar()
Definition GUI.cpp:880
void render()
Renderiza todos los paneles activos del editor.
Definition GUI.cpp:246
void appleLiquidStyle(float opacity, ImVec4 accent)
Definition GUI.cpp:368
Encapsula un D3D11_VIEWPORT para definir la región de renderizado en la pantalla.
Definition Viewport.h:24
Encapsula la creacion y administracion de la ventana principal de Win32.
Definition Window.h:20