Initial revision

This commit is contained in:
Don BURNS
2001-01-10 16:32:10 +00:00
parent 7c12eb9361
commit 70208ebc06
461 changed files with 70936 additions and 0 deletions

78
src/osg/TexEnv.cpp Normal file
View File

@@ -0,0 +1,78 @@
#include "osg/TexEnv"
#include "osg/Input"
#include "osg/Output"
using namespace osg;
TexEnv::TexEnv( void )
{
_mode = MODULATE;
}
TexEnv::~TexEnv( void )
{
}
TexEnv* TexEnv::instance()
{
static ref_ptr<TexEnv> s_TexEnv(new TexEnv);
return s_TexEnv.get();
}
void TexEnv::setMode( TexEnvMode mode )
{
_mode = (mode == DECAL ||
mode == MODULATE ||
mode == BLEND ) ?
mode : MODULATE;
}
void TexEnv::apply( void )
{
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, _mode);
}
bool TexEnv::readLocalData(Input& fr)
{
bool iteratorAdvanced = false;
TexEnvMode mode;
if (fr[0].matchWord("mode") && matchModeStr(fr[1].getStr(),mode))
{
_mode = mode;
fr+=2;
iteratorAdvanced = true;
}
return iteratorAdvanced;
}
bool TexEnv::matchModeStr(const char* str,TexEnvMode& mode)
{
if (strcmp(str,"DECAL")==0) mode = DECAL;
else if (strcmp(str,"MODULATE")==0) mode = MODULATE;
else if (strcmp(str,"BLEND")==0) mode = BLEND;
else return false;
return true;
}
const char* TexEnv::getModeStr(TexEnvMode mode)
{
switch(mode)
{
case(DECAL): return "DECAL";
case(MODULATE): return "MODULATE";
case(BLEND): return "BLEND";
}
return "";
}
bool TexEnv::writeLocalData(Output& fw)
{
fw.indent() << "mode " << getModeStr(_mode) << endl;
return true;
}