OpenSubdiv
Toggle main menu visibility
Loading...
Searching...
No Matches
clPatchTable.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_CL_PATCH_TABLE_H
26
#define OPENSUBDIV3_OSD_CL_PATCH_TABLE_H
27
28
#include "../version.h"
29
30
#include "
../osd/opencl.h
"
31
#include "
../osd/nonCopyable.h
"
32
#include "
../osd/types.h
"
33
34
#include <vector>
35
36
namespace
OpenSubdiv
{
37
namespace
OPENSUBDIV_VERSION
{
38
39
namespace
Far
{
40
class
PatchTable
;
41
};
42
43
namespace
Osd
{
44
52
class
CLPatchTable
:
private
NonCopyable
<CLPatchTable> {
53
public
:
55
static
CLPatchTable
*
Create
(
Far::PatchTable
const
*patchTable,
56
cl_context clContext);
57
58
template
<
typename
DEVICE_CONTEXT>
59
static
CLPatchTable
*
Create
(
Far::PatchTable
const
*patchTable,
60
DEVICE_CONTEXT context) {
61
return
Create
(patchTable, context->GetContext());
62
}
63
65
~CLPatchTable
();
66
68
cl_mem
GetPatchArrayBuffer
()
const
{
return
_patchArrays
; }
69
71
cl_mem
GetPatchIndexBuffer
()
const
{
return
_indexBuffer
; }
72
74
cl_mem
GetPatchParamBuffer
()
const
{
return
_patchParamBuffer
; }
75
77
cl_mem
GetVaryingPatchArrayBuffer
()
const
{
return
_varyingPatchArrays
; }
78
80
cl_mem
GetVaryingPatchIndexBuffer
()
const
{
return
_varyingIndexBuffer
; }
81
83
int
GetNumFVarChannels
()
const
{
return
(
int
)
_fvarPatchArrays
.size(); }
84
86
cl_mem
GetFVarPatchArrayBuffer
(
int
fvarChannel = 0)
const
{
return
_fvarPatchArrays
[fvarChannel]; }
87
89
cl_mem
GetFVarPatchIndexBuffer
(
int
fvarChannel = 0)
const
{
return
_fvarIndexBuffers
[fvarChannel]; }
90
92
cl_mem
GetFVarPatchParamBuffer
(
int
fvarChannel = 0)
const
{
return
_fvarParamBuffers
[fvarChannel]; }
93
94
protected
:
95
CLPatchTable
();
96
97
bool
allocate
(
Far::PatchTable
const
*patchTable, cl_context clContext);
98
99
cl_mem
_patchArrays
;
100
cl_mem
_indexBuffer
;
101
cl_mem
_patchParamBuffer
;
102
103
cl_mem
_varyingPatchArrays
;
104
cl_mem
_varyingIndexBuffer
;
105
106
std::vector<cl_mem>
_fvarPatchArrays
;
107
std::vector<cl_mem>
_fvarIndexBuffers
;
108
std::vector<cl_mem>
_fvarParamBuffers
;
109
110
};
111
112
}
// end namespace Osd
113
114
}
// end namespace OPENSUBDIV_VERSION
115
using namespace
OPENSUBDIV_VERSION
;
116
117
}
// end namespace OpenSubdiv
118
119
#endif
// OPENSUBDIV3_OSD_CL_PATCH_TABLE_H
opencl.h
nonCopyable.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::Far::PatchTable
Container for arrays of parametric patches.
Definition
patchTable.h:55
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_fvarPatchArrays
std::vector< cl_mem > _fvarPatchArrays
Definition
clPatchTable.h:106
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::~CLPatchTable
~CLPatchTable()
Destructor.
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_patchParamBuffer
cl_mem _patchParamBuffer
Definition
clPatchTable.h:101
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetPatchParamBuffer
cl_mem GetPatchParamBuffer() const
Returns the CL memory of the array of Osd::PatchParam buffer.
Definition
clPatchTable.h:74
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_indexBuffer
cl_mem _indexBuffer
Definition
clPatchTable.h:100
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetFVarPatchArrayBuffer
cl_mem GetFVarPatchArrayBuffer(int fvarChannel=0) const
Returns the CL memory of the array of Osd::PatchArray buffer.
Definition
clPatchTable.h:86
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetPatchArrayBuffer
cl_mem GetPatchArrayBuffer() const
Returns the CL memory of the array of Osd::PatchArray buffer.
Definition
clPatchTable.h:68
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::Create
static CLPatchTable * Create(Far::PatchTable const *patchTable, cl_context clContext)
Creator. Returns NULL if error.
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_patchArrays
cl_mem _patchArrays
Definition
clPatchTable.h:99
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetFVarPatchIndexBuffer
cl_mem GetFVarPatchIndexBuffer(int fvarChannel=0) const
Returns the CL memory of the face-varying control vertices.
Definition
clPatchTable.h:89
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_varyingIndexBuffer
cl_mem _varyingIndexBuffer
Definition
clPatchTable.h:104
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetVaryingPatchIndexBuffer
cl_mem GetVaryingPatchIndexBuffer() const
Returns the CL memory of the varying control vertices.
Definition
clPatchTable.h:80
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetNumFVarChannels
int GetNumFVarChannels() const
Returns the number of face-varying channel buffers.
Definition
clPatchTable.h:83
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetPatchIndexBuffer
cl_mem GetPatchIndexBuffer() const
Returns the CL memory of the patch control vertices.
Definition
clPatchTable.h:71
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::Create
static CLPatchTable * Create(Far::PatchTable const *patchTable, DEVICE_CONTEXT context)
Definition
clPatchTable.h:59
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetFVarPatchParamBuffer
cl_mem GetFVarPatchParamBuffer(int fvarChannel=0) const
Returns the CL memory of the array of Osd::PatchParam buffer.
Definition
clPatchTable.h:92
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::CLPatchTable
CLPatchTable()
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::allocate
bool allocate(Far::PatchTable const *patchTable, cl_context clContext)
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_fvarParamBuffers
std::vector< cl_mem > _fvarParamBuffers
Definition
clPatchTable.h:108
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_fvarIndexBuffers
std::vector< cl_mem > _fvarIndexBuffers
Definition
clPatchTable.h:107
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::_varyingPatchArrays
cl_mem _varyingPatchArrays
Definition
clPatchTable.h:103
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CLPatchTable::GetVaryingPatchArrayBuffer
cl_mem GetVaryingPatchArrayBuffer() const
Returns the CL memory of the array of Osd::PatchArray buffer.
Definition
clPatchTable.h:77
OpenSubdiv::OPENSUBDIV_VERSION::Osd::NonCopyable< CLPatchTable >::NonCopyable
NonCopyable()
Definition
nonCopyable.h:37
types.h
opensubdiv
osd
clPatchTable.h
Generated on
for OpenSubdiv by
1.18.0