Source changes needed for Linux build.

This commit is contained in:
bank 2012-09-23 14:18:12 +04:00 committed by bank
parent 109a766748
commit d2700f881c
16 changed files with 73 additions and 27 deletions

View file

@ -67,6 +67,9 @@ NvRemoveTjunctions.cpp : A code snippet to remove tjunctions from a triangle mes
#include "NvHashMap.h" #include "NvHashMap.h"
#include "NvRemoveTjunctions.h" #include "NvRemoveTjunctions.h"
#include "NvFloatMath.h" #include "NvFloatMath.h"
#ifdef LINUX
#include <climits>
#endif
#pragma warning(disable:4189) #pragma warning(disable:4189)

View file

@ -33,7 +33,11 @@
#include "console/consoleTypes.h" #include "console/consoleTypes.h"
#include "scene/sceneRenderState.h" #include "scene/sceneRenderState.h"
#include "T3D/gameBase/gameProcess.h" #include "T3D/gameBase/gameProcess.h"
#ifdef _WIN32
#include "BulletMultiThreaded/Win32ThreadSupport.h"
#elif defined (USE_PTHREADS)
#include "BulletMultiThreaded/PosixThreadSupport.h"
#endif
BtWorld::BtWorld() : BtWorld::BtWorld() :
mProcessList( NULL ), mProcessList( NULL ),

View file

@ -252,7 +252,7 @@ const EngineTypeInfo* _MAPTYPE() { return TYPE< T >(); }
extern S32 type; \ extern S32 type; \
extern const char* castConsoleTypeToString( _ConsoleConstType< nativeType >::ConstType &arg ); \ extern const char* castConsoleTypeToString( _ConsoleConstType< nativeType >::ConstType &arg ); \
extern bool castConsoleTypeFromString( nativeType &arg, const char *str ); \ extern bool castConsoleTypeFromString( nativeType &arg, const char *str ); \
template<> extern S32 TYPEID< nativeType >(); template<> S32 TYPEID< nativeType >();
#define DefineUnmappedConsoleType( type, nativeType ) \ #define DefineUnmappedConsoleType( type, nativeType ) \
DefineConsoleType( type, nativeType ) \ DefineConsoleType( type, nativeType ) \

View file

