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

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).
 

Descripción detallada

Esta clase administra texturas que pueden provenir de:

  • Archivos de imagen (png, jpg, etc.).
  • Texturas creadas en memoria (RTV, DSV, UAV).
  • Copias a partir de otra textura.

Proporciona métodos para inicialización, actualización, uso en shaders y destrucción.

Definición en la línea 23 del archivo Texture.h.

Documentación de constructores y destructores

◆ Texture()

Texture::Texture ( )
default

◆ ~Texture()

Texture::~Texture ( )
default

No libera automáticamente los recursos COM; llamar a destroy().

Documentación de funciones miembro

◆ CreateCubemap()

HRESULT Texture::CreateCubemap ( Device device,
DeviceContext deviceContext,
const std::array< std::string, 6 > &  facePaths,
bool  generateMips 
)

◆ CreateCubemapFaceSRV()

ID3D11ShaderResourceView * Texture::CreateCubemapFaceSRV ( ID3D11Device *  device,
ID3D11Texture2D *  cubemapTex,
DXGI_FORMAT  format,
UINT  faceIndex,
UINT  mipLevels = 1 
)
inline

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

◆ destroy()

void Texture::destroy ( )

Libera tanto el recurso de textura (ID3D11Texture2D) como su ShaderResourceView asociado.

Postcondición
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().

◆ init() [1/3]

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.

Parámetros
deviceDispositivo con el que se creará la textura.
textureNameNombre o ruta del archivo de textura.
extensionTypeTipo de extensión de archivo (ej. PNG, JPG, DDS).
Devuelve
S_OK si fue exitoso; código HRESULT en caso contrario.
Postcondición
Si retorna 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().

◆ init() [2/3]

HRESULT Texture::init ( Device device,
Texture textureRef,
DXGI_FORMAT  format 
)

Crea una nueva textura basada en la descripción de textureRef, con un formato diferente.

Parámetros
deviceDispositivo con el que se creará la textura.
textureRefReferencia a otra textura existente.
formatNuevo formato DXGI de la textura.
Devuelve
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.

◆ init() [3/3]

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.

Parámetros
deviceDispositivo con el que se creará la textura.
widthAncho de la textura en píxeles.
heightAlto de la textura en píxeles.
FormatFormato DXGI de la textura (ej. DXGI_FORMAT_R8G8B8A8_UNORM).
BindFlagsBanderas de enlace (ej. D3D11_BIND_SHADER_RESOURCE, D3D11_BIND_RENDER_TARGET).
sampleCountNúmero de muestras para MSAA (por defecto 1 = sin MSAA).
qualityLevelsNiveles de calidad soportados para MSAA.
Devuelve
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.

◆ render()

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.

Parámetros
deviceContextContexto donde se aplicará la textura.
StartSlotSlot inicial en el que se vinculará la textura.
NumViewsNúmero de vistas de recurso a asignar (normalmente 1).
Precondición
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().

◆ update()

void Texture::update ( )

Método de marcador, útil para soportar carga dinámica de datos o streaming de texturas desde CPU hacia GPU.

Nota
Actualmente no realiza ninguna operación.

Definición en la línea 308 del archivo Texture.cpp.

Documentación de datos miembro

◆ m_texture

◆ m_textureFromImg

ID3D11ShaderResourceView* Texture::m_textureFromImg = nullptr

◆ m_textureName

std::string Texture::m_textureName

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

Referenciado por CreateCubemap() y init().


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