143 |
#ifdef GL_VERTEX_PROGRAM_NV |
#ifdef GL_VERTEX_PROGRAM_NV |
144 |
VPid(GLuint name) : name(name) {} |
VPid(GLuint name) : name(name) {} |
145 |
VPid() { glGenProgramsNV(1, &name); } |
VPid() { glGenProgramsNV(1, &name); } |
146 |
~VPid() { if (name) glDeleteProgramsNV(1, &name); } |
~VPid() { glDeleteProgramsNV(1, &name); } |
147 |
#endif |
#endif |
148 |
}; |
}; |
149 |
|
|
169 |
} |
} |
170 |
|
|
171 |
protected: |
protected: |
172 |
void compile() { |
void compile(); |
|
vpid = shared_ptr<VPid>(new VPid); |
|
|
#ifdef GL_VERTEX_PROGRAM_NV |
|
|
if (source.compare(0, 5, "!!VSP")) |
|
|
glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, vpid->name, |
|
|
source.length(), (GLubyte*)source.data()); |
|
|
else |
|
|
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, vpid->name, source.length(), |
|
|
(GLubyte*)source.data()); |
|
|
#endif |
|
|
} |
|
173 |
string source; |
string source; |
174 |
shared_ptr<VPid> vpid; |
shared_ptr<VPid> vpid; |
175 |
}; |
}; |