@ -416,7 +416,7 @@ namespace _Private {
#define _DECLARE_TYPE( type ) \ #define _DECLARE_TYPE( type ) \
template<> extern const EngineTypeInfo* TYPE< type >(); \ template<> const EngineTypeInfo* TYPE< type >(); \
template<> struct _SCOPE< type > { \ template<> struct _SCOPE< type > { \
EngineExportScope& operator()() const { \ EngineExportScope& operator()() const { \
return *reinterpret_cast< EngineExportScope* >( \ return *reinterpret_cast< EngineExportScope* >( \

View file

@ -33,7 +33,9 @@
#include "platform/event.h" #include "platform/event.h"
#include "gfx/gfxDrawUtil.h" #include "gfx/gfxDrawUtil.h"
#include "gui/controls/guiTextEditCtrl.h" #include "gui/controls/guiTextEditCtrl.h"
#include "gui/editor/editorFunctions.h" #ifdef TORQUE_TOOLS
#include "gui/editor/editorFunctions.h"
#endif
#include "console/engineAPI.h" #include "console/engineAPI.h"
@ -4042,7 +4044,10 @@ void GuiTreeViewCtrl::onRenderCell(Point2I offset, Point2I cell, bool, bool )
// If this item is a VirtualParent we can use the generic SimGroup123 icons. // If this item is a VirtualParent we can use the generic SimGroup123 icons.
// However if there is already an icon in the EditorIconRegistry for this // However if there is already an icon in the EditorIconRegistry for this
// exact class (not counting parent class icons) we want to use that instead. // exact class (not counting parent class icons) we want to use that instead.
bool hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject ); bool hasClassIcon = false;
#ifdef TORQUE_TOOLS
hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject );
#endif
// draw the icon associated with the item // draw the icon associated with the item
if ( !hasClassIcon && item->mState.test(Item::VirtualParent)) if ( !hasClassIcon && item->mState.test(Item::VirtualParent))
@ -5280,7 +5285,10 @@ void GuiTreeViewCtrl::onRenameValidate()
if ( mRenameInternal ) if ( mRenameInternal )
obj->setInternalName( data ); obj->setInternalName( data );
else if ( validateObjectName( data, obj ) ) else
#ifdef TORQUE_TOOLS
if ( validateObjectName( data, obj ) )
#endif
obj->assignName( data ); obj->assignName( data );
} }

View file

@ -31,7 +31,7 @@
#include "gfx/gfxDevice.h" #include "gfx/gfxDevice.h"
#include "core/util/safeDelete.h" #include "core/util/safeDelete.h"
#ifndef TORQUE_OS_MAC #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
# include "lighting/advanced/hlsl/gBufferConditionerHLSL.h" # include "lighting/advanced/hlsl/gBufferConditionerHLSL.h"
# include "lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h" # include "lighting/advanced/hlsl/advancedLightingFeaturesHLSL.h"
#else #else
@ -54,7 +54,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF
if(GFX->getAdapterType() == OpenGL) if(GFX->getAdapterType() == OpenGL)
{ {
#ifdef TORQUE_OS_MAC #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
cond = new GBufferConditionerGLSL( prepassTargetFormat ); cond = new GBufferConditionerGLSL( prepassTargetFormat );
FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond); FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond);
FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatGLSL()); FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatGLSL());
@ -66,7 +66,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF
} }
else else
{ {
#ifndef TORQUE_OS_MAC #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
cond = new GBufferConditionerHLSL( prepassTargetFormat, GBufferConditionerHLSL::ViewSpace ); cond = new GBufferConditionerHLSL( prepassTargetFormat, GBufferConditionerHLSL::ViewSpace );
FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond); FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond);
FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatHLSL()); FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatHLSL());

View file

@ -49,7 +49,7 @@
#include "lighting/common/projectedShadow.h" #include "lighting/common/projectedShadow.h"
#ifdef TORQUE_OS_MAC #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
#include "shaderGen/GLSL/shaderFeatureGLSL.h" #include "shaderGen/GLSL/shaderFeatureGLSL.h"
#include "shaderGen/GLSL/bumpGLSL.h" #include "shaderGen/GLSL/bumpGLSL.h"
#include "shaderGen/GLSL/pixSpecularGLSL.h" #include "shaderGen/GLSL/pixSpecularGLSL.h"
@ -167,7 +167,7 @@ void BasicLightManager::activate( SceneManager *sceneManager )
if( GFX->getAdapterType() == OpenGL ) if( GFX->getAdapterType() == OpenGL )
{ {
#ifdef TORQUE_OS_MAC #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatGLSL ); FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatGLSL );
FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatGLSL ); FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatGLSL );
FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatGLSL ); FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatGLSL );
@ -177,7 +177,7 @@ void BasicLightManager::activate( SceneManager *sceneManager )
} }
else else
{ {
#ifndef TORQUE_OS_MAC #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatHLSL ); FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatHLSL );
FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatHLSL ); FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatHLSL );
FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatHLSL ); FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatHLSL );

View file

@ -22,8 +22,17 @@
#include "lighting/common/lightMapParams.h" #include "lighting/common/lightMapParams.h"
#include "core/stream/bitStream.h" #include "core/stream/bitStream.h"
#include "core/module.h"
const LightInfoExType LightMapParams::Type( "LightMapParams" ); MODULE_BEGIN( LightMapParams )
MODULE_INIT_AFTER( ShadowMapParams )
MODULE_INIT
{
LightMapParams::Type = "LightMapParams";
}
MODULE_END;
LightInfoExType LightMapParams::Type( "" );
LightMapParams::LightMapParams( LightInfo *light ) : LightMapParams::LightMapParams( LightInfo *light ) :
representedInLightmap(false), representedInLightmap(false),

