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

Encapsula un ID3D11DepthStencilState y su ciclo de vida para la etapa Output-Merger. Más...

#include <DepthStencilState.h>

Métodos públicos

 DepthStencilState ()=default
 Constructor por defecto (no crea recursos).
 
void destroy ()
 Libera el recurso ID3D11DepthStencilState y deja la instancia en estado no inicializado.
 
HRESULT init (Device &device, bool depthEnable, D3D11_DEPTH_WRITE_MASK writeMask, D3D11_COMPARISON_FUNC depthFunc)
 Crea el objeto ID3D11DepthStencilState a partir de flags comunes.
 
void render (DeviceContext &deviceContext, unsigned int stencilRef=0, bool reset=false)
 Aplica el estado de profundidad/esténcil al contexto (OMSetDepthStencilState).
 
void update ()
 Actualiza parámetros internos si la implementación lo requiere.
 
 ~DepthStencilState ()=default
 Destructor por defecto.
 

Atributos privados

ID3D11DepthStencilState * m_depthStencilState = nullptr
 Recurso COM de Direct3D 11 para el estado de profundidad/esténcil.
 

Descripción detallada

Administra la creación, configuración, aplicación y destrucción de un estado de profundidad/esténcil en Direct3D 11. Permite activar/desactivar pruebas de profundidad y funcionalidades de esténcil según se requiera.

Nota
La clase no posee ni administra la vida de Device ni de DeviceContext.

Definición en la línea 22 del archivo DepthStencilState.h.

Documentación de constructores y destructores

◆ DepthStencilState()

DepthStencilState::DepthStencilState ( )
default

◆ ~DepthStencilState()

DepthStencilState::~DepthStencilState ( )
default

No libera automáticamente el recurso COM; llamar a destroy().

Documentación de funciones miembro

◆ destroy()

void DepthStencilState::destroy ( )

Idempotente: puede llamarse múltiples veces de forma segura.

Postcondición
m_depthStencilState == nullptr.

Definición en la línea 60 del archivo DepthStencilState.cpp.

Hace referencia a m_depthStencilState y SAFE_RELEASE.

Referenciado por BaseApp::destroy() y ForwardRenderer::destroy().

◆ init()

HRESULT DepthStencilState::init ( Device device,
bool  depthEnable,
D3D11_DEPTH_WRITE_MASK  writeMask,
D3D11_COMPARISON_FUNC  depthFunc 
)

Genera y almacena internamente un estado de profundidad/esténcil. La configuración concreta (función de comparación, máscaras, operaciones de esténcil, etc.) debe definirse en la implementación de este método, condicionada por enableDepth y enableStencil.

Parámetros
deviceDispositivo con el que se crea el recurso.
enableDepthHabilita la prueba de profundidad (por defecto true).
enableStencilHabilita el buffer de esténcil y sus pruebas (por defecto false).
Devuelve
S_OK si la creación fue exitosa; código HRESULT en caso contrario.
Postcondición
Si retorna S_OK, m_depthStencilState != nullptr.
Ver también
render(), destroy()

Definición en la línea 11 del archivo DepthStencilState.cpp.

Hace referencia a ERROR, m_depthStencilState y Device::m_device.

Referenciado por BaseApp::init(), ForwardRenderer::init() y Skybox::init().

◆ render()

void DepthStencilState::render ( DeviceContext deviceContext,
unsigned int  stencilRef = 0,
bool  reset = false 
)

Vincula el ID3D11DepthStencilState al DeviceContext. Puede además restablecer el estado a nullptr si reset es true.

Parámetros
deviceContextContexto donde se aplicará el estado.
stencilRefReferencia de esténcil usada por las operaciones de esténcil (por defecto 0).
resetSi es true, desvincula el estado después de aplicarlo (setea nullptr).
Precondición
m_depthStencilState debe haber sido creado con init().
Nota
Internamente invoca ID3D11DeviceContext::OMSetDepthStencilState.
Ver también
init(), destroy()

Definición en la línea 39 del archivo DepthStencilState.cpp.

Hace referencia a ERROR, m_depthStencilState y DeviceContext::m_deviceContext.

Referenciado por Skybox::render() y ForwardRenderer::renderObject().

◆ update()

void DepthStencilState::update ( )

Método placeholder para futuros cambios dinámicos del descriptor de profundidad/esténcil (p. ej., recrear el recurso con otros flags).

Nota
Actualmente no realiza ninguna operación.

Definición en la línea 34 del archivo DepthStencilState.cpp.

Documentación de datos miembro

◆ m_depthStencilState

ID3D11DepthStencilState* DepthStencilState::m_depthStencilState = nullptr
private

Válido tras init(); nullptr después de destroy().

Definición en la línea 100 del archivo DepthStencilState.h.

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


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