From Per Fahlberg, "added use of the internal format specified in the OpenFlight format attr files."
This commit is contained in:
@@ -85,7 +85,19 @@ class AttrData : public osg::Object
|
||||
DATUM_NAD27 = 4
|
||||
};
|
||||
|
||||
|
||||
enum InternalFormat {
|
||||
INTERNAL_FORMAT_DEFAULT = 0,
|
||||
INTERNAL_FORMAT_TX_I_12A_4 = 1,
|
||||
INTERNAL_FORMAT_TX_IA_8 = 2,
|
||||
INTERNAL_FORMAT_TX_RGB_5 = 3,
|
||||
INTERNAL_FORMAT_TX_RGBA_4 = 4,
|
||||
INTERNAL_FORMAT_TX_IA_12 = 5,
|
||||
INTERNAL_FORMAT_TX_RGBA_8 = 6,
|
||||
INTERNAL_FORMAT_TX_RGBA_12 = 7,
|
||||
INTERNAL_FORMAT_TX_I_16 = 8,
|
||||
INTERNAL_FORMAT_TX_RGB_12 = 9
|
||||
};
|
||||
|
||||
int32 texels_u; // Number of texels in u direction
|
||||
int32 textel_v; // Number of texels in v direction
|
||||
int32 direction_u; // Real world size u direction
|
||||
|
||||
@@ -348,6 +348,42 @@ protected:
|
||||
break;
|
||||
}
|
||||
|
||||
// Internal mode
|
||||
switch(attr->intFormat)
|
||||
{
|
||||
case AttrData::INTERNAL_FORMAT_TX_I_12A_4:
|
||||
texture->setInternalFormat(GL_LUMINANCE12_ALPHA4);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_IA_8:
|
||||
texture->setInternalFormat(GL_LUMINANCE_ALPHA);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_RGB_5:
|
||||
texture->setInternalFormat(GL_RGB5);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_RGBA_4:
|
||||
texture->setInternalFormat(GL_RGBA4);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_IA_12:
|
||||
texture->setInternalFormat(GL_LUMINANCE12_ALPHA12);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_RGBA_8:
|
||||
texture->setInternalFormat(GL_RGBA8);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_RGBA_12:
|
||||
texture->setInternalFormat(GL_RGBA12);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_I_16:
|
||||
texture->setInternalFormat(GL_INTENSITY16);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_TX_RGB_12:
|
||||
texture->setInternalFormat(GL_RGB12);
|
||||
break;
|
||||
case AttrData::INTERNAL_FORMAT_DEFAULT:
|
||||
default:
|
||||
texture->setInternalFormat(GL_RGB);
|
||||
break;
|
||||
}
|
||||
|
||||
osg::TexEnv* texenv = new osg::TexEnv;
|
||||
switch (attr->texEnvMode)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user