25 #ifndef OSD_D3D11L_DRAW_CONTEXT_H
26 #define OSD_D3D11L_DRAW_CONTEXT_H
28 #include "../version.h"
30 #include "../far/patchTables.h"
31 #include "../osd/drawContext.h"
32 #include "../osd/vertex.h"
36 struct ID3D11VertexShader;
37 struct ID3D11HullShader;
38 struct ID3D11DomainShader;
39 struct ID3D11GeometryShader;
40 struct ID3D11PixelShader;
43 struct ID3D11ShaderResourceView;
45 struct ID3D11DeviceContext;
47 namespace OpenSubdiv {
48 namespace OPENSUBDIV_VERSION {
78 ID3D11DeviceContext *pd3d11DeviceContext,
79 int numVertexElements);
87 template<
class VERTEX_BUFFER>
90 updateVertexTexture(vbo->BindD3D11Buffer(pd3d11DeviceContext),
92 vbo->GetNumVertices(),
93 vbo->GetNumElements());
123 ID3D11DeviceContext *pd3d11DeviceContext,
124 int fvarWidth,
FVarData const & fvarData);
132 ID3D11DeviceContext *pd3d11DeviceContext,
133 int numVertexElements);
135 void updateVertexTexture(ID3D11Buffer *vbo,
136 ID3D11DeviceContext *pd3d11DeviceContext,
138 int numVertexElements);
146 using namespace OPENSUBDIV_VERSION;
ID3D11ShaderResourceView * quadOffsetBufferSRV
ID3D11ShaderResourceView * vertexBufferSRV
D3D11 specialized DrawContext class.
bool SetFVarDataTexture(Far::PatchTables const &patchTables, ID3D11DeviceContext *pd3d11DeviceContext, int fvarWidth, FVarData const &fvarData)
Container for patch vertex indices tables.
static D3D11DrawContext * Create(Far::PatchTables const *patchTables, ID3D11DeviceContext *pd3d11DeviceContext, int numVertexElements)
Create an D3D11DrawContext from Far::PatchTables.
std::vector< float > FVarData
ID3D11Buffer * ptexCoordinateBuffer
ID3D11Buffer * patchIndexBuffer
ID3D11Buffer * VertexBufferBinding
ID3D11ShaderResourceView * vertexValenceBufferSRV
ID3D11Buffer * vertexValenceBuffer
ID3D11Buffer * fvarDataBuffer
ID3D11Buffer * quadOffsetBuffer
virtual ~D3D11DrawContext()
void UpdateVertexTexture(VERTEX_BUFFER *vbo, ID3D11DeviceContext *pd3d11DeviceContext)
ID3D11ShaderResourceView * fvarDataBufferSRV
ID3D11ShaderResourceView * ptexCoordinateBufferSRV