Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
DepthStencilState.cpp
Ir a la documentación de este archivo.
1
6#include "DepthStencilState.h"
7#include "Device.h"
8#include "DeviceContext.h"
9
10HRESULT
12 bool depthEnable,
13 D3D11_DEPTH_WRITE_MASK writeMask,
14 D3D11_COMPARISON_FUNC depthFunc) {
15 if (!device.m_device) {
16 ERROR("ShaderProgram", "init", "Device is null.");
17 return E_POINTER;
18 }
19 D3D11_DEPTH_STENCIL_DESC desc{};
20 desc.DepthEnable = depthEnable;
21 desc.DepthWriteMask = writeMask;
22 desc.DepthFunc = depthFunc;
23 desc.StencilEnable = false;
24
25 HRESULT hr = device.m_device->CreateDepthStencilState(&desc, &m_depthStencilState);
26 if (FAILED(hr)) {
27 ERROR("DepthStencilState", "init", "Failed to create DepthStencilState");
28 return hr;
29 }
30 return hr;
31}
32
33void
37
38void
40 unsigned int stencilRef,
41 bool reset) {
42 if (!deviceContext.m_deviceContext) {
43 ERROR("RenderTargetView", "render", "DeviceContext is nullptr.");
44 return;
45 }
47 ERROR("DepthStencilState", "render", "DepthStencilState is nullptr");
48 return;
49 }
50
51 if (!reset) {
52 deviceContext.m_deviceContext->OMSetDepthStencilState(m_depthStencilState, stencilRef);
53 }
54 else {
55 deviceContext.m_deviceContext->OMSetDepthStencilState(nullptr, stencilRef);
56 }
57}
58
59void
63
64
Declara la API de DepthStencilState dentro del subsistema Core.
Declara la API de DeviceContext dentro del subsistema Core.
Declara la API de Device dentro del subsistema Core.
#define SAFE_RELEASE(x)
#define ERROR(classObj, method, errorMSG)
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 update()
Actualiza parámetros internos si la implementación lo requiere.
ID3D11DepthStencilState * m_depthStencilState
Recurso COM de Direct3D 11 para el estado de profundidad/esténcil.
void destroy()
Libera el recurso ID3D11DepthStencilState y deja la instancia en estado no inicializado.
void render(DeviceContext &deviceContext, unsigned int stencilRef=0, bool reset=false)
Aplica el estado de profundidad/esténcil al contexto (OMSetDepthStencilState).
ID3D11DeviceContext * m_deviceContext
Puntero al contexto inmediato de Direct3D 11.
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
ID3D11Device * m_device
Puntero al dispositivo Direct3D 11.
Definition Device.h:146