Norman's most recent 3d clouds code tweaks.
This commit is contained in:
@@ -167,6 +167,8 @@ fi
|
|||||||
|
|
||||||
dnl check for OpenGL related libraries
|
dnl check for OpenGL related libraries
|
||||||
|
|
||||||
|
AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
|
||||||
|
|
||||||
if test "x$HOSTTYPE" = "xmacintosh" ; then
|
if test "x$HOSTTYPE" = "xmacintosh" ; then
|
||||||
dnl Macintosh OSX
|
dnl Macintosh OSX
|
||||||
LIBS="$LIBS -framework OpenGL -framework GLUT"
|
LIBS="$LIBS -framework OpenGL -framework GLUT"
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
includedir = @includedir@/sky/clouds3d
|
includedir = @includedir@/sky/clouds3d
|
||||||
|
|
||||||
|
EXTRA_DIST = extlg.c
|
||||||
|
if EXTGL_NEEDED
|
||||||
|
EXTGL_SOURCE = extgl.c
|
||||||
|
else
|
||||||
|
EXTGL_SOURCE =
|
||||||
|
endif
|
||||||
|
|
||||||
lib_LIBRARIES = libsgclouds3d.a
|
lib_LIBRARIES = libsgclouds3d.a
|
||||||
|
|
||||||
include_HEADERS = \
|
include_HEADERS = \
|
||||||
@@ -7,6 +14,7 @@ include_HEADERS = \
|
|||||||
SkyUtil.hpp
|
SkyUtil.hpp
|
||||||
|
|
||||||
libsgclouds3d_a_SOURCES = \
|
libsgclouds3d_a_SOURCES = \
|
||||||
|
$(EXTRA_SOURCE) \
|
||||||
vec3fv.cpp \
|
vec3fv.cpp \
|
||||||
mat16fv.cpp \
|
mat16fv.cpp \
|
||||||
tri.cpp \
|
tri.cpp \
|
||||||
|
|||||||
@@ -963,6 +963,10 @@ SKYRESULT SkyArchive::Load(const char* pFileName)
|
|||||||
FAIL_RETURN_MSG(SKYRESULT_FAIL, "Error: SkyArchive::Load(): file name is NULL.");
|
FAIL_RETURN_MSG(SKYRESULT_FAIL, "Error: SkyArchive::Load(): file name is NULL.");
|
||||||
}
|
}
|
||||||
FILE* pSrcFile = NULL;
|
FILE* pSrcFile = NULL;
|
||||||
|
|
||||||
|
char buf[512];
|
||||||
|
sprintf(buf,"SkyArchive::Load(%s)",pFileName);
|
||||||
|
SkyTrace(buf);
|
||||||
if (NULL == (pSrcFile = fopen(pFileName, "rb"))) // file opened successfully
|
if (NULL == (pSrcFile = fopen(pFileName, "rb"))) // file opened successfully
|
||||||
{
|
{
|
||||||
SkyTrace("Error: SkyArchive::Load(): failed to open file for reading.");
|
SkyTrace("Error: SkyArchive::Load(): failed to open file for reading.");
|
||||||
|
|||||||
@@ -629,6 +629,78 @@ SkyMinMaxBox* SkyCloud::CopyBoundingVolume() const
|
|||||||
*
|
*
|
||||||
* If @a rScale does not equal 1.0, then the cloud is scaled by an amount rScale.
|
* If @a rScale does not equal 1.0, then the cloud is scaled by an amount rScale.
|
||||||
*/
|
*/
|
||||||
|
SKYRESULT SkyCloud::Load(const SkyArchive &archive,
|
||||||
|
const sgVec4 *mat,
|
||||||
|
float rScale /* = 1.0f */,
|
||||||
|
bool bLocal /* = false */)
|
||||||
|
{
|
||||||
|
unsigned int iNumParticles;
|
||||||
|
Vec3f vecCenter = Vec3f::ZERO;
|
||||||
|
//Vec3f vecCenter;
|
||||||
|
//float rRadius;
|
||||||
|
//archive.FindVec3f("CldCenter", &vecCenter);
|
||||||
|
//archive.FindFloat32("CldRadius", &rRadius);
|
||||||
|
|
||||||
|
//_boundingBox.SetMin(vecCenter - Vec3f(rRadius, rRadius, rRadius));
|
||||||
|
//_boundingBox.SetMax(vecCenter + Vec3f(rRadius, rRadius, rRadius));
|
||||||
|
|
||||||
|
archive.FindUInt32("CldNumParticles", &iNumParticles);
|
||||||
|
if (!bLocal)
|
||||||
|
archive.FindVec3f("CldCenter", &vecCenter);
|
||||||
|
|
||||||
|
Vec3f *pParticlePositions = new Vec3f[iNumParticles];
|
||||||
|
float *pParticleRadii = new float[iNumParticles];
|
||||||
|
Vec4f *pParticleColors = new Vec4f[iNumParticles];
|
||||||
|
|
||||||
|
unsigned int iNumBytes;
|
||||||
|
archive.FindData("CldParticlePositions", ANY_TYPE, (void**const)&pParticlePositions, &iNumBytes);
|
||||||
|
archive.FindData("CldParticleRadii", ANY_TYPE, (void**const)&pParticleRadii, &iNumBytes);
|
||||||
|
archive.FindData("CldParticleColors", ANY_TYPE, (void**const)&pParticleColors, &iNumBytes);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < iNumParticles; ++i)
|
||||||
|
{
|
||||||
|
SkyCloudParticle *pParticle = new SkyCloudParticle((pParticlePositions[i] + vecCenter) * rScale,
|
||||||
|
pParticleRadii[i] * rScale,
|
||||||
|
pParticleColors[i]);
|
||||||
|
_boundingBox.AddPoint(pParticle->GetPosition());
|
||||||
|
|
||||||
|
_particles.push_back(pParticle);
|
||||||
|
}
|
||||||
|
// this is just a bad hack to align cloud field from skyworks with local horizon at KSFO
|
||||||
|
// this "almost" works not quite the right solution okay to get some up and running
|
||||||
|
// we need to develop our own scheme for loading and positioning clouds
|
||||||
|
Mat33f rot_mat;
|
||||||
|
Vec3f moveit;
|
||||||
|
|
||||||
|
rot_mat.Set( 1, 0, 0,
|
||||||
|
0, 0, -1,
|
||||||
|
0, 1, 0);
|
||||||
|
// flip the y and z axis, clouds now sit in the x-y plane
|
||||||
|
Rotate( rot_mat );
|
||||||
|
// rot_mat.Set(mat[0][0], mat[0][1],mat[0][2],
|
||||||
|
// mat[1][0], mat[1][1],mat[1][2],
|
||||||
|
// mat[2][0], mat[2][1],mat[2][2] );
|
||||||
|
// adjust for lon af KSFO plus -122.357
|
||||||
|
// rot_mat.Set( -0.84473f, 0.53519f, 0.0f,
|
||||||
|
// -0.53519f, -0.84473f, 0.0f,
|
||||||
|
// 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
//Rotate( rot_mat );
|
||||||
|
|
||||||
|
// and about x for latitude 37.6135
|
||||||
|
// rot_mat.Set( 1.0f, 0.0, 0.0f,
|
||||||
|
// 0.0f, 0.7921f, -0.6103f,
|
||||||
|
// 0.0f, 0.6103f, 0.7921f);
|
||||||
|
|
||||||
|
// Rotate( rot_mat );
|
||||||
|
|
||||||
|
moveit.Set( 1000.0, 0.0, 4050.0 );
|
||||||
|
|
||||||
|
Translate( moveit );
|
||||||
|
|
||||||
|
return SKYRESULT_OK;
|
||||||
|
}
|
||||||
|
|
||||||
SKYRESULT SkyCloud::Load(const SkyArchive &archive,
|
SKYRESULT SkyCloud::Load(const SkyArchive &archive,
|
||||||
float rScale /* = 1.0f */,
|
float rScale /* = 1.0f */,
|
||||||
bool bLocal /* = false */)
|
bool bLocal /* = false */)
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
#include "SkyArchive.hpp"
|
#include "SkyArchive.hpp"
|
||||||
#include "mat33.hpp"
|
#include "mat33.hpp"
|
||||||
|
|
||||||
|
#include <plib/sg.h>
|
||||||
|
|
||||||
class SkyMaterial;
|
class SkyMaterial;
|
||||||
class SkyLight;
|
class SkyLight;
|
||||||
class SkyRenderableInstance;
|
class SkyRenderableInstance;
|
||||||
@@ -97,6 +99,8 @@ public:
|
|||||||
|
|
||||||
SKYRESULT Save(SkyArchive &archive) const;
|
SKYRESULT Save(SkyArchive &archive) const;
|
||||||
SKYRESULT Load(const SkyArchive &archive, float rScale = 1.0f, bool bLocal = false);
|
SKYRESULT Load(const SkyArchive &archive, float rScale = 1.0f, bool bLocal = false);
|
||||||
|
SKYRESULT Load(const SkyArchive &archive, const sgVec4 *mat,
|
||||||
|
float rScale = 1.0f, bool bLocal = false);
|
||||||
|
|
||||||
void Rotate(const Mat33f& rot);
|
void Rotate(const Mat33f& rot);
|
||||||
void Translate(const Vec3f& trans);
|
void Translate(const Vec3f& trans);
|
||||||
|
|||||||
@@ -19,8 +19,15 @@
|
|||||||
*
|
*
|
||||||
* Graphics Context Interface. Initializes GL extensions, etc.
|
* Graphics Context Interface. Initializes GL extensions, etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <simgear_config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
#ifndef WIN32
|
||||||
#include <GL/glx.h>
|
#include <GL/glx.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
//#include "extgl.h"
|
//#include "extgl.h"
|
||||||
|
|
||||||
@@ -46,7 +53,7 @@ SkyContext::SkyContext()
|
|||||||
// materials and structure classes
|
// materials and structure classes
|
||||||
AddCurrentGLContext();
|
AddCurrentGLContext();
|
||||||
// Initialize all the extensions and load the functions - JW (file is extgl.c)
|
// Initialize all the extensions and load the functions - JW (file is extgl.c)
|
||||||
#ifdef _WIN32
|
#ifdef WIN32
|
||||||
glInitialize();
|
glInitialize();
|
||||||
InitializeExtension("GL_ARB_multitexture");
|
InitializeExtension("GL_ARB_multitexture");
|
||||||
#endif
|
#endif
|
||||||
@@ -122,7 +129,11 @@ SKYRESULT SkyContext::InitializeExtension(const char *pExtensionName)
|
|||||||
*/
|
*/
|
||||||
SkyMaterial* SkyContext::GetCurrentMaterial()
|
SkyMaterial* SkyContext::GetCurrentMaterial()
|
||||||
{
|
{
|
||||||
ContextMaterialIterator cmi = _currentMaterials.find(glXGetCurrentContext());
|
#ifdef WIN32
|
||||||
|
ContextMaterialIterator cmi = _currentMaterials.find(wglGetCurrentContext());
|
||||||
|
#else
|
||||||
|
ContextMaterialIterator cmi = _currentMaterials.find(glXGetCurrentContext());
|
||||||
|
#endif
|
||||||
if (_currentMaterials.end() != cmi)
|
if (_currentMaterials.end() != cmi)
|
||||||
return cmi->second;
|
return cmi->second;
|
||||||
else
|
else
|
||||||
@@ -146,7 +157,11 @@ SkyMaterial* SkyContext::GetCurrentMaterial()
|
|||||||
*/
|
*/
|
||||||
SkyTextureState* SkyContext::GetCurrentTextureState()
|
SkyTextureState* SkyContext::GetCurrentTextureState()
|
||||||
{
|
{
|
||||||
ContextTextureStateIterator ctsi = _currentTextureState.find(glXGetCurrentContext());
|
#ifdef WIN32
|
||||||
|
ContextTextureStateIterator ctsi = _currentTextureState.find(wglGetCurrentContext());
|
||||||
|
#else
|
||||||
|
ContextTextureStateIterator ctsi = _currentTextureState.find(glXGetCurrentContext());
|
||||||
|
#endif
|
||||||
if (_currentTextureState.end() != ctsi)
|
if (_currentTextureState.end() != ctsi)
|
||||||
return ctsi->second;
|
return ctsi->second;
|
||||||
else
|
else
|
||||||
@@ -169,15 +184,22 @@ SkyTextureState* SkyContext::GetCurrentTextureState()
|
|||||||
*/
|
*/
|
||||||
SKYRESULT SkyContext::AddCurrentGLContext()
|
SKYRESULT SkyContext::AddCurrentGLContext()
|
||||||
{
|
{
|
||||||
SkyMaterial *pCurrentMaterial = new SkyMaterial;
|
SkyMaterial *pCurrentMaterial = new SkyMaterial;
|
||||||
_currentMaterials.insert(std::make_pair(glXGetCurrentContext(), pCurrentMaterial));
|
#ifdef WIN32
|
||||||
|
_currentMaterials.insert(std::make_pair(wglGetCurrentContext(), pCurrentMaterial));
|
||||||
|
#else
|
||||||
|
_currentMaterials.insert(std::make_pair(glXGetCurrentContext(), pCurrentMaterial));
|
||||||
|
#endif
|
||||||
|
|
||||||
SkyTextureState *pCurrentTS = new SkyTextureState;
|
SkyTextureState *pCurrentTS = new SkyTextureState;
|
||||||
_currentTextureState.insert(std::make_pair(glXGetCurrentContext() , pCurrentTS));
|
#ifdef WIN32
|
||||||
return SKYRESULT_OK;
|
_currentTextureState.insert(std::make_pair(wglGetCurrentContext() , pCurrentTS));
|
||||||
|
#else
|
||||||
|
_currentTextureState.insert(std::make_pair(glXGetCurrentContext() , pCurrentTS));
|
||||||
|
#endif
|
||||||
|
return SKYRESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Function : SkyContext::Register
|
// Function : SkyContext::Register
|
||||||
// Description :
|
// Description :
|
||||||
|
|||||||
@@ -22,27 +22,28 @@
|
|||||||
#ifndef __SKYCONTEXT_HPP__
|
#ifndef __SKYCONTEXT_HPP__
|
||||||
#define __SKYCONTEXT_HPP__
|
#define __SKYCONTEXT_HPP__
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <simgear_config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
// warning for truncation of template name for browse info
|
// warning for truncation of template name for browse info
|
||||||
#pragma warning( disable : 4786)
|
// #pragma warning( disable : 4786)
|
||||||
|
|
||||||
#include "SkySingleton.hpp"
|
#include "SkySingleton.hpp"
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include "extgl.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
// ifdef to replace windows stuff for handles-JW
|
#ifdef WIN32
|
||||||
|
# include "extgl.h"
|
||||||
|
#else
|
||||||
typedef void *HANDLE;
|
typedef void *HANDLE;
|
||||||
typedef HANDLE *PHANDLE;
|
typedef HANDLE *PHANDLE;
|
||||||
#define DECLARE_HANDLE(n) typedef HANDLE n
|
#define DECLARE_HANDLE(n) typedef HANDLE n
|
||||||
|
|
||||||
DECLARE_HANDLE(HGLRC);
|
DECLARE_HANDLE(HGLRC);
|
||||||
// end of ifdef
|
#endif
|
||||||
|
|
||||||
class SkyContext;
|
class SkyContext;
|
||||||
class SkyMaterial;
|
class SkyMaterial;
|
||||||
|
|||||||
@@ -19,7 +19,17 @@
|
|||||||
*
|
*
|
||||||
* Implementation of a class that maintains the state and operation of a light.
|
* Implementation of a class that maintains the state and operation of a light.
|
||||||
*/
|
*/
|
||||||
// #pragma warning( disable : 4786)
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <simgear_config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
# ifdef _MSC_VER
|
||||||
|
# pragma warning( disable : 4786)
|
||||||
|
# endif
|
||||||
|
# include "extgl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "SkyLight.hpp"
|
#include "SkyLight.hpp"
|
||||||
#include "SkyMaterial.hpp"
|
#include "SkyMaterial.hpp"
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ SKYRESULT SkyRenderableInstanceCloud::Display(bool bDisplayFrontOfSplit /* = fal
|
|||||||
FAIL_RETURN(DisplayWithoutImpostor(Camera::Camera()));
|
FAIL_RETURN(DisplayWithoutImpostor(Camera::Camera()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{␍//cout << "Using impostor image\n";
|
{//cout << "Using impostor image\n";
|
||||||
if (!_pBackTexture || (bDisplayFrontOfSplit && !_pFrontTexture))
|
if (!_pBackTexture || (bDisplayFrontOfSplit && !_pFrontTexture))
|
||||||
FAIL_RETURN_MSG(SKYRESULT_FAIL, "SkyRenderableInstanceCloud::Display(): missing texture!");
|
FAIL_RETURN_MSG(SKYRESULT_FAIL, "SkyRenderableInstanceCloud::Display(): missing texture!");
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ SKYRESULT SkyRenderableInstanceCloud::Display(bool bDisplayFrontOfSplit /* = fal
|
|||||||
Vec3f x, y, z;
|
Vec3f x, y, z;
|
||||||
|
|
||||||
if (!_bScreenImpostor)
|
if (!_bScreenImpostor)
|
||||||
{␍//cout << "Outside the cloud\n";
|
{//cout << "Outside the cloud\n";
|
||||||
z = _vecPosition;
|
z = _vecPosition;
|
||||||
z -= _impostorCam.Orig;
|
z -= _impostorCam.Orig;
|
||||||
z.Normalize();
|
z.Normalize();
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ SKYRESULT SkyRenderableInstanceGroup::Display()
|
|||||||
{
|
{
|
||||||
FAIL_RETURN((*ii)->Display());
|
FAIL_RETURN((*ii)->Display());
|
||||||
}
|
}
|
||||||
␍***/
|
***/
|
||||||
_pObjectSpaceBV->Display();
|
_pObjectSpaceBV->Display();
|
||||||
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
|||||||
@@ -102,15 +102,21 @@ SkySceneLoader::~SkySceneLoader()
|
|||||||
bool SkySceneLoader::Load(std::string filename)
|
bool SkySceneLoader::Load(std::string filename)
|
||||||
{
|
{
|
||||||
SkyArchive archive;
|
SkyArchive archive;
|
||||||
|
cout << "SkySceneLoader::Load( " << filename << " )" << endl;
|
||||||
if (SKYFAILED(archive.Load(filename.c_str()))) {
|
if (SKYFAILED(archive.Load(filename.c_str()))) {
|
||||||
cout << "Archive file not found\n";
|
cout << "Archive file not found\n";
|
||||||
return false; }
|
return false;
|
||||||
|
}
|
||||||
char *pFilename;
|
char *pFilename;
|
||||||
|
|
||||||
// Need to create the managers
|
// Need to create the managers
|
||||||
|
cout << "GraphicsContext::Instantiate();" << endl;
|
||||||
GraphicsContext::Instantiate();
|
GraphicsContext::Instantiate();
|
||||||
|
cout << " TextureManager::Instantiate();" << endl;
|
||||||
TextureManager::Instantiate();
|
TextureManager::Instantiate();
|
||||||
|
cout << " DynamicTextureManager::Instantiate();" << endl;
|
||||||
DynamicTextureManager::Instantiate();
|
DynamicTextureManager::Instantiate();
|
||||||
|
cout << " SceneManager::Instantiate();" << endl;
|
||||||
SceneManager::Instantiate();
|
SceneManager::Instantiate();
|
||||||
|
|
||||||
unsigned int iNumFiles;
|
unsigned int iNumFiles;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
*/
|
*/
|
||||||
SkySceneManager::SkySceneManager()
|
SkySceneManager::SkySceneManager()
|
||||||
: /*_pSkyBox(NULL),
|
: /*_pSkyBox(NULL),
|
||||||
_pTerrain(NULL),␍*/
|
_pTerrain(NULL),*/
|
||||||
_bDrawLights(false),
|
_bDrawLights(false),
|
||||||
_bDrawTree(false),
|
_bDrawTree(false),
|
||||||
_bReshadeClouds(true)
|
_bReshadeClouds(true)
|
||||||
@@ -408,7 +408,7 @@ SKYRESULT SkySceneManager::Display( const Camera &cam )
|
|||||||
//li->second->Display();
|
//li->second->Display();
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (_bDrawTree)␍// force the issue and draw
|
//if (_bDrawTree)// force the issue and draw
|
||||||
//_VisualizeCloudBVTree(cam, _cloudBVTree.GetRoot());
|
//_VisualizeCloudBVTree(cam, _cloudBVTree.GetRoot());
|
||||||
|
|
||||||
glLineWidth(2.0);
|
glLineWidth(2.0);
|
||||||
@@ -516,7 +516,7 @@ SKYRESULT SkySceneManager::LoadClouds(SkyArchive& cloudArchive, float rScale /*
|
|||||||
SkyArchive subArchive;
|
SkyArchive subArchive;
|
||||||
//iNumClouds = 5; //set this value to reduce cloud field for debugging
|
//iNumClouds = 5; //set this value to reduce cloud field for debugging
|
||||||
for (int i = 0; i < iNumClouds; ++i)
|
for (int i = 0; i < iNumClouds; ++i)
|
||||||
{␍printf("Loading # %d of %d clouds\n", i+1, iNumClouds);
|
{printf("Loading # %d of %d clouds\n", i+1, iNumClouds);
|
||||||
cloudArchive.FindArchive("Cloud", &subArchive, i);
|
cloudArchive.FindArchive("Cloud", &subArchive, i);
|
||||||
SkyCloud *pCloud = new SkyCloud();
|
SkyCloud *pCloud = new SkyCloud();
|
||||||
pCloud->Load(subArchive, rScale);
|
pCloud->Load(subArchive, rScale);
|
||||||
@@ -596,7 +596,7 @@ void SkySceneManager::_ViewFrustumCullClouds(const Camera& cam, const CloudBVTre
|
|||||||
int i;
|
int i;
|
||||||
int iResult = CamMinMaxBoxOverlap(&cam, pNode->GetNodeBV().GetMin(), pNode->GetNodeBV().GetMax());
|
int iResult = CamMinMaxBoxOverlap(&cam, pNode->GetNodeBV().GetMin(), pNode->GetNodeBV().GetMax());
|
||||||
|
|
||||||
␍ //iResult = COMPLETEIN; // just a hack to force the issue
|
//iResult = COMPLETEIN; // just a hack to force the issue
|
||||||
if (COMPLETEIN == iResult)
|
if (COMPLETEIN == iResult)
|
||||||
{
|
{
|
||||||
// trivially add all instances
|
// trivially add all instances
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ SKYRESULT SkyTextureManager::Clone2DTexture(const string &filename,
|
|||||||
IMAGE_TGA
|
IMAGE_TGA
|
||||||
};
|
};
|
||||||
ImageType eType;
|
ImageType eType;
|
||||||
␍/****
|
/****
|
||||||
// first get the image type from its extension.
|
// first get the image type from its extension.
|
||||||
if (filename.find(".tga") != string.npos || filename.find(".TGA") != string.npos)
|
if (filename.find(".tga") != string.npos || filename.find(".TGA") != string.npos)
|
||||||
eType = IMAGE_TGA;
|
eType = IMAGE_TGA;
|
||||||
@@ -222,7 +222,7 @@ SKYRESULT SkyTextureManager::Clone2DTexture(const string &filename,
|
|||||||
eType = IMAGE_PPM;
|
eType = IMAGE_PPM;
|
||||||
else
|
else
|
||||||
FAIL_RETURN_MSG(SKYRESULT_FAIL, "SkyTextureManager error: invalid image format");
|
FAIL_RETURN_MSG(SKYRESULT_FAIL, "SkyTextureManager error: invalid image format");
|
||||||
␍****/
|
****/
|
||||||
// first try the filename sent in in case it includes a path.
|
// first try the filename sent in in case it includes a path.
|
||||||
//if (FileUtils::FileExists(filename.c_str()))
|
//if (FileUtils::FileExists(filename.c_str()))
|
||||||
//{
|
//{
|
||||||
@@ -239,7 +239,7 @@ SKYRESULT SkyTextureManager::Clone2DTexture(const string &filename,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}␍*/
|
}*/
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
@@ -274,7 +274,7 @@ SKYRESULT SkyTextureManager::Clone2DTexture(const string &filename,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}␍*/
|
}*/
|
||||||
|
|
||||||
//if (pImageData)
|
//if (pImageData)
|
||||||
//break;
|
//break;
|
||||||
|
|||||||
Reference in New Issue
Block a user