Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Texture.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8
9class Device;
10class DeviceContext;
11
23class
24Texture {
25public:
29 Texture() = default;
30
35 ~Texture() = default;
36
50 HRESULT
51 init(Device & device,
52 const std::string & textureName,
53 ExtensionType extensionType);
54
70 HRESULT
71 init(Device & device,
72 unsigned int width,
73 unsigned int height,
74 DXGI_FORMAT Format,
75 unsigned int BindFlags,
76 unsigned int sampleCount = 1,
77 unsigned int qualityLevels = 0);
78
90 HRESULT
91 init(Device& device, Texture& textureRef, DXGI_FORMAT format);
92
101 void
102 update();
103
116 void
117 render(DeviceContext & deviceContext, unsigned int StartSlot, unsigned int NumViews);
118
127 void
128 destroy();
129
130 HRESULT
131 CreateCubemap(Device& device,
132 DeviceContext& deviceContext,
133 const std::array<std::string, 6>& facePaths,
134 bool generateMips /*= false*/);
135
136 ID3D11ShaderResourceView* CreateCubemapFaceSRV(
137 ID3D11Device* device,
138 ID3D11Texture2D* cubemapTex,
139 DXGI_FORMAT format,
140 UINT faceIndex,
141 UINT mipLevels = 1
142 )
143 {
144 D3D11_SHADER_RESOURCE_VIEW_DESC d{};
145 d.Format = format;
146 d.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
147 d.Texture2DArray.MostDetailedMip = 0;
148 d.Texture2DArray.MipLevels = mipLevels; // usa 1 para vista simple
149 d.Texture2DArray.FirstArraySlice = faceIndex; // cara
150 d.Texture2DArray.ArraySize = 1; // solo esa cara
151
152 ID3D11ShaderResourceView* srv = nullptr;
153 if (FAILED(device->CreateShaderResourceView(cubemapTex, &d, &srv)))
154 return nullptr;
155
156 return srv;
157 }
158
159public:
163 ID3D11Texture2D* m_texture = nullptr;
164
170 ID3D11ShaderResourceView* m_textureFromImg = nullptr;
171
175 std::string m_textureName;
176};
177
178
Declara la API de Prerequisites dentro del subsistema Core.
ExtensionType
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
Encapsula una textura 2D en Direct3D 11, incluyendo su recurso y vista como Shader Resource.
Definition Texture.h:24
ID3D11ShaderResourceView * CreateCubemapFaceSRV(ID3D11Device *device, ID3D11Texture2D *cubemapTex, DXGI_FORMAT format, UINT faceIndex, UINT mipLevels=1)
Definition Texture.h:136
void render(DeviceContext &deviceContext, unsigned int StartSlot, unsigned int NumViews)
Asigna la textura al pipeline de render.
Definition Texture.cpp:313
void update()
Actualiza el contenido de la textura.
Definition Texture.cpp:308
Texture()=default
Constructor por defecto.
HRESULT init(Device &device, const std::string &textureName, ExtensionType extensionType)
Inicializa una textura cargada desde archivo.
Definition Texture.cpp:182
void destroy()
Libera los recursos de la textura.
Definition Texture.cpp:327
HRESULT CreateCubemap(Device &device, DeviceContext &deviceContext, const std::array< std::string, 6 > &facePaths, bool generateMips)
Definition Texture.cpp:337
ID3D11Texture2D * m_texture
Recurso base de la textura en GPU.
Definition Texture.h:163
std::string m_textureName
Nombre o ruta de la textura (si proviene de archivo).
Definition Texture.h:175
~Texture()=default
Destructor por defecto.
ID3D11ShaderResourceView * m_textureFromImg
Vista de la textura como recurso de shader.
Definition Texture.h:170