8#ifndef OPENSUBDIV3_OSD_MTL_LEGACY_GREGORY_PATCH_TABLE_H
9#define OPENSUBDIV3_OSD_MTL_LEGACY_GREGORY_PATCH_TABLE_H
11#include "../version.h"
13#include "../osd/nonCopyable.h"
20namespace OPENSUBDIV_VERSION {
25:
private NonCopyable<MTLLegacyGregoryPatchTable>
30 template<
typename DEVICE_CONTEXT>
32 return Create(farPatchTable, context);
46 return _vertexValenceBuffer;
51 return _quadOffsetsBuffer;
57 return _quadOffsetsBase[1];
58 return _quadOffsetsBase[0];
62 id<MTLBuffer> _vertexBuffer;
63 id<MTLBuffer> _vertexValenceBuffer;
64 id<MTLBuffer> _quadOffsetsBuffer;
65 int _quadOffsetsBase[2];
71using namespace OPENSUBDIV_VERSION;
Container for arrays of parametric patches.
int GetQuadOffsetsBase(Far::PatchDescriptor::Type type)
static MTLLegacyGregoryPatchTable * Create(Far::PatchTable const *farPatchTable, DEVICE_CONTEXT context)
id< MTLBuffer > GetVertexValenceBuffer() const
id< MTLBuffer > GetQuadOffsetsBuffer() const
static MTLLegacyGregoryPatchTable * Create(Far::PatchTable const *farPatchTable, MTLContext *context)
void UpdateVertexBuffer(id< MTLBuffer > vbo, int numVertices, int numVertexElements, MTLContext *context)
~MTLLegacyGregoryPatchTable()
id< MTLBuffer > GetVertexBuffer() const