Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Actor.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "Entity.h"
9#include "Buffer.h"
10#include "Texture.h"
11#include "Transform.h"
12#include "SamplerState.h"
13#include "RasterizerState.h"
14//#include "BlendState.h"
15#include "ShaderProgram.h"
16#include "DepthStencilState.h"
17
18class Device;
19class DeviceContext;
20class MeshComponent;
21
31class
32Actor : public Entity {
33public:
37 Actor() = default;
38
43 Actor(Device& device);
44
48 virtual
49 ~Actor() = default;
50
51 void
52 awake() override {}
53
60 void
61 init() override {}
62
71 void
72 update(float deltaTime, DeviceContext& deviceContext) override;
73
81 void
82 render(DeviceContext& deviceContext) override;
83
84 void
85 renderForSkybox(DeviceContext& deviceContext);
86
92 void
93 destroy();
94
103 void
104 setMesh(Device& device, std::vector<MeshComponent> meshes);
105
110 std::string
111 getName() { return m_name; }
112
117 void
118 setName(const std::string& name) { m_name = name; }
119
124 void
125 setTextures(std::vector<Texture> textures) { m_textures = textures; }
126
131 void
132 setCastShadow(bool v) { castShadow = v; }
133
138 bool
139 canCastShadow() const { return castShadow; }
140
148 void
150
151private:
152 std::vector<MeshComponent> m_meshes;
153 std::vector<Texture> m_textures;
154 std::vector<Buffer> m_vertexBuffers;
155 std::vector<Buffer> m_indexBuffers;
156
157 //BlendState m_blendstate; ///< Estado de blending usado por el actor.
158 //RasterizerState m_rasterizer; ///< Estado de rasterización usado por el actor.
162
163 // Recursos para sombras
166 //BlendState m_shadowBlendState; ///< Estado de blending específico para sombras.
169
170 XMFLOAT4 m_LightPos;
171 std::string m_name = "Actor";
172 bool castShadow = true;
173};
174
175
Declara la API de Buffer dentro del subsistema Core.
Declara la API de DepthStencilState dentro del subsistema Core.
Declara la API de Entity dentro del subsistema ECS.
Declara la API de Prerequisites dentro del subsistema Core.
Declara la API de RasterizerState dentro del subsistema Core.
Declara la API de SamplerState dentro del subsistema Core.
Declara la API de ShaderProgram dentro del subsistema Core.
Declara la API de Texture dentro del subsistema Core.
Declara la API de Transform dentro del subsistema ECS.
Representa una entidad gráfica con mallas, texturas y estados de renderizado.
Definition Actor.h:32
CBChangesEveryFrame m_cbShadow
Constant buffer específico de sombras.
Definition Actor.h:168
void setName(const std::string &name)
Establece el nombre del actor.
Definition Actor.h:118
bool castShadow
Indica si el actor proyecta sombras.
Definition Actor.h:172
bool canCastShadow() const
Indica si el actor puede proyectar sombras.
Definition Actor.h:139
void setCastShadow(bool v)
Define si el actor proyecta sombras.
Definition Actor.h:132
std::string getName()
Obtiene el nombre del actor.
Definition Actor.h:111
std::string m_name
Nombre identificador del actor.
Definition Actor.h:171
ShaderProgram m_shaderShadow
Shader program usado para renderizar sombras.
Definition Actor.h:164
virtual ~Actor()=default
Destructor virtual por defecto.
std::vector< Buffer > m_indexBuffers
Buffers de índices asociados a las mallas.
Definition Actor.h:155
std::vector< Buffer > m_vertexBuffers
Buffers de vértices asociados a las mallas.
Definition Actor.h:154
void awake() override
Definition Actor.h:52
DepthStencilState m_shadowDepthStencilState
Estado de profundidad/esténcil para sombras.
Definition Actor.h:167
void renderShadow(DeviceContext &deviceContext)
Renderiza la sombra del actor.
std::vector< Texture > m_textures
Texturas aplicadas al actor.
Definition Actor.h:153
void destroy()
Libera todos los recursos asociados al actor.
Definition Actor.cpp:132
Buffer m_shaderBuffer
Buffer auxiliar para datos de sombras.
Definition Actor.h:165
void setTextures(std::vector< Texture > textures)
Establece las texturas del actor.
Definition Actor.h:125
CBChangesEveryFrame m_model
Constante de buffer para transformaciones por frame.
Definition Actor.h:160
std::vector< MeshComponent > m_meshes
Conjunto de componentes de malla del actor.
Definition Actor.h:152
Buffer m_modelBuffer
Constant buffer que contiene m_model.
Definition Actor.h:161
void setMesh(Device &device, std::vector< MeshComponent > meshes)
Establece las mallas del actor.
Definition Actor.cpp:152
void render(DeviceContext &deviceContext) override
Renderiza el actor en la escena.
Definition Actor.cpp:92
void renderForSkybox(DeviceContext &deviceContext)
Definition Actor.cpp:119
XMFLOAT4 m_LightPos
Posición de la luz usada para proyectar sombras.
Definition Actor.h:170
void init() override
Inicializa el actor.
Definition Actor.h:61
SamplerState m_sampler
Estado de muestreo de texturas.
Definition Actor.h:159
void update(float deltaTime, DeviceContext &deviceContext) override
Actualiza el actor en cada frame.
Definition Actor.cpp:76
Actor()=default
Constructor por defecto.
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 ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
Componente ECS que almacena la información de geometría (malla) de un actor.
Encapsula un ID3D11SamplerState para la etapa de muestreo de texturas en Direct3D 11.
Encapsula la creación, compilación y uso de Vertex Shader y Pixel Shader en Direct3D 11.