|
Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
|
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. | |
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.
Device ni de DeviceContext. Definición en la lÃnea 22 del archivo DepthStencilState.h.
|
default |
|
default |
No libera automáticamente el recurso COM; llamar a destroy().
| void DepthStencilState::destroy | ( | ) |
Idempotente: puede llamarse múltiples veces de forma segura.
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().
| 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.
| device | Dispositivo con el que se crea el recurso. |
| enableDepth | Habilita la prueba de profundidad (por defecto true). |
| enableStencil | Habilita el buffer de esténcil y sus pruebas (por defecto false). |
S_OK si la creación fue exitosa; código HRESULT en caso contrario.S_OK, m_depthStencilState != nullptr. 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().
| 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.
| deviceContext | Contexto donde se aplicará el estado. |
| stencilRef | Referencia de esténcil usada por las operaciones de esténcil (por defecto 0). |
| reset | Si es true, desvincula el estado después de aplicarlo (setea nullptr). |
m_depthStencilState debe haber sido creado con init(). ID3D11DeviceContext::OMSetDepthStencilState. 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().
| 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).
Definición en la lÃnea 34 del archivo DepthStencilState.cpp.
|
private |