Merge with default
This commit is contained in:
commit
996dd9aa16
7 changed files with 107 additions and 56 deletions
|
@ -178,6 +178,9 @@ private:
|
||||||
|
|
||||||
// Error message
|
// Error message
|
||||||
std::string _ErrorString;
|
std::string _ErrorString;
|
||||||
|
|
||||||
|
// System dependant structure for locale
|
||||||
|
void* _Locale;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2795,11 +2795,15 @@ IOcclusionQuery::TOcclusionType COcclusionQueryGL::getOcclusionType()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GLuint result;
|
GLuint result;
|
||||||
|
nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT_AVAILABLE, &result);
|
||||||
|
if (result != GL_FALSE)
|
||||||
|
{
|
||||||
nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT, &result);
|
nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT, &result);
|
||||||
OcclusionType = result != 0 ? NotOccluded : Occluded;
|
OcclusionType = result != 0 ? NotOccluded : Occluded;
|
||||||
VisibleCount = (uint) result;
|
VisibleCount = (uint) result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return OcclusionType;
|
return OcclusionType;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,11 @@
|
||||||
// Include from libxml2
|
// Include from libxml2
|
||||||
#include <libxml/xmlerror.h>
|
#include <libxml/xmlerror.h>
|
||||||
|
|
||||||
|
#if defined(NL_OS_WINDOWS) && defined(NL_COMP_VC_VERSION) && NL_COMP_VC_VERSION >= 80
|
||||||
|
#define USE_LOCALE_SPRINTF
|
||||||
|
#include <locale.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#ifdef DEBUG_NEW
|
#ifdef DEBUG_NEW
|
||||||
|
@ -38,11 +43,22 @@ const char SEPARATOR = ' ';
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
||||||
|
#ifdef USE_LOCALE_SPRINTF
|
||||||
|
|
||||||
|
#define writenumber(src,format,digits) \
|
||||||
|
char number_as_cstring [digits+1]; \
|
||||||
|
_sprintf_l( number_as_cstring, format, (_locale_t)_Locale, src ); \
|
||||||
|
serialSeparatedBufferOut( number_as_cstring );
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#define writenumber(src,format,digits) \
|
#define writenumber(src,format,digits) \
|
||||||
char number_as_cstring [digits+1]; \
|
char number_as_cstring [digits+1]; \
|
||||||
sprintf( number_as_cstring, format, src ); \
|
sprintf( number_as_cstring, format, src ); \
|
||||||
serialSeparatedBufferOut( number_as_cstring );
|
serialSeparatedBufferOut( number_as_cstring );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
// XML callbacks
|
// XML callbacks
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -133,6 +149,13 @@ COXml::COXml () : IStream (false /* Output mode */)
|
||||||
|
|
||||||
// Push begin
|
// Push begin
|
||||||
_PushBegin = false;
|
_PushBegin = false;
|
||||||
|
|
||||||
|
#ifdef USE_LOCALE_SPRINTF
|
||||||
|
// create C numeric locale
|
||||||
|
_Locale = _create_locale(LC_NUMERIC, "C");
|
||||||
|
#else
|
||||||
|
_Locale = NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
@ -192,6 +215,10 @@ COXml::~COXml ()
|
||||||
{
|
{
|
||||||
// Flush document to the internal stream
|
// Flush document to the internal stream
|
||||||
flush ();
|
flush ();
|
||||||
|
|
||||||
|
#ifdef USE_LOCALE_SPRINTF
|
||||||
|
if (_Locale) _free_locale((_locale_t)_Locale);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
|
@ -1,40 +1,42 @@
|
||||||
|
|
||||||
IF(WITH_NEL_TOOLS)
|
IF(WITH_NEL_TOOLS)
|
||||||
|
IF(WITH_3D)
|
||||||
SUBDIRS(
|
SUBDIRS(
|
||||||
|
anim_builder
|
||||||
|
animation_set_builder
|
||||||
|
build_clod_bank
|
||||||
|
build_clodtex
|
||||||
build_coarse_mesh
|
build_coarse_mesh
|
||||||
build_far_bank
|
build_far_bank
|
||||||
|
build_shadow_skin
|
||||||
build_smallbank
|
build_smallbank
|
||||||
ig_lighter
|
cluster_viewer
|
||||||
|
file_info
|
||||||
|
ig_add
|
||||||
ig_elevation
|
ig_elevation
|
||||||
|
ig_info
|
||||||
|
ig_lighter
|
||||||
lightmap_optimizer
|
lightmap_optimizer
|
||||||
zone_dependencies
|
zone_dependencies
|
||||||
zone_ig_lighter
|
zone_ig_lighter
|
||||||
zone_lighter
|
zone_lighter
|
||||||
zone_welder
|
zone_welder
|
||||||
animation_set_builder
|
|
||||||
anim_builder
|
|
||||||
build_clod_bank
|
|
||||||
build_clodtex
|
|
||||||
build_interface
|
|
||||||
build_shadow_skin
|
|
||||||
cluster_viewer
|
|
||||||
file_info
|
|
||||||
get_neighbors
|
|
||||||
ig_add
|
|
||||||
ig_info
|
|
||||||
shapes_exporter
|
shapes_exporter
|
||||||
tga_cut
|
|
||||||
tga_resize
|
|
||||||
shape2obj
|
shape2obj
|
||||||
zone_check_bind
|
zone_check_bind
|
||||||
zone_dump
|
zone_dump
|
||||||
zviewer)
|
zviewer)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
ENDIF(WITH_NEL_TOOLS)
|
SUBDIRS(
|
||||||
|
build_interface
|
||||||
|
get_neighbors
|
||||||
|
tga_cut
|
||||||
|
tga_resize)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
# For tools selection of only max plugins
|
# For tools selection of only max plugins
|
||||||
IF(WIN32)
|
IF(WIN32 AND WITH_3D)
|
||||||
IF(MFC_FOUND)
|
IF(MFC_FOUND)
|
||||||
ADD_SUBDIRECTORY(object_viewer)
|
ADD_SUBDIRECTORY(object_viewer)
|
||||||
IF(WITH_NEL_MAXPLUGIN)
|
IF(WITH_NEL_MAXPLUGIN)
|
||||||
|
@ -44,9 +46,9 @@ IF(WIN32)
|
||||||
ENDIF(MAXSDK_FOUND)
|
ENDIF(MAXSDK_FOUND)
|
||||||
ENDIF(WITH_NEL_MAXPLUGIN)
|
ENDIF(WITH_NEL_MAXPLUGIN)
|
||||||
ENDIF(MFC_FOUND)
|
ENDIF(MFC_FOUND)
|
||||||
ENDIF(WIN32)
|
ENDIF()
|
||||||
|
|
||||||
IF(WITH_NEL_TOOLS)
|
IF(WITH_NEL_TOOLS AND WITH_3D)
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
# ADD_SUBDIRECTORY(lightmap_optimizer)
|
# ADD_SUBDIRECTORY(lightmap_optimizer)
|
||||||
IF(MFC_FOUND)
|
IF(MFC_FOUND)
|
||||||
|
@ -71,5 +73,5 @@ IF(WITH_NEL_TOOLS)
|
||||||
#crash_log_analyser
|
#crash_log_analyser
|
||||||
#shapes_exporter
|
#shapes_exporter
|
||||||
|
|
||||||
ENDIF(WITH_NEL_TOOLS)
|
ENDIF()
|
||||||
|
|
||||||
|
|
|
@ -113,18 +113,17 @@ void putPixel(uint8 *dst, uint8 *src, bool alphaTransfert)
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bool alphaTransfert=true)
|
bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bool alphaTransfert=true)
|
||||||
{
|
{
|
||||||
uint32 a, b;
|
|
||||||
|
|
||||||
uint8 *rSrcPix = &pSrc->getPixels()[0];
|
uint8 *rSrcPix = &pSrc->getPixels()[0];
|
||||||
uint8 *rDstPix = &pDst->getPixels()[0];
|
uint8 *rDstPix = &pDst->getPixels()[0];
|
||||||
|
|
||||||
uint wSrc= pSrc->getWidth();
|
uint wSrc= pSrc->getWidth();
|
||||||
uint hSrc= pSrc->getHeight();
|
uint hSrc= pSrc->getHeight();
|
||||||
for (b = 0; b < hSrc; ++b)
|
for (uint b = 0; b < hSrc; ++b)
|
||||||
for (a = 0; a < wSrc; ++a)
|
for (uint a = 0; a < wSrc; ++a)
|
||||||
{
|
{
|
||||||
if (rDstPix[4*((x+a)+(y+b)*pDst->getWidth())+3] != 0)
|
if (rDstPix[4*((x+a)+(y+b)*pDst->getWidth())+3] != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// write
|
// write
|
||||||
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rSrcPix+ 4*(a+b*pSrc->getWidth()), alphaTransfert);
|
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rSrcPix+ 4*(a+b*pSrc->getWidth()), alphaTransfert);
|
||||||
}
|
}
|
||||||
|
@ -135,9 +134,9 @@ bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bo
|
||||||
// expand on W
|
// expand on W
|
||||||
if(wSrc<wSrc4)
|
if(wSrc<wSrc4)
|
||||||
{
|
{
|
||||||
for(a=wSrc;a<wSrc4;a++)
|
for(uint a=wSrc;a<wSrc4;a++)
|
||||||
{
|
{
|
||||||
for(b=0;b<hSrc4;b++)
|
for(uint b=0;b<hSrc4;b++)
|
||||||
{
|
{
|
||||||
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rDstPix + 4*((x+wSrc-1)+(y+b)*pDst->getWidth()), alphaTransfert);
|
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rDstPix + 4*((x+wSrc-1)+(y+b)*pDst->getWidth()), alphaTransfert);
|
||||||
}
|
}
|
||||||
|
@ -146,9 +145,9 @@ bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bo
|
||||||
// expand on H
|
// expand on H
|
||||||
if(hSrc<hSrc4)
|
if(hSrc<hSrc4)
|
||||||
{
|
{
|
||||||
for(b=hSrc;b<hSrc4;b++)
|
for(uint b=hSrc;b<hSrc4;b++)
|
||||||
{
|
{
|
||||||
for(a=0;a<wSrc4;a++)
|
for(uint a=0;a<wSrc4;a++)
|
||||||
{
|
{
|
||||||
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rDstPix + 4*((x+a)+(y+hSrc-1)*pDst->getWidth()), alphaTransfert);
|
putPixel(rDstPix + 4*((x+a)+(y+b)*pDst->getWidth()), rDstPix + 4*((x+a)+(y+hSrc-1)*pDst->getWidth()), alphaTransfert);
|
||||||
}
|
}
|
||||||
|
@ -252,30 +251,38 @@ int main(int nNbArg, char **ppArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<NLMISC::CBitmap*> AllMaps;
|
vector<NLMISC::CBitmap*> AllMaps;
|
||||||
sint32 i, j;
|
sint32 j;
|
||||||
|
|
||||||
// Load all maps
|
// Load all maps
|
||||||
sint32 mapSize = (sint32)AllMapNames.size();
|
sint32 mapSize = (sint32)AllMapNames.size();
|
||||||
AllMaps.resize( mapSize );
|
AllMaps.resize( mapSize );
|
||||||
for( i = 0; i < mapSize; ++i )
|
for(sint i = 0; i < mapSize; ++i )
|
||||||
{
|
{
|
||||||
|
NLMISC::CBitmap *pBtmp = NULL;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NLMISC::CBitmap *pBtmp = new NLMISC::CBitmap;
|
pBtmp = new NLMISC::CBitmap;
|
||||||
NLMISC::CIFile inFile;
|
NLMISC::CIFile inFile;
|
||||||
inFile.open( AllMapNames[i] );
|
if (!inFile.open( AllMapNames[i] )) throw NLMISC::Exception("Unable to open " + AllMapNames[i]);
|
||||||
pBtmp->load(inFile);
|
|
||||||
|
uint8 colors = pBtmp->load(inFile);
|
||||||
|
|
||||||
|
if (colors != 32) throw NLMISC::Exception(AllMapNames[i] + " is using " + toString(colors) + " bits colors, only 32 bit supported!");
|
||||||
|
|
||||||
AllMaps[i] = pBtmp;
|
AllMaps[i] = pBtmp;
|
||||||
}
|
}
|
||||||
catch (const NLMISC::Exception &e)
|
catch (const NLMISC::Exception &e)
|
||||||
{
|
{
|
||||||
|
if (pBtmp) delete pBtmp;
|
||||||
|
|
||||||
outString (string("ERROR :") + e.what());
|
outString (string("ERROR :") + e.what());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort all maps by decreasing size
|
// Sort all maps by decreasing size
|
||||||
for (i = 0; i < mapSize-1; ++i)
|
for (sint i = 0; i < mapSize-1; ++i)
|
||||||
for (j = i+1; j < mapSize; ++j)
|
for (j = i+1; j < mapSize; ++j)
|
||||||
{
|
{
|
||||||
NLMISC::CBitmap *pBI = AllMaps[i];
|
NLMISC::CBitmap *pBI = AllMaps[i];
|
||||||
|
@ -303,7 +310,7 @@ int main(int nNbArg, char **ppArgs)
|
||||||
vector<NLMISC::CUV> UVMin, UVMax;
|
vector<NLMISC::CUV> UVMin, UVMax;
|
||||||
UVMin.resize (mapSize, NLMISC::CUV(0.0f, 0.0f));
|
UVMin.resize (mapSize, NLMISC::CUV(0.0f, 0.0f));
|
||||||
UVMax.resize (mapSize, NLMISC::CUV(0.0f, 0.0f));
|
UVMax.resize (mapSize, NLMISC::CUV(0.0f, 0.0f));
|
||||||
for (i = 0; i < mapSize; ++i)
|
for (sint i = 0; i < mapSize; ++i)
|
||||||
{
|
{
|
||||||
sint32 x, y;
|
sint32 x, y;
|
||||||
while (!tryAllPos(AllMaps[i], &GlobalMask, x, y))
|
while (!tryAllPos(AllMaps[i], &GlobalMask, x, y))
|
||||||
|
@ -349,7 +356,7 @@ int main(int nNbArg, char **ppArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert UV from pixel to ratio
|
// Convert UV from pixel to ratio
|
||||||
for (i = 0; i < mapSize; ++i)
|
for (sint i = 0; i < mapSize; ++i)
|
||||||
{
|
{
|
||||||
UVMin[i].U = UVMin[i].U / (float)GlobalTexture.getWidth();
|
UVMin[i].U = UVMin[i].U / (float)GlobalTexture.getWidth();
|
||||||
UVMin[i].V = UVMin[i].V / (float)GlobalTexture.getHeight();
|
UVMin[i].V = UVMin[i].V / (float)GlobalTexture.getHeight();
|
||||||
|
@ -394,7 +401,7 @@ int main(int nNbArg, char **ppArgs)
|
||||||
FILE *f = fopen (fmtName.c_str(), "wt");
|
FILE *f = fopen (fmtName.c_str(), "wt");
|
||||||
if (f != NULL)
|
if (f != NULL)
|
||||||
{
|
{
|
||||||
for (i = 0; i < mapSize; ++i)
|
for (sint i = 0; i < mapSize; ++i)
|
||||||
{
|
{
|
||||||
// get the string whitout path
|
// get the string whitout path
|
||||||
string fileName= CFile::getFilename(AllMapNames[i]);
|
string fileName= CFile::getFilename(AllMapNames[i]);
|
||||||
|
@ -443,6 +450,8 @@ int main(int nNbArg, char **ppArgs)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sint i;
|
||||||
|
|
||||||
sTGAname = toLower(string(tgaName));
|
sTGAname = toLower(string(tgaName));
|
||||||
string findTGAName;
|
string findTGAName;
|
||||||
for (i = 0; i < mapSize; ++i)
|
for (i = 0; i < mapSize; ++i)
|
||||||
|
|
|
@ -6,9 +6,7 @@ IF(WITH_NEL_TOOLS)
|
||||||
ENDIF(WITH_NEL_TOOLS)
|
ENDIF(WITH_NEL_TOOLS)
|
||||||
|
|
||||||
# Max plugins are under the 3d directory as well.
|
# Max plugins are under the 3d directory as well.
|
||||||
IF(WITH_3D)
|
ADD_SUBDIRECTORY(3d)
|
||||||
ADD_SUBDIRECTORY(3d)
|
|
||||||
ENDIF(WITH_3D)
|
|
||||||
|
|
||||||
# Don't add other subdirectories if only max plugins are selected.
|
# Don't add other subdirectories if only max plugins are selected.
|
||||||
IF(WITH_NEL_TOOLS)
|
IF(WITH_NEL_TOOLS)
|
||||||
|
|
|
@ -1 +1,9 @@
|
||||||
SUBDIRS(build_ig_boxes build_indoor_rbank build_rbank)
|
IF(WITH_3D)
|
||||||
|
ADD_SUBDIRECTORY(build_ig_boxes)
|
||||||
|
|
||||||
|
IF(WITH_LIGO)
|
||||||
|
ADD_SUBDIRECTORY(build_rbank)
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_SUBDIRECTORY(build_indoor_rbank)
|
||||||
|
|
Loading…
Reference in a new issue