23
#include "GLDeviceFactory.h"
24
#include "GLDeviceObjects.h"
25
#include "IOpenGLAsmShader.h"
29
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmShader);
30
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmVertexShader);
31
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmPixelShader);
32
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmShaderProgram);
34
bool ExtractShaderString3(const NString &ShaderToken, const NString &ShaderSource, NString &RetSource, NString ShaderPreprocessorDefines);
36
IOpenGLAsmShader::IOpenGLAsmShader(NString ShaderName, OpenGLResourceType ResourceType)
37
: IOpenGLResource(ResourceType)
38
, _ShaderName(ShaderName)
43
IOpenGLAsmShader::~IOpenGLAsmShader()
48
IOpenGLAsmVertexShader::IOpenGLAsmVertexShader(NString ShaderName)
49
: m_CompiledAndReady(false)
50
, IOpenGLAsmShader(ShaderName, RT_GLSL_VERTEXSHADER)
52
CHECKGL( glGenProgramsARB(1, &_OpenGLID) );
55
IOpenGLAsmVertexShader::~IOpenGLAsmVertexShader()
57
CHECKGL( glDeleteProgramsARB(1, &_OpenGLID) );
59
m_CompiledAndReady = false;
62
void IOpenGLAsmVertexShader::SetShaderCode(const TCHAR* ShaderCode)
64
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmVertexShader::SetShaderCode] Invalid shader code."));
65
INL_RETURN_IF_NULL(ShaderCode);
66
m_CompiledAndReady = false;
67
_ShaderCode = ShaderCode;
70
bool IOpenGLAsmVertexShader::Compile()
72
m_CompiledAndReady = false;
73
t_size CodeSize = _ShaderCode.Size();
76
nuxDebugMsg(TEXT("[IOpenGLAsmVertexShader::Compile] Vertex shader source code is empty."));
79
char* ShaderSource = new char[CodeSize+1];
80
Memset(ShaderSource, 0, CodeSize+1);
81
Memcpy(ShaderSource, TCHAR_TO_ANSI(_ShaderCode.GetTCharPtr()), CodeSize);
83
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, _OpenGLID) );
84
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, CodeSize, ShaderSource);
86
if( GL_INVALID_OPERATION == glGetError() )
88
// Find the error position
90
glGetIntegerv( GL_PROGRAM_ERROR_POSITION_ARB, &errPos );
91
// Print implementation-dependent program
92
// errors and warnings string.
93
const unsigned char *ErrorString;
94
ErrorString = INL_STATIC_CAST(const unsigned char*, glGetString(GL_PROGRAM_ERROR_STRING_ARB) );
95
nuxError(TEXT("[IOpenGLAsmVertexShader::Compile] Error in vertex shader at position: %d\n%s\n"), errPos, ErrorString );
96
return m_CompiledAndReady;
100
m_CompiledAndReady = true;
101
return m_CompiledAndReady;
104
bool IOpenGLAsmVertexShader::IsValid()
106
return m_CompiledAndReady;
109
IOpenGLAsmPixelShader::IOpenGLAsmPixelShader(NString ShaderName)
110
: m_CompiledAndReady(false)
111
, IOpenGLAsmShader(ShaderName, RT_GLSL_PIXELSHADER)
113
CHECKGL( glGenProgramsARB(1, &_OpenGLID) );
116
IOpenGLAsmPixelShader::~IOpenGLAsmPixelShader()
118
CHECKGL( glDeleteProgramsARB(1, &_OpenGLID) );
120
m_CompiledAndReady = false;
123
void IOpenGLAsmPixelShader::SetShaderCode(const TCHAR* ShaderCode)
125
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmPixelShader::SetShaderCode] Invalid shader code."));
126
INL_RETURN_IF_NULL(ShaderCode);
127
m_CompiledAndReady = false;
128
_ShaderCode = ShaderCode;
131
bool IOpenGLAsmPixelShader::Compile()
133
m_CompiledAndReady = false;
134
t_size CodeSize = _ShaderCode.Size();
137
nuxDebugMsg(TEXT("[IOpenGLAsmPixelShader::Compile] Vertex shader source code is empty."));
140
char* ShaderSource = new char[CodeSize+1];
141
Memset(ShaderSource, 0, CodeSize+1);
142
Memcpy(ShaderSource, TCHAR_TO_ANSI(_ShaderCode.GetTCharPtr()), CodeSize);
144
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, _OpenGLID) );
145
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, CodeSize, ShaderSource);
147
if( GL_INVALID_OPERATION == glGetError() )
149
// Find the error position
151
glGetIntegerv( GL_PROGRAM_ERROR_POSITION_ARB, &errPos );
152
// Print implementation-dependent program
153
// errors and warnings string.
154
const unsigned char *ErrorString;
155
ErrorString = INL_STATIC_CAST(const unsigned char*, glGetString(GL_PROGRAM_ERROR_STRING_ARB) );
156
nuxError(TEXT("[IOpenGLAsmPixelShader::Compile] Error in fragment shader at position: %d\n%s\n"), errPos, ErrorString );
160
m_CompiledAndReady = true;
161
return m_CompiledAndReady;
164
bool IOpenGLAsmPixelShader::IsValid()
166
return m_CompiledAndReady;
169
IOpenGLAsmShaderProgram::IOpenGLAsmShaderProgram(NString ShaderProgramName)
170
: IOpenGLResource(RT_GLSL_SHADERPROGRAM)
171
, _ShaderProgramName(ShaderProgramName)
174
m_AsmVertexProgram = GetThreadGLDeviceFactory()->CreateAsmVertexShader();
175
m_AsmFragmentProgram = GetThreadGLDeviceFactory()->CreateAsmPixelShader();
178
IOpenGLAsmShaderProgram::~IOpenGLAsmShaderProgram()
183
void IOpenGLAsmShaderProgram::LoadIShaderFile(const TCHAR* ShaderFileName)
185
nuxAssertMsg(ShaderFileName, TEXT("[IOpenGLAsmShaderProgram::LoadIShaderFile] Invalid shader file name."));
186
INL_RETURN_IF_NULL(ShaderFileName);
188
LoadFileToString(SourceCode, ShaderFileName);
189
LoadIShader(&SourceCode[0]);
192
void IOpenGLAsmShaderProgram::LoadIShader(const TCHAR* ShaderCode)
194
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmShaderProgram::LoadIShader] Invalid shader code."));
195
INL_RETURN_IF_NULL(ShaderCode);
196
NString VertexShaderSource;
197
ExtractShaderString3(TEXT("[Vertex Shader]"), ShaderCode, VertexShaderSource, NString(""));
198
NString PixelShaderSource;
199
ExtractShaderString3(TEXT("[Fragment Shader]"), ShaderCode, PixelShaderSource, NString(""));
201
m_AsmVertexProgram->SetShaderCode(&VertexShaderSource[0]);
202
m_AsmFragmentProgram->SetShaderCode(&PixelShaderSource[0]);
204
m_AsmVertexProgram->Compile();
205
m_AsmFragmentProgram->Compile();
208
void IOpenGLAsmShaderProgram::LoadVertexShader(const TCHAR* glslshader)
210
nuxAssertMsg(glslshader, TEXT("[IOpenGLAsmShaderProgram::LoadVertexShader] Invalid shader code."));
211
INL_RETURN_IF_NULL(glslshader);
212
m_AsmVertexProgram->SetShaderCode(glslshader);
213
m_AsmVertexProgram->Compile();
216
void IOpenGLAsmShaderProgram::LoadPixelShader(const TCHAR* glslshader)
218
nuxAssertMsg(glslshader, TEXT("[IOpenGLAsmShaderProgram::LoadPixelShader] Invalid shader code."));
219
INL_RETURN_IF_NULL(glslshader);
220
m_AsmFragmentProgram->SetShaderCode(glslshader);
221
m_AsmFragmentProgram->Compile();
224
void IOpenGLAsmShaderProgram::Link()
226
m_AsmVertexProgram->Compile();
227
m_AsmFragmentProgram->Compile();
230
bool IOpenGLAsmShaderProgram::IsValid()
232
if(m_AsmVertexProgram->IsValid() && m_AsmFragmentProgram->IsValid())
237
void IOpenGLAsmShaderProgram::Begin(void)
239
CHECKGL( glEnable(GL_VERTEX_PROGRAM_ARB) );
240
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_AsmVertexProgram->GetOpenGLID()) );
241
CHECKGL( glEnable(GL_FRAGMENT_PROGRAM_ARB) );
242
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_AsmFragmentProgram->GetOpenGLID()) );
245
void IOpenGLAsmShaderProgram::End(void)
247
CHECKGL( glDisable(GL_VERTEX_PROGRAM_ARB) );
248
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, 0) );
249
CHECKGL( glDisable(GL_FRAGMENT_PROGRAM_ARB) );
250
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0) );
253
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4dARB (t_uint32 index, double x, double y, double z, double w)
255
CHECKGL( glProgramEnvParameter4dARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
258
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4dvARB(t_uint32 index, const double *params)
260
CHECKGL( glProgramEnvParameter4dvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
263
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4fARB (t_uint32 index, float x, float y, float z, float w)
265
CHECKGL( glProgramEnvParameter4fARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
268
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4fvARB(t_uint32 index, const float *params)
270
CHECKGL( glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
273
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4dARB(t_uint32 index, double x, double y, double z, double w)
275
CHECKGL( glProgramEnvParameter4dARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
278
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4dvARB(t_uint32 index, const double *params)
280
CHECKGL( glProgramEnvParameter4dvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
283
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4fARB(t_uint32 index, float x, float y, float z, float w)
285
CHECKGL( glProgramEnvParameter4fARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
288
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4fvARB(t_uint32 index, const float *params)
290
CHECKGL( glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
293
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4dARB (t_uint32 index, double x, double y, double z, double w)
295
CHECKGL( glProgramEnvParameter4dARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
298
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4dvARB(t_uint32 index, const double *params)
300
CHECKGL( glProgramEnvParameter4dvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
303
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4fARB (t_uint32 index, float x, float y, float z, float w)
305
CHECKGL( glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
308
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4fvARB(t_uint32 index, const float *params)
310
CHECKGL( glProgramEnvParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
313
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4dARB(t_uint32 index, double x, double y, double z, double w)
315
CHECKGL( glProgramEnvParameter4dARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
318
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4dvARB(t_uint32 index, const double *params)
320
CHECKGL( glProgramEnvParameter4dvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
323
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4fARB(t_uint32 index, float x, float y, float z, float w)
325
CHECKGL( glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
328
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4fvARB(t_uint32 index, const float *params)
330
CHECKGL( glProgramEnvParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
23
#include "GLDeviceFactory.h"
24
#include "GLDeviceObjects.h"
25
#include "IOpenGLAsmShader.h"
29
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmShader);
30
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmVertexShader);
31
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmPixelShader);
32
IMPLEMENT_OBJECT_TYPE(IOpenGLAsmShaderProgram);
34
bool ExtractShaderString3(const NString &ShaderToken, const NString &ShaderSource, NString &RetSource, NString ShaderPreprocessorDefines);
36
IOpenGLAsmShader::IOpenGLAsmShader(NString ShaderName, OpenGLResourceType ResourceType)
37
: IOpenGLResource(ResourceType)
38
, _ShaderName(ShaderName)
43
IOpenGLAsmShader::~IOpenGLAsmShader()
48
IOpenGLAsmVertexShader::IOpenGLAsmVertexShader(NString ShaderName)
49
: m_CompiledAndReady(false)
50
, IOpenGLAsmShader(ShaderName, RT_GLSL_VERTEXSHADER)
52
CHECKGL( glGenProgramsARB(1, &_OpenGLID) );
55
IOpenGLAsmVertexShader::~IOpenGLAsmVertexShader()
57
CHECKGL( glDeleteProgramsARB(1, &_OpenGLID) );
59
m_CompiledAndReady = false;
62
void IOpenGLAsmVertexShader::SetShaderCode(const TCHAR* ShaderCode)
64
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmVertexShader::SetShaderCode] Invalid shader code."));
65
INL_RETURN_IF_NULL(ShaderCode);
66
m_CompiledAndReady = false;
67
_ShaderCode = ShaderCode;
70
bool IOpenGLAsmVertexShader::Compile()
72
m_CompiledAndReady = false;
73
t_size CodeSize = _ShaderCode.Size();
76
nuxDebugMsg(TEXT("[IOpenGLAsmVertexShader::Compile] Vertex shader source code is empty."));
79
char* ShaderSource = new char[CodeSize+1];
80
Memset(ShaderSource, 0, CodeSize+1);
81
Memcpy(ShaderSource, TCHAR_TO_ANSI(_ShaderCode.GetTCharPtr()), CodeSize);
83
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, _OpenGLID) );
84
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, CodeSize, ShaderSource);
86
if( GL_INVALID_OPERATION == glGetError() )
88
// Find the error position
90
glGetIntegerv( GL_PROGRAM_ERROR_POSITION_ARB, &errPos );
91
// Print implementation-dependent program
92
// errors and warnings string.
93
const unsigned char *ErrorString;
94
ErrorString = INL_STATIC_CAST(const unsigned char*, glGetString(GL_PROGRAM_ERROR_STRING_ARB) );
95
nuxError(TEXT("[IOpenGLAsmVertexShader::Compile] Error in vertex shader at position: %d\n%s\n"), errPos, ErrorString );
96
return m_CompiledAndReady;
100
m_CompiledAndReady = true;
101
return m_CompiledAndReady;
104
bool IOpenGLAsmVertexShader::IsValid()
106
return m_CompiledAndReady;
109
IOpenGLAsmPixelShader::IOpenGLAsmPixelShader(NString ShaderName)
110
: m_CompiledAndReady(false)
111
, IOpenGLAsmShader(ShaderName, RT_GLSL_PIXELSHADER)
113
CHECKGL( glGenProgramsARB(1, &_OpenGLID) );
116
IOpenGLAsmPixelShader::~IOpenGLAsmPixelShader()
118
CHECKGL( glDeleteProgramsARB(1, &_OpenGLID) );
120
m_CompiledAndReady = false;
123
void IOpenGLAsmPixelShader::SetShaderCode(const TCHAR* ShaderCode)
125
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmPixelShader::SetShaderCode] Invalid shader code."));
126
INL_RETURN_IF_NULL(ShaderCode);
127
m_CompiledAndReady = false;
128
_ShaderCode = ShaderCode;
131
bool IOpenGLAsmPixelShader::Compile()
133
m_CompiledAndReady = false;
134
t_size CodeSize = _ShaderCode.Size();
137
nuxDebugMsg(TEXT("[IOpenGLAsmPixelShader::Compile] Vertex shader source code is empty."));
140
char* ShaderSource = new char[CodeSize+1];
141
Memset(ShaderSource, 0, CodeSize+1);
142
Memcpy(ShaderSource, TCHAR_TO_ANSI(_ShaderCode.GetTCharPtr()), CodeSize);
144
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, _OpenGLID) );
145
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, CodeSize, ShaderSource);
147
if( GL_INVALID_OPERATION == glGetError() )
149
// Find the error position
151
glGetIntegerv( GL_PROGRAM_ERROR_POSITION_ARB, &errPos );
152
// Print implementation-dependent program
153
// errors and warnings string.
154
const unsigned char *ErrorString;
155
ErrorString = INL_STATIC_CAST(const unsigned char*, glGetString(GL_PROGRAM_ERROR_STRING_ARB) );
156
nuxError(TEXT("[IOpenGLAsmPixelShader::Compile] Error in fragment shader at position: %d\n%s\n"), errPos, ErrorString );
160
m_CompiledAndReady = true;
161
return m_CompiledAndReady;
164
bool IOpenGLAsmPixelShader::IsValid()
166
return m_CompiledAndReady;
169
IOpenGLAsmShaderProgram::IOpenGLAsmShaderProgram(NString ShaderProgramName)
170
: IOpenGLResource(RT_GLSL_SHADERPROGRAM)
171
, _ShaderProgramName(ShaderProgramName)
174
m_AsmVertexProgram = GetThreadGLDeviceFactory()->CreateAsmVertexShader();
175
m_AsmFragmentProgram = GetThreadGLDeviceFactory()->CreateAsmPixelShader();
178
IOpenGLAsmShaderProgram::~IOpenGLAsmShaderProgram()
183
void IOpenGLAsmShaderProgram::LoadIShaderFile(const TCHAR* ShaderFileName)
185
nuxAssertMsg(ShaderFileName, TEXT("[IOpenGLAsmShaderProgram::LoadIShaderFile] Invalid shader file name."));
186
INL_RETURN_IF_NULL(ShaderFileName);
188
LoadFileToString(SourceCode, ShaderFileName);
189
LoadIShader(&SourceCode[0]);
192
void IOpenGLAsmShaderProgram::LoadIShader(const TCHAR* ShaderCode)
194
nuxAssertMsg(ShaderCode, TEXT("[IOpenGLAsmShaderProgram::LoadIShader] Invalid shader code."));
195
INL_RETURN_IF_NULL(ShaderCode);
196
NString VertexShaderSource;
197
ExtractShaderString3(TEXT("[Vertex Shader]"), ShaderCode, VertexShaderSource, NString(""));
198
NString PixelShaderSource;
199
ExtractShaderString3(TEXT("[Fragment Shader]"), ShaderCode, PixelShaderSource, NString(""));
201
m_AsmVertexProgram->SetShaderCode(&VertexShaderSource[0]);
202
m_AsmFragmentProgram->SetShaderCode(&PixelShaderSource[0]);
204
m_AsmVertexProgram->Compile();
205
m_AsmFragmentProgram->Compile();
208
void IOpenGLAsmShaderProgram::LoadVertexShader(const TCHAR* glslshader)
210
nuxAssertMsg(glslshader, TEXT("[IOpenGLAsmShaderProgram::LoadVertexShader] Invalid shader code."));
211
INL_RETURN_IF_NULL(glslshader);
212
m_AsmVertexProgram->SetShaderCode(glslshader);
213
m_AsmVertexProgram->Compile();
216
void IOpenGLAsmShaderProgram::LoadPixelShader(const TCHAR* glslshader)
218
nuxAssertMsg(glslshader, TEXT("[IOpenGLAsmShaderProgram::LoadPixelShader] Invalid shader code."));
219
INL_RETURN_IF_NULL(glslshader);
220
m_AsmFragmentProgram->SetShaderCode(glslshader);
221
m_AsmFragmentProgram->Compile();
224
void IOpenGLAsmShaderProgram::Link()
226
m_AsmVertexProgram->Compile();
227
m_AsmFragmentProgram->Compile();
230
bool IOpenGLAsmShaderProgram::IsValid()
232
if(m_AsmVertexProgram->IsValid() && m_AsmFragmentProgram->IsValid())
237
void IOpenGLAsmShaderProgram::Begin(void)
239
CHECKGL( glEnable(GL_VERTEX_PROGRAM_ARB) );
240
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_AsmVertexProgram->GetOpenGLID()) );
241
CHECKGL( glEnable(GL_FRAGMENT_PROGRAM_ARB) );
242
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_AsmFragmentProgram->GetOpenGLID()) );
245
void IOpenGLAsmShaderProgram::End(void)
247
CHECKGL( glDisable(GL_VERTEX_PROGRAM_ARB) );
248
CHECKGL( glBindProgramARB(GL_VERTEX_PROGRAM_ARB, 0) );
249
CHECKGL( glDisable(GL_FRAGMENT_PROGRAM_ARB) );
250
CHECKGL( glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0) );
253
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4dARB (t_uint32 index, double x, double y, double z, double w)
255
CHECKGL( glProgramEnvParameter4dARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
258
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4dvARB(t_uint32 index, const double *params)
260
CHECKGL( glProgramEnvParameter4dvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
263
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4fARB (t_uint32 index, float x, float y, float z, float w)
265
CHECKGL( glProgramEnvParameter4fARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
268
void IOpenGLAsmShaderProgram::SetVertexEnvParameter4fvARB(t_uint32 index, const float *params)
270
CHECKGL( glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
273
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4dARB(t_uint32 index, double x, double y, double z, double w)
275
CHECKGL( glProgramEnvParameter4dARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
278
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4dvARB(t_uint32 index, const double *params)
280
CHECKGL( glProgramEnvParameter4dvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
283
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4fARB(t_uint32 index, float x, float y, float z, float w)
285
CHECKGL( glProgramEnvParameter4fARB(GL_VERTEX_PROGRAM_ARB, index, x, y, z, w) );
288
void IOpenGLAsmShaderProgram::SetVertexLocalParameter4fvARB(t_uint32 index, const float *params)
290
CHECKGL( glProgramEnvParameter4fvARB(GL_VERTEX_PROGRAM_ARB, index, params) );
293
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4dARB (t_uint32 index, double x, double y, double z, double w)
295
CHECKGL( glProgramEnvParameter4dARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
298
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4dvARB(t_uint32 index, const double *params)
300
CHECKGL( glProgramEnvParameter4dvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
303
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4fARB (t_uint32 index, float x, float y, float z, float w)
305
CHECKGL( glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
308
void IOpenGLAsmShaderProgram::SetFragmentEnvParameter4fvARB(t_uint32 index, const float *params)
310
CHECKGL( glProgramEnvParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
313
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4dARB(t_uint32 index, double x, double y, double z, double w)
315
CHECKGL( glProgramEnvParameter4dARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
318
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4dvARB(t_uint32 index, const double *params)
320
CHECKGL( glProgramEnvParameter4dvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );
323
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4fARB(t_uint32 index, float x, float y, float z, float w)
325
CHECKGL( glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, index, x, y, z, w) );
328
void IOpenGLAsmShaderProgram::SetFragmentLocalParameter4fvARB(t_uint32 index, const float *params)
330
CHECKGL( glProgramEnvParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, index, params) );