diff --git a/Metrowerks/OpenSceneGraph.mcp b/Metrowerks/OpenSceneGraph.mcp index 015100bf4..e61bbd1f5 100644 Binary files a/Metrowerks/OpenSceneGraph.mcp and b/Metrowerks/OpenSceneGraph.mcp differ diff --git a/src/osg/LightModel.cpp b/src/osg/LightModel.cpp index 2085be779..acac51896 100644 --- a/src/osg/LightModel.cpp +++ b/src/osg/LightModel.cpp @@ -18,10 +18,33 @@ LightModel::~LightModel() { } +// need to define if gl.h version < 1.2. +#ifndef GL_LIGHT_MODEL_COLOR_CONTROL +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#endif + +#ifndef GL_SINGLE_COLOR +#define GL_SINGLE_COLOR 0x81F9 +#endif + +#ifndef GL_SEPERATE_SPECULAR_COLOR +#define GL_SEPERATE_SPECULAR_COLOR 0x81FA +#endif + + void LightModel::apply(State&) const { glLightModelfv(GL_LIGHT_MODEL_AMBIENT,_ambient.ptr()); - glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL,_colorControl); + + if (_colorControl==SEPERATE_SPECULAR_COLOR) + { + glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPERATE_SPECULAR_COLOR); + } + else + { + glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SINGLE_COLOR); + } + glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,_localViewer); glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,_twoSided); }