14#ifndef OSG_VERTEXPROGRAM
15#define OSG_VERTEXPROGRAM 1
27#ifndef GL_ARB_vertex_program
28#define GL_VERTEX_PROGRAM_ARB 0x8620
29#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
30#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
31#define GL_COLOR_SUM_ARB 0x8458
32#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
33#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
34#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
35#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
36#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
37#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
38#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
39#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
40#define GL_PROGRAM_LENGTH_ARB 0x8627
41#define GL_PROGRAM_FORMAT_ARB 0x8876
42#define GL_PROGRAM_BINDING_ARB 0x8677
43#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
44#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
45#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
46#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
47#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
48#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
49#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
50#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
51#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
52#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
53#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
54#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
55#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
56#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
57#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
58#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
59#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
60#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
61#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
62#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
63#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
64#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
65#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
66#define GL_PROGRAM_STRING_ARB 0x8628
67#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
68#define GL_CURRENT_MATRIX_ARB 0x8641
69#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
70#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
71#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
72#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
73#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
74#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
75#define GL_MATRIX0_ARB 0x88C0
76#define GL_MATRIX1_ARB 0x88C1
77#define GL_MATRIX2_ARB 0x88C2
78#define GL_MATRIX3_ARB 0x88C3
79#define GL_MATRIX4_ARB 0x88C4
80#define GL_MATRIX5_ARB 0x88C5
81#define GL_MATRIX6_ARB 0x88C6
82#define GL_MATRIX7_ARB 0x88C7
83#define GL_MATRIX8_ARB 0x88C8
84#define GL_MATRIX9_ARB 0x88C9
85#define GL_MATRIX10_ARB 0x88CA
86#define GL_MATRIX11_ARB 0x88CB
87#define GL_MATRIX12_ARB 0x88CC
88#define GL_MATRIX13_ARB 0x88CD
89#define GL_MATRIX14_ARB 0x88CE
90#define GL_MATRIX15_ARB 0x88CF
91#define GL_MATRIX16_ARB 0x88D0
92#define GL_MATRIX17_ARB 0x88D1
93#define GL_MATRIX18_ARB 0x88D2
94#define GL_MATRIX19_ARB 0x88D3
95#define GL_MATRIX20_ARB 0x88D4
96#define GL_MATRIX21_ARB 0x88D5
97#define GL_MATRIX22_ARB 0x88D6
98#define GL_MATRIX23_ARB 0x88D7
99#define GL_MATRIX24_ARB 0x88D8
100#define GL_MATRIX25_ARB 0x88D9
101#define GL_MATRIX26_ARB 0x88DA
102#define GL_MATRIX27_ARB 0x88DB
103#define GL_MATRIX28_ARB 0x88DC
104#define GL_MATRIX29_ARB 0x88DD
105#define GL_MATRIX30_ARB 0x88DE
106#define GL_MATRIX31_ARB 0x88DF
150 return _vertexProgramIDList[contextID];
157 _vertexProgram = program;
158 dirtyVertexProgramObject();
164 _vertexProgram = program;
165 dirtyVertexProgramObject();
174 _programLocalParameters[index] = p;
191 _matrixList[mode] = matrix;
#define COMPARE_StateAttribute_Parameter(parameter)
Definition StateAttribute:69
#define COMPARE_StateAttribute_Types(TYPE, rhs_attribute)
Definition StateAttribute:57
#define GL_VERTEX_PROGRAM_ARB
Definition VertexProgram:28
Definition StateAttribute:77
Definition VertexProgram:116
const std::string & getVertexProgram() const
Definition VertexProgram:169
virtual bool getModeUsage(StateAttribute::ModeUsage &usage) const
Definition VertexProgram:139
GLuint & getVertexProgramID(unsigned int contextID) const
Definition VertexProgram:148
std::map< GLuint, Vec4 > LocalParamList
Definition VertexProgram:177
LocalParamList & getLocalParameters()
Definition VertexProgram:183
virtual void compileGLObjects(State &state) const
Definition VertexProgram:210
MatrixList & getMatrices()
Definition VertexProgram:200
virtual void releaseGLObjects(State *state=0) const
void setLocalParameters(const LocalParamList &lpl)
Definition VertexProgram:180
void dirtyVertexProgramObject()
void setVertexProgram(const char *program)
Definition VertexProgram:155
const MatrixList & getMatrices() const
Definition VertexProgram:203
void setMatrix(const GLenum mode, const Matrix &matrix)
Definition VertexProgram:189
virtual void resizeGLObjectBuffers(unsigned int maxSize)
MatrixList _matrixList
Definition VertexProgram:233
LocalParamList _programLocalParameters
Definition VertexProgram:231
virtual void apply(State &state) const
VertexProgram(const VertexProgram &vp, const CopyOp ©op=CopyOp::SHALLOW_COPY)
buffered_value< GLuint > VertexProgramIDList
Definition VertexProgram:226
std::string _vertexProgram
Definition VertexProgram:229
std::map< GLenum, Matrix > MatrixList
Definition VertexProgram:194
void setVertexProgram(const std::string &program)
Definition VertexProgram:162
META_StateAttribute(osg, VertexProgram, VERTEXPROGRAM)
virtual int compare(const osg::StateAttribute &sa) const
Definition VertexProgram:127
void setMatrices(const MatrixList &matrices)
Definition VertexProgram:197
VertexProgramIDList _vertexProgramIDList
Definition VertexProgram:227
void setProgramLocalParameter(const GLuint index, const Vec4 &p)
Definition VertexProgram:172
const LocalParamList & getLocalParameters() const
Definition VertexProgram:186
Definition buffered_value:27
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
#define OSG_EXPORT
Definition osg/Export:39
Definition StateAttribute:308
virtual void usesMode(GLMode mode)=0