View file

@ -34,7 +34,7 @@ public:
virtual ~LightMapParams(); virtual ~LightMapParams();
/// The LightInfoEx hook type. /// The LightInfoEx hook type.
static const LightInfoExType Type; static LightInfoExType Type;
// LightInfoEx // LightInfoEx
virtual void set( const LightInfoEx *ex ); virtual void set( const LightInfoEx *ex );

View file

@ -314,7 +314,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
// NOTE: We haven't ported the lighting shaders on OSX // NOTE: We haven't ported the lighting shaders on OSX
// to the optimized HLSL versions. // to the optimized HLSL versions.
#ifdef TORQUE_OS_MAC #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
static AlignedArray<Point3F> lightPositions( 4, sizeof( Point4F ) ); static AlignedArray<Point3F> lightPositions( 4, sizeof( Point4F ) );
#else #else
static AlignedArray<Point4F> lightPositions( 3, sizeof( Point4F ) ); static AlignedArray<Point4F> lightPositions( 3, sizeof( Point4F ) );
@ -342,7 +342,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
if ( !light ) if ( !light )
break; break;
#ifdef TORQUE_OS_MAC #if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
lightPositions[i] = light->getPosition(); lightPositions[i] = light->getPosition();
@ -381,7 +381,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
shaderConsts->setSafe( lightDiffuseSC, lightColors ); shaderConsts->setSafe( lightDiffuseSC, lightColors );
shaderConsts->setSafe( lightInvRadiusSqSC, lightInvRadiusSq ); shaderConsts->setSafe( lightInvRadiusSqSC, lightInvRadiusSq );
#ifndef TORQUE_OS_MAC #if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
shaderConsts->setSafe( lightSpotDirSC, lightSpotDirs ); shaderConsts->setSafe( lightSpotDirSC, lightSpotDirs );
shaderConsts->setSafe( lightSpotAngleSC, lightSpotAngle ); shaderConsts->setSafe( lightSpotAngleSC, lightSpotAngle );

View file

@ -34,7 +34,7 @@
#include "materials/baseMatInstance.h" #include "materials/baseMatInstance.h"
#include "scene/sceneManager.h" #include "scene/sceneManager.h"
#include "scene/sceneRenderState.h" #include "scene/sceneRenderState.h"
#include "scene/zones/SceneZoneSpace.h" #include "scene/zones/sceneZoneSpace.h"
#include "lighting/lightManager.h" #include "lighting/lightManager.h"
#include "math/mathUtils.h" #include "math/mathUtils.h"
#include "shaderGen/shaderGenVars.h" #include "shaderGen/shaderGenVars.h"
@ -42,6 +42,7 @@
#include "core/stream/bitStream.h" #include "core/stream/bitStream.h"
#include "math/mathIO.h" #include "math/mathIO.h"
#include "materials/shaderData.h" #include "materials/shaderData.h"
#include "core/module.h"
// Used for creation in ShadowMapParams::getOrCreateShadowMap() // Used for creation in ShadowMapParams::getOrCreateShadowMap()
#include "lighting/shadowMap/singleLightShadowMap.h" #include "lighting/shadowMap/singleLightShadowMap.h"
@ -545,8 +546,15 @@ void LightingShaderConstants::_onShaderReload()
init( mShader ); init( mShader );
} }
MODULE_BEGIN( ShadowMapParams )
MODULE_INIT_BEFORE( LightMapParams )
MODULE_INIT
{
ShadowMapParams::Type = "ShadowMapParams" ;
}
MODULE_END;
const LightInfoExType ShadowMapParams::Type( "ShadowMapParams" ); LightInfoExType ShadowMapParams::Type( "" );
ShadowMapParams::ShadowMapParams( LightInfo *light ) ShadowMapParams::ShadowMapParams( LightInfo *light )
: mLight( light ), : mLight( light ),

View file

