1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00
OpenDX/src/d3d11/d3d11_rasterizer.h
Philip Rebohle 95815a075b
[dxvk] Move depth bias out of rasterizer state
While the previous model corresponded to D3D11, it does
not reflect that the backend treats it the same way as
e.g. blend constants.
2019-01-17 22:25:21 +01:00

63 lines
1.4 KiB
C++

#pragma once
#include "../dxvk/dxvk_device.h"
#include "../d3d10/d3d10_rasterizer.h"
#include "d3d11_device_child.h"
namespace dxvk {
class D3D11Device;
class D3D11RasterizerState : public D3D11DeviceChild<ID3D11RasterizerState1> {
public:
using DescType = D3D11_RASTERIZER_DESC1;
D3D11RasterizerState(
D3D11Device* device,
const D3D11_RASTERIZER_DESC1& desc);
~D3D11RasterizerState();
HRESULT STDMETHODCALLTYPE QueryInterface(
REFIID riid,
void** ppvObject) final;
void STDMETHODCALLTYPE GetDevice(
ID3D11Device **ppDevice) final;
void STDMETHODCALLTYPE GetDesc(
D3D11_RASTERIZER_DESC* pDesc) final;
void STDMETHODCALLTYPE GetDesc1(
D3D11_RASTERIZER_DESC1* pDesc) final;
void BindToContext(
const Rc<DxvkContext>& ctx);
D3D10RasterizerState* GetD3D10Iface() {
return &m_d3d10;
}
static D3D11_RASTERIZER_DESC1 DefaultDesc();
static D3D11_RASTERIZER_DESC1 PromoteDesc(
const D3D11_RASTERIZER_DESC* pDesc);
static HRESULT NormalizeDesc(
D3D11_RASTERIZER_DESC1* pDesc);
private:
D3D11Device* const m_device;
D3D11_RASTERIZER_DESC1 m_desc;
DxvkRasterizerState m_state;
DxvkDepthBias m_depthBias;
D3D10RasterizerState m_d3d10;
};
}