OpenSubdiv
Toggle main menu visibility
Loading...
Searching...
No Matches
cudaPatchTable.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_CUDA_PATCH_TABLE_H
26
#define OPENSUBDIV3_OSD_CUDA_PATCH_TABLE_H
27
28
#include "../version.h"
29
30
#include "
../osd/nonCopyable.h
"
31
#include "
../osd/types.h
"
32
33
#include <vector>
34
35
namespace
OpenSubdiv
{
36
namespace
OPENSUBDIV_VERSION
{
37
38
namespace
Far
{
39
class
PatchTable
;
40
};
41
42
namespace
Osd
{
43
51
class
CudaPatchTable
:
private
NonCopyable
<CudaPatchTable> {
52
public
:
54
static
CudaPatchTable
*
Create
(
Far::PatchTable
const
*patchTable,
55
void
*deviceContext = NULL);
57
~CudaPatchTable
();
58
60
void
*
GetPatchArrayBuffer
()
const
{
return
_patchArrays
; }
61
63
void
*
GetPatchIndexBuffer
()
const
{
return
_indexBuffer
; }
64
66
void
*
GetPatchParamBuffer
()
const
{
return
_patchParamBuffer
; }
67
69
void
*
GetVaryingPatchArrayBuffer
()
const
{
70
return
_varyingPatchArrays
;
71
}
72
73
void
*
GetVaryingPatchIndexBuffer
()
const
{
74
return
_varyingIndexBuffer
;
75
}
76
78
int
GetNumFVarChannels
()
const
{
return
(
int
)
_fvarPatchArrays
.size(); }
79
81
void
*
GetFVarPatchArrayBuffer
(
int
fvarChannel)
const
{
82
return
_fvarPatchArrays
[fvarChannel];
83
}
84
86
void
*
GetFVarPatchIndexBuffer
(
int
fvarChannel = 0)
const
{
87
return
_fvarIndexBuffers
[fvarChannel];
88
}
89
91
void
*
GetFVarPatchParamBuffer
(
int
fvarChannel = 0)
const
{
92
return
_fvarParamBuffers
[fvarChannel];
93
}
94
95
protected
:
96
CudaPatchTable
();
97
98
bool
allocate
(
Far::PatchTable
const
*patchTable);
99
100
void
*
_patchArrays
;
101
void
*
_indexBuffer
;
102
void
*
_patchParamBuffer
;
103
104
void
*
_varyingPatchArrays
;
105
void
*
_varyingIndexBuffer
;
106
107
std::vector<void *>
_fvarPatchArrays
;
108
std::vector<void *>
_fvarIndexBuffers
;
109
std::vector<void *>
_fvarParamBuffers
;
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_CUDA_PATCH_TABLE_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::CudaPatchTable::GetFVarPatchArrayBuffer
void * GetFVarPatchArrayBuffer(int fvarChannel) const
Returns the cuda memory of the array of Osd::PatchArray buffer.
Definition
cudaPatchTable.h:81
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_fvarParamBuffers
std::vector< void * > _fvarParamBuffers
Definition
cudaPatchTable.h:109
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::Create
static CudaPatchTable * Create(Far::PatchTable const *patchTable, void *deviceContext=NULL)
Creator. Returns NULL if error.
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_varyingPatchArrays
void * _varyingPatchArrays
Definition
cudaPatchTable.h:104
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetVaryingPatchIndexBuffer
void * GetVaryingPatchIndexBuffer() const
Returns the cuda memory of the array of varying control vertices.
Definition
cudaPatchTable.h:73
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_fvarIndexBuffers
std::vector< void * > _fvarIndexBuffers
Definition
cudaPatchTable.h:108
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetVaryingPatchArrayBuffer
void * GetVaryingPatchArrayBuffer() const
Returns the cuda memory of the array of Osd::PatchArray buffer.
Definition
cudaPatchTable.h:69
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_varyingIndexBuffer
void * _varyingIndexBuffer
Definition
cudaPatchTable.h:105
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::~CudaPatchTable
~CudaPatchTable()
Destructor.
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetPatchArrayBuffer
void * GetPatchArrayBuffer() const
Returns the cuda memory of the array of Osd::PatchArray buffer.
Definition
cudaPatchTable.h:60
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_fvarPatchArrays
std::vector< void * > _fvarPatchArrays
Definition
cudaPatchTable.h:107
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::allocate
bool allocate(Far::PatchTable const *patchTable)
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetPatchIndexBuffer
void * GetPatchIndexBuffer() const
Returns the cuda memory of the patch control vertices.
Definition
cudaPatchTable.h:63
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetNumFVarChannels
int GetNumFVarChannels() const
Returns the number of face-varying channels buffers.
Definition
cudaPatchTable.h:78
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_patchArrays
void * _patchArrays
Definition
cudaPatchTable.h:100
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetPatchParamBuffer
void * GetPatchParamBuffer() const
Returns the cuda memory of the array of Osd::PatchParam buffer.
Definition
cudaPatchTable.h:66
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetFVarPatchIndexBuffer
void * GetFVarPatchIndexBuffer(int fvarChannel=0) const
Returns the cuda memory of the array of face-varying control vertices.
Definition
cudaPatchTable.h:86
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::GetFVarPatchParamBuffer
void * GetFVarPatchParamBuffer(int fvarChannel=0) const
Returns the cuda memory of the array of face-varying param.
Definition
cudaPatchTable.h:91
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::CudaPatchTable
CudaPatchTable()
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_patchParamBuffer
void * _patchParamBuffer
Definition
cudaPatchTable.h:102
OpenSubdiv::OPENSUBDIV_VERSION::Osd::CudaPatchTable::_indexBuffer
void * _indexBuffer
Definition
cudaPatchTable.h:101
OpenSubdiv::OPENSUBDIV_VERSION::Osd::NonCopyable< CudaPatchTable >::NonCopyable
NonCopyable()
Definition
nonCopyable.h:37
types.h
opensubdiv
osd
cudaPatchTable.h
Generated on
for OpenSubdiv by
1.18.0