@ -287,7 +287,7 @@ public:
virtual ~ShadowMapParams(); virtual ~ShadowMapParams();
/// The LightInfoEx hook type. /// The LightInfoEx hook type.
static const LightInfoExType Type; static LightInfoExType Type;
// LightInfoEx // LightInfoEx
virtual void set( const LightInfoEx *ex ); virtual void set( const LightInfoEx *ex );

View file

@ -92,14 +92,14 @@ struct SilhouetteExtractorBasePerspective : public SilhouetteExtractorBase< Poly
// Determine orientation of each of the polygons. // Determine orientation of each of the polygons.
const U32 numPolygons = mPolyhedron->getNumPlanes(); const U32 numPolygons = this->mPolyhedron->getNumPlanes();
mPolygonOrientations = ( Orientation* ) FrameAllocator::alloc( sizeof( Orientation ) * numPolygons ); mPolygonOrientations = ( Orientation* ) FrameAllocator::alloc( sizeof( Orientation ) * numPolygons );
Point3F camPos = camView.getPosition(); Point3F camPos = camView.getPosition();
for( U32 i = 0; i < numPolygons; ++ i ) for( U32 i = 0; i < numPolygons; ++ i )
{ {
if (mPolyhedron->getPlanes()[i].whichSide( camPos ) == PlaneF::Front) if (this->mPolyhedron->getPlanes()[i].whichSide( camPos ) == PlaneF::Front)
mPolygonOrientations[i] = FrontFacing; mPolygonOrientations[i] = FrontFacing;
else else
mPolygonOrientations[i] = BackFacing; mPolygonOrientations[i] = BackFacing;

View file

@ -55,13 +55,25 @@ Semaphore::~Semaphore()
delete mData; delete mData;
} }
bool Semaphore::acquire(bool block) bool Semaphore::acquire(bool block, S32 timeoutMS)
{ {
AssertFatal(mData, "Semaphore::acquire - Invalid semaphore."); AssertFatal(mData && mData->semaphore, "Semaphore::acquire - Invalid semaphore.");
if (block) if (block)
{ {
if (SDL_SemWait(mData->semaphore) < 0) // Semaphore acquiring is different from the MacOS/Win realization because SDL_SemWaitTimeout() with "infinite" timeout can be too heavy on some platforms.
AssertFatal(false, "Semaphore::acquie - Wait failed."); // (see "man SDL_SemWaitTimeout(3)" for more info)
// "man" states to avoid the use of SDL_SemWaitTimeout at all, but at current stage this looks like a valid and working solution, so keeping it this way.
// [bank / Feb-2010]
if (timeoutMS == -1)
{
if (SDL_SemWait(mData->semaphore) < 0)
AssertFatal(false, "Semaphore::acquie - Wait failed.");
}
else
{
if (SDL_SemWaitTimeout(mData->semaphore, timeoutMS) < 0)
AssertFatal(false, "Semaphore::acquie - Wait with timeout failed.");
}
return (true); return (true);
} }
else else

View file

@ -81,6 +81,8 @@ void OpenALDLLShutdown() {}
// Platform Stubs // Platform Stubs
bool Platform::excludeOtherInstances(const char*) { return true; }
// clipboard // clipboard
const char* Platform::getClipboard() { return ""; } const char* Platform::getClipboard() { return ""; }
bool Platform::setClipboard(const char *text) { return false; } bool Platform::setClipboard(const char *text) { return false; }

View file

@ -42,7 +42,7 @@
#include "console/engineAPI.h" #include "console/engineAPI.h"
const RenderInstType RenderInstType::Invalid( String::EmptyString ); const RenderInstType RenderInstType::Invalid( "" );
const RenderInstType RenderPassManager::RIT_Interior("Interior"); const RenderInstType RenderPassManager::RIT_Interior("Interior");
const RenderInstType RenderPassManager::RIT_Mesh("Mesh"); const RenderInstType RenderPassManager::RIT_Mesh("Mesh");