Merge with default

This commit is contained in:
kaetemi 2014-08-03 22:15:39 +02:00
commit 996dd9aa16
7 changed files with 107 additions and 56 deletions

View file

@ -178,6 +178,9 @@ private:
// Error message // Error message
std::string _ErrorString; std::string _ErrorString;
// System dependant structure for locale
void* _Locale;
}; };

View file

@ -2795,9 +2795,13 @@ IOcclusionQuery::TOcclusionType COcclusionQueryGL::getOcclusionType()
else else
{ {
GLuint result; GLuint result;
nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT, &result); nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT_AVAILABLE, &result);
OcclusionType = result != 0 ? NotOccluded : Occluded; if (result != GL_FALSE)
VisibleCount = (uint) result; {
nglGetQueryObjectuivARB(ID, GL_QUERY_RESULT, &result);
OcclusionType = result != 0 ? NotOccluded : Occluded;
VisibleCount = (uint) result;
}
} }
} }
#endif #endif

View file

@ -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
} }
// *************************************************************************** // ***************************************************************************

View file

@ -1,40 +1,42 @@
IF(WITH_NEL_TOOLS) IF(WITH_NEL_TOOLS)
IF(WITH_3D)
SUBDIRS(
anim_builder
animation_set_builder
build_clod_bank
build_clodtex
build_coarse_mesh
build_far_bank
build_shadow_skin
build_smallbank
cluster_viewer
file_info
ig_add
ig_elevation
ig_info
ig_lighter
lightmap_optimizer
zone_dependencies
zone_ig_lighter
zone_lighter
zone_welder
shapes_exporter
shape2obj
zone_check_bind
zone_dump
zviewer)
ENDIF()
SUBDIRS( SUBDIRS(
build_coarse_mesh
build_far_bank
build_smallbank
ig_lighter
ig_elevation
lightmap_optimizer
zone_dependencies
zone_ig_lighter
zone_lighter
zone_welder
animation_set_builder
anim_builder
build_clod_bank
build_clodtex
build_interface build_interface
build_shadow_skin
cluster_viewer
file_info
get_neighbors get_neighbors
ig_add
ig_info
shapes_exporter
tga_cut tga_cut
tga_resize tga_resize)
shape2obj ENDIF()
zone_check_bind
zone_dump
zviewer)
ENDIF(WITH_NEL_TOOLS)
# 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()

View file

@ -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)

View file

@ -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)

View file

@ -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)