Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Referencia de la clase BaseApp

Coordina el ciclo de vida principal de Wildvine Engine. Más...

#include <BaseApp.h>

+ Diagrama de colaboración de BaseApp:

Métodos públicos

HRESULT awake ()
 Prepara subsistemas previos al render.
 
 BaseApp ()=default
 
void destroy ()
 Libera recursos del motor en orden seguro de destruccion.
 
std::string getDefaultScenePath () const
 Devuelve la ruta por defecto usada por el editor para persistencia rapida.
 
void handleEditorViewportResize ()
 Atiende cambios diferidos del viewport interno del editor.
 
HRESULT init ()
 Inicializa recursos graficos, escena, materiales y renderer.
 
bool loadScene (const std::string &path)
 Carga una escena serializada previamente.
 
void onResize (unsigned int newW, unsigned int newH)
 Reconstuye recursos dependientes de la resolucion principal.
 
void render ()
 Emite el frame actual en el viewport del editor y en el back buffer final.
 
int run (HINSTANCE hInst, int nCmdShow)
 Ejecuta el bucle principal de la aplicacion.
 
bool saveScene (const std::string &path)
 Serializa la escena actual a disco.
 
void update (float deltaTime)
 Ejecuta la logica por frame y sincroniza GUI, camara y escena.
 
 ~BaseApp ()
 

Métodos privados estáticos

static LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 

Atributos privados

std::vector< EU::TSharedPointer< Actor > > m_actors
 
Texture m_AlbedoSRV
 
Texture m_AOSRV
 
Texture m_backBuffer
 
Camera m_camera
 
EU::Vector3 m_cameraPos
 
Buffer m_constantBuffer
 
CBMain m_constantBufferStruct
 
EU::TSharedPointer< Actorm_cyberGun
 
MaterialInstance m_cyberGunMaterial
 
Mesh m_cyberGunRenderMesh
 
bool m_d3dReady = false
 
DepthStencilState m_defaultDepthStencil
 
RasterizerState m_defaultRasterizer
 
SamplerState m_defaultSampler
 
Texture m_depthStencil
 
DepthStencilView m_depthStencilView
 
Device m_device
 
DeviceContext m_deviceContext
 
EU::TSharedPointer< Actorm_directionalLightActor
 
Texture m_drakefireAlbedoSRV
 
Texture m_drakefireAOSRV
 
MaterialInstance m_drakefireMaterial
 
Texture m_drakefireMetallicSRV
 
Model3Dm_drakefireModel = nullptr
 
Texture m_drakefireNormalSRV
 
EU::TSharedPointer< Actorm_drakefirePistol
 
Mesh m_drakefireRenderMesh
 
Texture m_drakefireRoughnessSRV
 
EditorViewportPass m_editorViewportPass
 
bool m_editorViewportResizePending = false
 
Texture m_EmissiveSRV
 
ForwardRenderer m_forwardRenderer
 
GUI m_gui
 
bool m_guiInitialized = false
 
unsigned int m_lastRequestedViewportHeight = 1
 
unsigned int m_lastRequestedViewportWidth = 1
 
Texture m_MetallicSRV
 
Model3Dm_model
 
Texture m_NormalSRV
 
Material m_pbrMaterial
 
unsigned int m_pendingViewportHeight = 1
 
unsigned int m_pendingViewportWidth = 1
 
RenderScene m_renderScene
 
RenderTargetView m_renderTargetView
 
Texture m_RoughnessSRV
 
SceneGraph m_sceneGraph
 
ShaderProgram m_shaderProgram
 
Skybox m_skybox
 
Texture m_skyboxTex
 
SwapChain m_swapChain
 
Material m_transparentPbrMaterial
 
Viewport m_viewport
 
int m_viewportResizeStableFrames = 0
 
Window m_window
 

Descripción detallada

BaseApp inicializa la ventana, el dispositivo grafico, la interfaz del editor, la escena de prueba y el pipeline de render. Tambien administra el bucle principal de actualizacion, la serializacion basica de escena y la respuesta a cambios de tamano.

Definición en la línea 47 del archivo BaseApp.h.

Documentación de constructores y destructores

◆ BaseApp()

BaseApp::BaseApp ( )
default

◆ ~BaseApp()

BaseApp::~BaseApp ( )
inline

Definición en la línea 51 del archivo BaseApp.h.

Hace referencia a destroy().

Documentación de funciones miembro

◆ awake()

HRESULT BaseApp::awake ( )
Devuelve
S_OK si la aplicacion queda lista para continuar la inicializacion.

Definición en la línea 14 del archivo BaseApp.cpp.

Hace referencia a SceneGraph::init(), m_sceneGraph y MESSAGE.

