25 #ifndef OSD_GL_DRAW_CONTEXT_H
26 #define OSD_GL_DRAW_CONTEXT_H
28 #include "../version.h"
30 #include "../far/patchTables.h"
31 #include "../osd/drawContext.h"
32 #include "../osd/drawRegistry.h"
33 #include "../osd/vertex.h"
35 #include "../osd/opengl.h"
39 namespace OpenSubdiv {
40 namespace OPENSUBDIV_VERSION {
72 template<
class VERTEX_BUFFER>
125 int fvarWidth,
FVarData const & fvarData);
149 using namespace OPENSUBDIV_VERSION;
static bool SupportsAdaptiveTessellation()
true if the GL version detected supports shader tessellation
Container for patch vertex indices tables.
GLuint _quadOffsetsTextureBuffer
GLuint _fvarDataTextureBuffer
GLuint VertexBufferBinding
GLuint _vertexValenceTextureBuffer
std::vector< float > FVarData
bool create(Far::PatchTables const &patchTables, int numElements)
GLuint _patchParamTextureBuffer
GLuint GetVertexTextureBuffer() const
Returns the GL texture buffer containing the vertex data.
GLuint GetFvarDataTextureBuffer() const
Returns the GL texture buffer containing fvar data.
GLuint GetQuadOffsetsTextureBuffer() const
GLuint GetPatchIndexBuffer() const
Returns the GL texture buffer containing the patch control vertices array.
bool SetFVarDataTexture(Far::PatchTables const &patchTables, int fvarWidth, FVarData const &fvarData)
static GLDrawContext * Create(Far::PatchTables const *patchTables, int numVertexElements)
Create an GLDraContext from Far::PatchTables.
void updateVertexTexture(GLuint vbo)
OpenGL specialized DrawContext class.
GLuint _vertexTextureBuffer
void UpdateVertexTexture(VERTEX_BUFFER *vbo)
GLuint GetPatchParamTextureBuffer() const
GLuint GetVertexValenceTextureBuffer() const