Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
BaseApp.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "Window.h"
9#include "Device.h"
10#include "DeviceContext.h"
11#include "SwapChain.h"
12#include "Texture.h"
13#include "RenderTargetView.h"
14#include "DepthStencilView.h"
15#include "Viewport.h"
16#include "ShaderProgram.h"
17#include "MeshComponent.h"
18#include "Buffer.h"
19#include "SamplerState.h"
20#include "Model3D.h"
21#include "ECS/Actor.h"
28#include "ECS/LightComponent.h"
30#include "Rendering/Material.h"
32#include "Rendering/Mesh.h"
35#include <string>
36extern IMGUI_IMPL_API
37LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
38
47class
48BaseApp {
49public:
50 BaseApp() = default;
52
57 HRESULT
58 awake();
59
66 int
67 run(HINSTANCE hInst, int nCmdShow);
68
73 HRESULT
74 init();
75
80 void
81 update(float deltaTime);
82
86 void
87 render();
88
92 void
93 destroy();
94
100 void
101 onResize(unsigned int newW, unsigned int newH);
102
107
113 bool saveScene(const std::string& path);
114
120 bool loadScene(const std::string& path);
121
125 std::string getDefaultScenePath() const;
126private:
127 static LRESULT CALLBACK
128 WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
129
130
131private:
142 //Buffer m_cbNeverChanges;
143 //Buffer m_cbChangeOnResize;
144 bool m_d3dReady = false;
147
148 // Textures
160
162
164 std::vector<EU::TSharedPointer<Actor>> m_actors;
168
169
172
173 //CBChangeOnResize cbChangesOnResize;
174 //CBNeverChanges cbNeverChanges;
176 bool m_guiInitialized = false;
178
190
195 unsigned int m_pendingViewportWidth = 1;
196 unsigned int m_pendingViewportHeight = 1;
197
201};
202
203
204
Declara la API de Actor dentro del subsistema ECS.
IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Declara la API de Buffer dentro del subsistema Core.
Declara la API de Camera dentro del subsistema Utilities.
Declara la API de DepthStencilView dentro del subsistema Core.
Declara la API de DeviceContext dentro del subsistema Core.
Declara la API de Device dentro del subsistema Core.
Declara la API de EditorViewportPass dentro del subsistema Utilities.
Declara la API de ForwardRenderer dentro del subsistema Rendering.
Declara la API de GUI dentro del subsistema GUI.
Declara la API de LayoutBuilder dentro del subsistema Utilities.
Declara la API de LightComponent dentro del subsistema ECS.
Declara la API de MaterialInstance dentro del subsistema Rendering.
Declara la API de Material dentro del subsistema Rendering.
Declara la API de MeshComponent dentro del subsistema Core.
Declara la API de MeshRendererComponent dentro del subsistema ECS.
Declara la API de Mesh dentro del subsistema Rendering.
Declara la API de Model3D dentro del subsistema Core.
Declara la API de Prerequisites dentro del subsistema Core.
Declara la API de RenderScene dentro del subsistema Rendering.
Declara la API de RenderTargetView dentro del subsistema Core.
Declara la API de SamplerState dentro del subsistema Core.
Declara la API de SceneGraph dentro del subsistema SceneGraph.
Declara la API de ShaderProgram dentro del subsistema Core.
Declara la API de Skybox dentro del subsistema Utilities.
Declara la API de SwapChain dentro del subsistema Core.
Declara la API de Texture dentro del subsistema Core.
Declara la API de Viewport dentro del subsistema Core.
Declara la API de Window dentro del subsistema Core.
Coordina el ciclo de vida principal de Wildvine Engine.
Definition BaseApp.h:48
Skybox m_skybox
Definition BaseApp.h:179
bool m_d3dReady
Definition BaseApp.h:144
MaterialInstance m_drakefireMaterial
Definition BaseApp.h:189
bool loadScene(const std::string &path)
Carga una escena serializada previamente.
Definition BaseApp.cpp:821
Texture m_skyboxTex
Definition BaseApp.h:180
Texture m_drakefireAOSRV
Definition BaseApp.h:159
DeviceContext m_deviceContext
Definition BaseApp.h:134
Texture m_NormalSRV
Definition BaseApp.h:153
unsigned int m_lastRequestedViewportWidth
Definition BaseApp.h:198
Viewport m_viewport
Definition BaseApp.h:140
Texture m_drakefireAlbedoSRV
Definition BaseApp.h:155
Texture m_drakefireMetallicSRV
Definition BaseApp.h:157
SamplerState m_defaultSampler
Definition BaseApp.h:183
HRESULT init()
Inicializa recursos graficos, escena, materiales y renderer.
Definition BaseApp.cpp:72
Texture m_depthStencil
Definition BaseApp.h:138
void handleEditorViewportResize()
Atiende cambios diferidos del viewport interno del editor.
Definition BaseApp.cpp:703
DepthStencilView m_depthStencilView
Definition BaseApp.h:139
int run(HINSTANCE hInst, int nCmdShow)
Ejecuta el bucle principal de la aplicacion.
Definition BaseApp.cpp:26
void render()
Emite el frame actual en el viewport del editor y en el back buffer final.
Definition BaseApp.cpp:545
void destroy()
Libera recursos del motor en orden seguro de destruccion.
Definition BaseApp.cpp:572
bool saveScene(const std::string &path)
Serializa la escena actual a disco.
Definition BaseApp.cpp:741
Texture m_MetallicSRV
Definition BaseApp.h:150
Model3D * m_model
Definition BaseApp.h:170
MaterialInstance m_cyberGunMaterial
Definition BaseApp.h:188
Mesh m_cyberGunRenderMesh
Definition BaseApp.h:184
Texture m_AOSRV
Definition BaseApp.h:152
std::string getDefaultScenePath() const
Devuelve la ruta por defecto usada por el editor para persistencia rapida.
Definition BaseApp.cpp:735
int m_viewportResizeStableFrames
Definition BaseApp.h:200
unsigned int m_pendingViewportHeight
Definition BaseApp.h:196
RenderTargetView m_renderTargetView
Definition BaseApp.h:137
Material m_transparentPbrMaterial
Definition BaseApp.h:187
ForwardRenderer m_forwardRenderer
Definition BaseApp.h:192
DepthStencilState m_defaultDepthStencil
Definition BaseApp.h:182
Texture m_backBuffer
Definition BaseApp.h:136
EU::TSharedPointer< Actor > m_cyberGun
Definition BaseApp.h:165
RasterizerState m_defaultRasterizer
Definition BaseApp.h:181
Texture m_AlbedoSRV
Definition BaseApp.h:149
RenderScene m_renderScene
Definition BaseApp.h:193
Texture m_EmissiveSRV
Definition BaseApp.h:154
Window m_window
Definition BaseApp.h:132
bool m_guiInitialized
Definition BaseApp.h:176
EU::TSharedPointer< Actor > m_directionalLightActor
Definition BaseApp.h:167
void onResize(unsigned int newW, unsigned int newH)
Reconstuye recursos dependientes de la resolucion principal.
Definition BaseApp.cpp:652
unsigned int m_pendingViewportWidth
Definition BaseApp.h:195
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
Definition BaseApp.cpp:614
GUI m_gui
Definition BaseApp.h:175
bool m_editorViewportResizePending
Definition BaseApp.h:194
CBMain m_constantBufferStruct
Definition BaseApp.h:146
SwapChain m_swapChain
Definition BaseApp.h:135
Material m_pbrMaterial
Definition BaseApp.h:186
SceneGraph m_sceneGraph
Definition BaseApp.h:163
Model3D * m_drakefireModel
Definition BaseApp.h:171
EU::TSharedPointer< Actor > m_drakefirePistol
Definition BaseApp.h:166
ShaderProgram m_shaderProgram
Definition BaseApp.h:141
unsigned int m_lastRequestedViewportHeight
Definition BaseApp.h:199
Device m_device
Definition BaseApp.h:133
Texture m_drakefireNormalSRV
Definition BaseApp.h:156
void update(float deltaTime)
Ejecuta la logica por frame y sincroniza GUI, camara y escena.
Definition BaseApp.cpp:450
Texture m_drakefireRoughnessSRV
Definition BaseApp.h:158
Mesh m_drakefireRenderMesh
Definition BaseApp.h:185
Buffer m_constantBuffer
Definition BaseApp.h:145
~BaseApp()
Definition BaseApp.h:51
HRESULT awake()
Prepara subsistemas previos al render.
Definition BaseApp.cpp:14
EditorViewportPass m_editorViewportPass
Definition BaseApp.h:191
Texture m_RoughnessSRV
Definition BaseApp.h:151
EU::Vector3 m_cameraPos
Definition BaseApp.h:177
Camera m_camera
Definition BaseApp.h:161
BaseApp()=default
std::vector< EU::TSharedPointer< Actor > > m_actors
Definition BaseApp.h:164
Encapsula un ID3D11Buffer para vértices, índices o constantes, incluyendo creación, actualización y enlace.
Definition Buffer.h:28
Encapsula un ID3D11DepthStencilState y su ciclo de vida para la etapa Output-Merger.
Encapsula un ID3D11DepthStencilView para usar un recurso de profundidad/esténcil en el pipeline.
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.
A 3D vector class.
Definition Vector3.h:45
Ejecuta el pipeline de render forward del motor.
Centraliza la interfaz del editor construida sobre ImGui e ImGuizmo.
Definition GUI.h:30
Agrupa un material base con sus texturas y parametros concretos.
Describe el estado fijo compartido por una o mas instancias de material.
Definition Material.h:23
Agrupa una coleccion de submallas listas para ser renderizadas.
Definition Mesh.h:28
Contenedor temporal con los elementos visibles de un frame.
Definition RenderScene.h:20
Encapsula un ID3D11SamplerState para la etapa de muestreo de texturas en Direct3D 11.
Administra la jerarquia de entidades y su actualizacion espacial.
Definition SceneGraph.h:22
Encapsula la creación, compilación y uso de Vertex Shader y Pixel Shader en Direct3D 11.
Encapsula un IDXGISwapChain en Direct3D 11 para administrar buffers de presentación.
Definition SwapChain.h:25
Encapsula una textura 2D en Direct3D 11, incluyendo su recurso y vista como Shader Resource.
Definition Texture.h:24
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