Referenciado por run().

◆ destroy()

◆ getDefaultScenePath()

std::string BaseApp::getDefaultScenePath ( ) const

Definición en la línea 735 del archivo BaseApp.cpp.

Referenciado por init() y update().

◆ handleEditorViewportResize()

◆ init()

HRESULT BaseApp::init ( )
Devuelve
S_OK cuando todos los recursos base quedan listos.

Definición en la línea 72 del archivo BaseApp.cpp.

Hace referencia a LayoutBuilder::Add(), Entity::addComponent(), SceneGraph::addEntity(), Alpha, MaterialParams::alphaCutoff, MaterialParams::ao, MaterialParams::baseColor, Texture::CreateCubemap(), Mesh::destroy(), Directional, MaterialParams::emissiveStrength, ERROR, FBX, EU::TSharedPointer< T >::get(), Entity::getComponent(), getDefaultScenePath(), Model3D::GetMeshes(), MaterialInstance::getParams(), Mesh::getSubmeshes(), Viewport::init(), ForwardRenderer::init(), SamplerState::init(), DepthStencilState::init(), Buffer::init(), ShaderProgram::init(), Texture::init(), SwapChain::init(), Skybox::init(), RenderTargetView::init(), DepthStencilView::init(), EditorViewportPass::init(), RasterizerState::init(), EU::TSharedPointer< T >::isNull(), JPG, CBMain::LightColor, CBMain::LightDir, Model3D::load(), loadScene(), m_actors, m_AlbedoSRV, m_AOSRV, m_backBuffer, m_camera, m_constantBuffer, m_constantBufferStruct, m_cyberGun, m_cyberGunMaterial, m_cyberGunRenderMesh, m_d3dReady, m_defaultDepthStencil, m_defaultRasterizer, m_defaultSampler, m_depthStencil, m_depthStencilView, m_device, m_deviceContext, m_directionalLightActor, m_drakefireAlbedoSRV, m_drakefireAOSRV, m_drakefireMaterial, m_drakefireMetallicSRV, m_drakefireModel, m_drakefireNormalSRV, m_drakefirePistol, m_drakefireRenderMesh, m_drakefireRoughnessSRV, m_editorViewportPass, m_EmissiveSRV, m_forwardRenderer, Window::m_height, m_MetallicSRV, m_model, m_NormalSRV, m_pbrMaterial, m_renderTargetView, m_RoughnessSRV, m_sceneGraph, m_shaderProgram, m_skybox, m_skyboxTex, m_swapChain, Texture::m_textureFromImg, m_transparentPbrMaterial, m_viewport, Window::m_width, m_window, MESSAGE, MaterialParams::metallic, MaterialParams::normalScale, OBJ, Opaque, PNG, MaterialParams::roughness, MaterialInstance::setAlbedo(), MaterialInstance::setAO(), Material::setBlendMode(), Material::setDepthStencilState(), Material::setDomain(), MaterialInstance::setEmissive(), Camera::setLens(), MaterialInstance::setMaterial(), MaterialInstance::setMetallic(), Actor::setName(), MaterialInstance::setNormal(), Camera::setPosition(), Material::setRasterizerState(), MaterialInstance::setRoughness(), Material::setSamplerState(), Material::setShader(), Transparent y Submesh::vertexBuffer.

Referenciado por run().

◆ loadScene()

bool BaseApp::loadScene ( const std::string &  path)
Parámetros
pathRuta del archivo .wvscene.
Devuelve
true si el contenido se pudo leer y aplicar.

Definición en la línea 821 del archivo BaseApp.cpp.

Hace referencia a MaterialParams::baseColor, Entity::getComponent(), EU::TSharedPointer< T >::isNull(), CBMain::LightColor, CBMain::LightDir, m_actors, m_constantBufferStruct, m_directionalLightActor, MESSAGE, Material::setBlendMode(), Material::setDomain(), EU::Vector3::x, EU::Vector3::y y EU::Vector3::z.

Referenciado por init().

◆ onResize()

◆ render()

◆ run()

int BaseApp::run ( HINSTANCE  hInst,
int  nCmdShow 
)
Parámetros
hInstInstancia Win32 actual.
nCmdShowModo inicial de visualizacion de la ventana.
Devuelve
Codigo de salida del proceso.

Definición en la línea 26 del archivo BaseApp.cpp.

Hace referencia a awake(), ERROR, init(), Window::init(), GUI::init(), m_device, m_deviceContext, m_gui, m_guiInitialized, m_window, render(), update() y WndProc().

Referenciado por wWinMain().

◆ saveScene()

◆ update()

◆ WndProc()

