95 lines
1.8 KiB
C++
95 lines
1.8 KiB
C++
#include "../glNV.h"
|
|
|
|
#include "rc1.0_combiners.h"
|
|
#include "nvparse_errors.h"
|
|
#include "nvparse_externs.h"
|
|
|
|
#ifndef _WIN32
|
|
#include <string.h>
|
|
#endif
|
|
|
|
void CombinersStruct::Validate()
|
|
{
|
|
if (2 == numConsts &&
|
|
cc[0].reg.bits.name == cc[1].reg.bits.name)
|
|
errors.set("global constant set twice");
|
|
|
|
generals.Validate(numConsts, &cc[0]);
|
|
|
|
final.Validate();
|
|
}
|
|
|
|
void CombinersStruct::Invoke()
|
|
{
|
|
for (int i = 0; i < numConsts; i++)
|
|
qglCombinerParameterfvNV(cc[i].reg.bits.name, &(cc[i].v[0]));
|
|
|
|
generals.Invoke();
|
|
|
|
final.Invoke();
|
|
}
|
|
|
|
bool is_rc10(const char * s)
|
|
{
|
|
return ! strncmp(s, "!!RC1.0", 7);
|
|
}
|
|
|
|
|
|
bool rc10_init_more()
|
|
{
|
|
bool rcinit = false;
|
|
if(rcinit == false)
|
|
{
|
|
//FIXME; check extension availabe
|
|
rcinit = true;
|
|
/*
|
|
if(! glh_init_extensions("GL_NV_register_combiners"))
|
|
{
|
|
errors.set("unable to initialize GL_NV_register_combiners\n");
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
rcinit = true;
|
|
}
|
|
*/
|
|
}
|
|
|
|
bool rc2init = false;
|
|
if(rc2init == false)
|
|
{
|
|
//glh_init_extensions("GL_NV_register_combiners2");
|
|
// Don't fail if this doesn't initialize.
|
|
// We will run even if it doesn't exist.
|
|
rc2init = true;
|
|
}
|
|
|
|
errors.reset();
|
|
line_number = 1;
|
|
|
|
return true;
|
|
}
|
|
/*
|
|
else if(!strncmp(instring, "!!RC1.0", 7))
|
|
{
|
|
if(glCombinerParameterfvNV == 0)
|
|
{
|
|
if(! glh_init_extensions("GL_NV_register_combiners"))
|
|
{
|
|
errors.set("unable to initialize GL_NV_register_combiners\n");
|
|
free(instring);
|
|
return;
|
|
}
|
|
}
|
|
if(glCombinerStageParameterfvNV == 0)
|
|
{
|
|
glh_init_extensions("GL_NV_register_combiners2");
|
|
// Don't fail if this doesn't initialize.
|
|
// We will run even if it doesn't exist.
|
|
}
|
|
errors.reset();
|
|
line_number = 1;
|
|
rc10_init(instring+7);
|
|
rc10_parse();
|
|
}
|
|
*/
|