OpenSubdiv
Toggle main menu visibility
Loading...
Searching...
No Matches
d3d11PatchTable.h
Go to the documentation of this file.
1
//
2
// Copyright 2015 Pixar
3
//
4
// Licensed under the Apache License, Version 2.0 (the "Apache License")
5
// with the following modification; you may not use this file except in
6
// compliance with the Apache License and the following modification to it:
7
// Section 6. Trademarks. is deleted and replaced with:
8
//
9
// 6. Trademarks. This License does not grant permission to use the trade
10
// names, trademarks, service marks, or product names of the Licensor
11
// and its affiliates, except as required to comply with Section 4(c) of
12
// the License and to reproduce the content of the NOTICE file.
13
//
14
// You may obtain a copy of the Apache License at
15
//
16
// http://www.apache.org/licenses/LICENSE-2.0
17
//
18
// Unless required by applicable law or agreed to in writing, software
19
// distributed under the Apache License with the above modification is
20
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
// KIND, either express or implied. See the Apache License for the specific
22
// language governing permissions and limitations under the Apache License.
23
//
24
25
#ifndef OPENSUBDIV3_OSD_GL_PATCH_TABLE_H
26
#define OPENSUBDIV3_OSD_GL_PATCH_TABLE_H
27
28
#include "../version.h"
29
30
#include <vector>
31
#include "
../far/patchDescriptor.h
"
32
#include "
../osd/nonCopyable.h
"
33
#include "
../osd/types.h
"
34
35
struct
ID3D11Buffer;
36
struct
ID3D11ShaderResourceView;
37
struct
ID3D11Device;
38
struct
ID3D11DeviceContext;
39
40
namespace
OpenSubdiv
{
41
namespace
OPENSUBDIV_VERSION
{
42
43
namespace
Far
{
44
class
PatchTable
;
45
};
46
47
namespace
Osd
{
48
49
class
D3D11PatchTable
:
private
NonCopyable
<D3D11PatchTable> {
50
public
:
51
typedef
ID3D11Buffer *
VertexBufferBinding
;
52
53
D3D11PatchTable
();
54
~D3D11PatchTable
();
55
56
template
<
typename
DEVICE_CONTEXT>
57
static
D3D11PatchTable
*
Create
(
Far::PatchTable
const
*farPatchTable,
58
DEVICE_CONTEXT context) {
59
return
Create
(farPatchTable, context->GetDeviceContext());
60
}
61
62
static
D3D11PatchTable
*
Create
(
Far::PatchTable
const
*farPatchTable,
63
ID3D11DeviceContext *deviceContext);
64
65
PatchArrayVector
const
&
GetPatchArrays
()
const
{
66
return
_patchArrays
;
67
}
68
70
ID3D11Buffer*
GetPatchIndexBuffer
()
const
{
71
return
_indexBuffer
;
72
}
73
75
ID3D11ShaderResourceView*
GetPatchParamSRV
()
const
{
76
return
_patchParamBufferSRV
;
77
}
78
79
protected
:
80
// allocate buffers from patchTable
81
bool
allocate
(
Far::PatchTable
const
*farPatchTable,
82
ID3D11DeviceContext *deviceContext);
83
84
PatchArrayVector
_patchArrays
;
85
86
ID3D11Buffer *
_indexBuffer
;
87
ID3D11Buffer *
_patchParamBuffer
;
88
ID3D11ShaderResourceView *
_patchParamBufferSRV
;
89
};
90
91
92
}
// end namespace Osd
93
94
}
// end namespace OPENSUBDIV_VERSION
95
using namespace
OPENSUBDIV_VERSION
;
96
97
}
// end namespace OpenSubdiv
98
99
#endif
// OPENSUBDIV3_OSD_GL_PATCH_TABLE_H
nonCopyable.h
patchDescriptor.h
OpenSubdiv
Definition
error.h:30
OpenSubdiv::OPENSUBDIV_VERSION
Definition
error.h:31
OpenSubdiv::OPENSUBDIV_VERSION::Far
Definition
error.h:33
OpenSubdiv::OPENSUBDIV_VERSION::Osd
Definition
bufferDescriptor.h:34
OpenSubdiv::OPENSUBDIV_VERSION::Osd::PatchArrayVector
std::vector< PatchArray > PatchArrayVector
Definition
types.h:132
OpenSubdiv::OPENSUBDIV_VERSION::Far::PatchTable
Container for arrays of parametric patches.
Definition
patchTable.h:55
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::Create
static D3D11PatchTable * Create(Far::PatchTable const *farPatchTable, DEVICE_CONTEXT context)
Definition
d3d11PatchTable.h:57
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::GetPatchArrays
PatchArrayVector const & GetPatchArrays() const
Definition
d3d11PatchTable.h:65
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::allocate
bool allocate(Far::PatchTable const *farPatchTable, ID3D11DeviceContext *deviceContext)
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::VertexBufferBinding
ID3D11Buffer * VertexBufferBinding
Definition
d3d11PatchTable.h:51
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::~D3D11PatchTable
~D3D11PatchTable()
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::GetPatchIndexBuffer
ID3D11Buffer * GetPatchIndexBuffer() const
Returns the index buffer containing the patch control vertices.
Definition
d3d11PatchTable.h:70
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::_patchArrays
PatchArrayVector _patchArrays
Definition
d3d11PatchTable.h:84
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::_indexBuffer
ID3D11Buffer * _indexBuffer
Definition
d3d11PatchTable.h:86
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::Create
static D3D11PatchTable * Create(Far::PatchTable const *farPatchTable, ID3D11DeviceContext *deviceContext)
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::_patchParamBufferSRV
ID3D11ShaderResourceView * _patchParamBufferSRV
Definition
d3d11PatchTable.h:88
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::_patchParamBuffer
ID3D11Buffer * _patchParamBuffer
Definition
d3d11PatchTable.h:87
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::GetPatchParamSRV
ID3D11ShaderResourceView * GetPatchParamSRV() const
Returns the SRV containing the patch parameter.
Definition
d3d11PatchTable.h:75
OpenSubdiv::OPENSUBDIV_VERSION::Osd::D3D11PatchTable::D3D11PatchTable
D3D11PatchTable()
OpenSubdiv::OPENSUBDIV_VERSION::Osd::NonCopyable< D3D11PatchTable >::NonCopyable
NonCopyable()
Definition
nonCopyable.h:37
types.h
opensubdiv
osd
d3d11PatchTable.h
Generated on
for OpenSubdiv by
1.18.0