|
Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
|
Encapsula una textura 2D en Direct3D 11, incluyendo su recurso y vista como Shader Resource. Más...
#include <Texture.h>
Diagrama de colaboración de Texture:Métodos públicos | |
| HRESULT | CreateCubemap (Device &device, DeviceContext &deviceContext, const std::array< std::string, 6 > &facePaths, bool generateMips) |
| ID3D11ShaderResourceView * | CreateCubemapFaceSRV (ID3D11Device *device, ID3D11Texture2D *cubemapTex, DXGI_FORMAT format, UINT faceIndex, UINT mipLevels=1) |
| void | destroy () |
| Libera los recursos de la textura. | |
| HRESULT | init (Device &device, const std::string &textureName, ExtensionType extensionType) |
| Inicializa una textura cargada desde archivo. | |
| HRESULT | init (Device &device, Texture &textureRef, DXGI_FORMAT format) |
| Inicializa una textura a partir de otra existente. | |
| HRESULT | init (Device &device, unsigned int width, unsigned int height, DXGI_FORMAT Format, unsigned int BindFlags, unsigned int sampleCount=1, unsigned int qualityLevels=0) |
| Inicializa una textura creada desde memoria. | |
| void | render (DeviceContext &deviceContext, unsigned int StartSlot, unsigned int NumViews) |
| Asigna la textura al pipeline de render. | |
| Texture ()=default | |
| Constructor por defecto. | |
| void | update () |
| Actualiza el contenido de la textura. | |
| ~Texture ()=default | |
| Destructor por defecto. | |
Atributos públicos | |
| ID3D11Texture2D * | m_texture = nullptr |
| Recurso base de la textura en GPU. | |
| ID3D11ShaderResourceView * | m_textureFromImg = nullptr |
| Vista de la textura como recurso de shader. | |
| std::string | m_textureName |
| Nombre o ruta de la textura (si proviene de archivo). | |
Esta clase administra texturas que pueden provenir de:
Proporciona métodos para inicialización, actualización, uso en shaders y destrucción.
|
default |
|
default |
No libera automáticamente los recursos COM; llamar a destroy().
| HRESULT Texture::CreateCubemap | ( | Device & | device, |
| DeviceContext & | deviceContext, | ||
| const std::array< std::string, 6 > & | facePaths, | ||
| bool | generateMips | ||
| ) |
Definición en la lÃnea 337 del archivo Texture.cpp.
Hace referencia a Device::CreateTexture2D(), destroy(), ERROR, Device::m_device, DeviceContext::m_deviceContext, m_texture, m_textureFromImg, m_textureName y DeviceContext::UpdateSubresource().
Referenciado por BaseApp::init().
|
inline |
| void Texture::destroy | ( | ) |
Libera tanto el recurso de textura (ID3D11Texture2D) como su ShaderResourceView asociado.
m_texture == nullptr y m_textureFromImg == nullptr. Definición en la lÃnea 327 del archivo Texture.cpp.
Hace referencia a m_texture, m_textureFromImg y SAFE_RELEASE.
Referenciado por CreateCubemap(), BaseApp::destroy(), EditorViewportPass::destroy(), ForwardRenderer::destroy() y BaseApp::onResize().
| HRESULT Texture::init | ( | Device & | device, |
| const std::string & | textureName, | ||
| ExtensionType | extensionType | ||
| ) |
Crea un recurso de textura a partir de un archivo de imagen y genera su ShaderResourceView correspondiente para ser usado en shaders.
| device | Dispositivo con el que se creará la textura. |
| textureName | Nombre o ruta del archivo de textura. |
| extensionType | Tipo de extensión de archivo (ej. PNG, JPG, DDS). |
S_OK si fue exitoso; código HRESULT en caso contrario.S_OK, m_texture y m_textureFromImg != nullptr. Definición en la lÃnea 182 del archivo Texture.cpp.
Hace referencia a DDS, ERROR, JPG, Device::m_device, m_textureFromImg, m_textureName y PNG.
Referenciado por EditorViewportPass::createResources(), ForwardRenderer::createShadowResources(), BaseApp::init() y BaseApp::onResize().
Crea una nueva textura basada en la descripción de textureRef, con un formato diferente.
| device | Dispositivo con el que se creará la textura. |
| textureRef | Referencia a otra textura existente. |
| format | Nuevo formato DXGI de la textura. |
S_OK si fue exitoso; código HRESULT en caso contrario. Definición en la lÃnea 278 del archivo Texture.cpp.
Hace referencia a ERROR, Device::m_device, m_texture y m_textureFromImg.
| HRESULT Texture::init | ( | Device & | device, |
| unsigned int | width, | ||
| unsigned int | height, | ||
| DXGI_FORMAT | Format, | ||
| unsigned int | BindFlags, | ||
| unsigned int | sampleCount = 1, |
||
| unsigned int | qualityLevels = 0 |
||
| ) |
Crea un recurso de textura 2D vacío con un tamaño y formato especificados. Útil para render targets, depth buffers o texturas dinámicas.
| device | Dispositivo con el que se creará la textura. |
| width | Ancho de la textura en píxeles. |
| height | Alto de la textura en píxeles. |
| Format | Formato DXGI de la textura (ej. DXGI_FORMAT_R8G8B8A8_UNORM). |
| BindFlags | Banderas de enlace (ej. D3D11_BIND_SHADER_RESOURCE, D3D11_BIND_RENDER_TARGET). |
| sampleCount | Número de muestras para MSAA (por defecto 1 = sin MSAA). |
| qualityLevels | Niveles de calidad soportados para MSAA. |
S_OK si fue exitoso; código HRESULT en caso contrario. Definición en la lÃnea 236 del archivo Texture.cpp.
Hace referencia a Device::CreateTexture2D(), ERROR, Device::m_device y m_texture.
| void Texture::render | ( | DeviceContext & | deviceContext, |
| unsigned int | StartSlot, | ||
| unsigned int | NumViews | ||
| ) |
Llama a PSSetShaderResources para establecer la textura como recurso de shader en la etapa de Pixel Shader.
| deviceContext | Contexto donde se aplicará la textura. |
| StartSlot | Slot inicial en el que se vinculará la textura. |
| NumViews | Número de vistas de recurso a asignar (normalmente 1). |
m_textureFromImg debe haberse creado con init(). Definición en la lÃnea 313 del archivo Texture.cpp.
Hace referencia a ERROR, DeviceContext::m_deviceContext, m_textureFromImg y DeviceContext::PSSetShaderResources().
Referenciado por MaterialInstance::bindTextures() y Skybox::render().
| void Texture::update | ( | ) |
Método de marcador, útil para soportar carga dinámica de datos o streaming de texturas desde CPU hacia GPU.
Definición en la lÃnea 308 del archivo Texture.cpp.
| ID3D11Texture2D* Texture::m_texture = nullptr |
Definición en la lÃnea 163 del archivo Texture.h.
Referenciado por CreateCubemap(), destroy(), RenderTargetView::init(), DepthStencilView::init(), DepthStencilView::init(), RenderTargetView::init(), init(), init(), anonymous_namespace{Texture.cpp}::InitTextureFromImage() y EditorViewportPass::isValid().
| ID3D11ShaderResourceView* Texture::m_textureFromImg = nullptr |
Permite acceder a la textura desde Pixel Shader u otros shaders.
Definición en la lÃnea 170 del archivo Texture.h.
Referenciado por CreateCubemap(), destroy(), EditorViewportPass::getSRV(), BaseApp::init(), init(), init(), anonymous_namespace{Texture.cpp}::InitTextureFromImage(), EditorViewportPass::isValid(), Skybox::render(), render(), ForwardRenderer::renderOpaquePass() y ForwardRenderer::renderTransparentPass().
| std::string Texture::m_textureName |
Definición en la lÃnea 175 del archivo Texture.h.
Referenciado por CreateCubemap() y init().