LRESULT BaseApp::WndProc ( HWND  hWnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
staticprivate

Definición en la línea 614 del archivo BaseApp.cpp.

Hace referencia a ImGui_ImplWin32_WndProcHandler() y onResize().

Referenciado por run().

Documentación de datos miembro

◆ m_actors

std::vector<EU::TSharedPointer<Actor> > BaseApp::m_actors
private

Definición en la línea 164 del archivo BaseApp.h.

Referenciado por init(), loadScene(), saveScene() y update().

◆ m_AlbedoSRV

Texture BaseApp::m_AlbedoSRV
private

Definición en la línea 149 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_AOSRV

Texture BaseApp::m_AOSRV
private

Definición en la línea 152 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_backBuffer

Texture BaseApp::m_backBuffer
private

Definición en la línea 136 del archivo BaseApp.h.

Referenciado por destroy(), init() y onResize().

◆ m_camera

Camera BaseApp::m_camera
private

Definición en la línea 161 del archivo BaseApp.h.

Referenciado por init(), onResize(), render() y update().

◆ m_cameraPos

EU::Vector3 BaseApp::m_cameraPos
private

Definición en la línea 177 del archivo BaseApp.h.

◆ m_constantBuffer

Buffer BaseApp::m_constantBuffer
private

Definición en la línea 145 del archivo BaseApp.h.

Referenciado por init().

◆ m_constantBufferStruct

CBMain BaseApp::m_constantBufferStruct
private

Definición en la línea 146 del archivo BaseApp.h.

Referenciado por init(), loadScene(), saveScene() y update().

◆ m_cyberGun

EU::TSharedPointer<Actor> BaseApp::m_cyberGun
private

Definición en la línea 165 del archivo BaseApp.h.

Referenciado por init().

◆ m_cyberGunMaterial

MaterialInstance BaseApp::m_cyberGunMaterial
private

Definición en la línea 188 del archivo BaseApp.h.

Referenciado por init().

◆ m_cyberGunRenderMesh

Mesh BaseApp::m_cyberGunRenderMesh
private

Definición en la línea 184 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_d3dReady

bool BaseApp::m_d3dReady = false
private

Definición en la línea 144 del archivo BaseApp.h.

Referenciado por init() y onResize().

◆ m_defaultDepthStencil

DepthStencilState BaseApp::m_defaultDepthStencil
private

Definición en la línea 182 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_defaultRasterizer

RasterizerState BaseApp::m_defaultRasterizer
private

Definición en la línea 181 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_defaultSampler

SamplerState BaseApp::m_defaultSampler
private

Definición en la línea 183 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_depthStencil

Texture BaseApp::m_depthStencil
private

Definición en la línea 138 del archivo BaseApp.h.

Referenciado por destroy(), init() y onResize().

◆ m_depthStencilView

DepthStencilView BaseApp::m_depthStencilView
private

Definición en la línea 139 del archivo BaseApp.h.

Referenciado por destroy(), init(), onResize() y render().

◆ m_device

Device BaseApp::m_device
private

Definición en la línea 133 del archivo BaseApp.h.

Referenciado por destroy(), handleEditorViewportResize(), init(), onResize() y run().

◆ m_deviceContext

DeviceContext BaseApp::m_deviceContext
private

Definición en la línea 134 del archivo BaseApp.h.

Referenciado por destroy(), handleEditorViewportResize(), init(), onResize(), render(), run() y update().

◆ m_directionalLightActor

EU::TSharedPointer<Actor> BaseApp::m_directionalLightActor
private

Definición en la línea 167 del archivo BaseApp.h.

Referenciado por init(), loadScene() y update().

◆ m_drakefireAlbedoSRV

Texture BaseApp::m_drakefireAlbedoSRV
private

Definición en la línea 155 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefireAOSRV

Texture BaseApp::m_drakefireAOSRV
private

Definición en la línea 159 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefireMaterial

MaterialInstance BaseApp::m_drakefireMaterial
private

Definición en la línea 189 del archivo BaseApp.h.

Referenciado por init().

◆ m_drakefireMetallicSRV

Texture BaseApp::m_drakefireMetallicSRV
private

Definición en la línea 157 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefireModel

Model3D* BaseApp::m_drakefireModel = nullptr
private

Definición en la línea 171 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefireNormalSRV

Texture BaseApp::m_drakefireNormalSRV
private

Definición en la línea 156 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefirePistol

EU::TSharedPointer<Actor> BaseApp::m_drakefirePistol
private

Definición en la línea 166 del archivo BaseApp.h.

Referenciado por init().

◆ m_drakefireRenderMesh

Mesh BaseApp::m_drakefireRenderMesh
private

Definición en la línea 185 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_drakefireRoughnessSRV

Texture BaseApp::m_drakefireRoughnessSRV
private

Definición en la línea 158 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_editorViewportPass

EditorViewportPass BaseApp::m_editorViewportPass
private

Definición en la línea 191 del archivo BaseApp.h.

Referenciado por destroy(), handleEditorViewportResize(), init(), render() y update().

◆ m_editorViewportResizePending

bool BaseApp::m_editorViewportResizePending = false
private

Definición en la línea 194 del archivo BaseApp.h.

Referenciado por handleEditorViewportResize() y update().

◆ m_EmissiveSRV

Texture BaseApp::m_EmissiveSRV
private

Definición en la línea 154 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_forwardRenderer

ForwardRenderer BaseApp::m_forwardRenderer
private

Definición en la línea 192 del archivo BaseApp.h.

Referenciado por destroy(), handleEditorViewportResize(), init(), render() y update().

◆ m_gui

GUI BaseApp::m_gui
private

Definición en la línea 175 del archivo BaseApp.h.

Referenciado por destroy(), render(), run() y update().

◆ m_guiInitialized

bool BaseApp::m_guiInitialized = false
private

Definición en la línea 176 del archivo BaseApp.h.

Referenciado por destroy() y run().

◆ m_lastRequestedViewportHeight

unsigned int BaseApp::m_lastRequestedViewportHeight = 1
private

Definición en la línea 199 del archivo BaseApp.h.

Referenciado por update().

◆ m_lastRequestedViewportWidth

unsigned int BaseApp::m_lastRequestedViewportWidth = 1
private

Definición en la línea 198 del archivo BaseApp.h.

Referenciado por update().

◆ m_MetallicSRV

Texture BaseApp::m_MetallicSRV
private

Definición en la línea 150 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_model

Model3D* BaseApp::m_model
private

Definición en la línea 170 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_NormalSRV

Texture BaseApp::m_NormalSRV
private

Definición en la línea 153 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_pbrMaterial

Material BaseApp::m_pbrMaterial
private

Definición en la línea 186 del archivo BaseApp.h.

Referenciado por init().

◆ m_pendingViewportHeight

unsigned int BaseApp::m_pendingViewportHeight = 1
private

Definición en la línea 196 del archivo BaseApp.h.

Referenciado por handleEditorViewportResize() y update().

◆ m_pendingViewportWidth

unsigned int BaseApp::m_pendingViewportWidth = 1
private

Definición en la línea 195 del archivo BaseApp.h.

Referenciado por handleEditorViewportResize() y update().

◆ m_renderScene

RenderScene BaseApp::m_renderScene
private

Definición en la línea 193 del archivo BaseApp.h.

Referenciado por render().

◆ m_renderTargetView

RenderTargetView BaseApp::m_renderTargetView
private

Definición en la línea 137 del archivo BaseApp.h.

Referenciado por destroy(), init(), onResize() y render().

◆ m_RoughnessSRV

Texture BaseApp::m_RoughnessSRV
private

Definición en la línea 151 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_sceneGraph

SceneGraph BaseApp::m_sceneGraph
private

Definición en la línea 163 del archivo BaseApp.h.

Referenciado por awake(), destroy(), init(), render() y update().

◆ m_shaderProgram

ShaderProgram BaseApp::m_shaderProgram
private

Definición en la línea 141 del archivo BaseApp.h.

Referenciado por destroy() y init().

◆ m_skybox

Skybox BaseApp::m_skybox
private

Definición en la línea 179 del archivo BaseApp.h.

Referenciado por init(), render() y update().

◆ m_skyboxTex

Texture BaseApp::m_skyboxTex
private

Definición en la línea 180 del archivo BaseApp.h.

Referenciado por init().

◆ m_swapChain

SwapChain BaseApp::m_swapChain
private

Definición en la línea 135 del archivo BaseApp.h.

Referenciado por destroy(), init(), onResize(), render() y update().

◆ m_transparentPbrMaterial

Material BaseApp::m_transparentPbrMaterial
private

Definición en la línea 187 del archivo BaseApp.h.

Referenciado por init().

◆ m_viewport

Viewport BaseApp::m_viewport
private

Definición en la línea 140 del archivo BaseApp.h.

Referenciado por init(), onResize(), render() y update().

◆ m_viewportResizeStableFrames

int BaseApp::m_viewportResizeStableFrames = 0
private

Definición en la línea 200 del archivo BaseApp.h.

Referenciado por update().

◆ m_window

Window BaseApp::m_window
private

Definición en la línea 132 del archivo BaseApp.h.

Referenciado por init(), onResize(), run() y update().


La documentación de esta clase está generada de los siguientes archivos: