mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-02 20:10:32 +00:00
Merge branch 'linux' of https://github.com/just-bank/Torque3D into just-bank-linux
This commit is contained in:
commit
2d9fa140ed
45 changed files with 597 additions and 58 deletions
|
|
@ -33,7 +33,11 @@
|
|||
#include "console/consoleTypes.h"
|
||||
#include "scene/sceneRenderState.h"
|
||||
#include "T3D/gameBase/gameProcess.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "BulletMultiThreaded/Win32ThreadSupport.h"
|
||||
#elif defined (USE_PTHREADS)
|
||||
#include "BulletMultiThreaded/PosixThreadSupport.h"
|
||||
#endif
|
||||
|
||||
BtWorld::BtWorld() :
|
||||
mProcessList( NULL ),
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ const EngineTypeInfo* _MAPTYPE() { return TYPE< T >(); }
|
|||
extern S32 type; \
|
||||
extern const char* castConsoleTypeToString( _ConsoleConstType< nativeType >::ConstType &arg ); \
|
||||
extern bool castConsoleTypeFromString( nativeType &arg, const char *str ); \
|
||||
template<> extern S32 TYPEID< nativeType >();
|
||||
template<> S32 TYPEID< nativeType >();
|
||||
|
||||
#define DefineUnmappedConsoleType( type, nativeType ) \
|
||||
DefineConsoleType( type, nativeType ) \
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ namespace _Private {
|
|||
|
||||
|
||||
#define _DECLARE_TYPE( type ) \
|
||||
template<> extern const EngineTypeInfo* TYPE< type >(); \
|
||||
template<> const EngineTypeInfo* TYPE< type >(); \
|
||||
template<> struct _SCOPE< type > { \
|
||||
EngineExportScope& operator()() const { \
|
||||
return *reinterpret_cast< EngineExportScope* >( \
|
||||
|
|
|
|||
|
|
@ -33,7 +33,9 @@
|
|||
#include "platform/event.h"
|
||||
#include "gfx/gfxDrawUtil.h"
|
||||
#include "gui/controls/guiTextEditCtrl.h"
|
||||
#include "gui/editor/editorFunctions.h"
|
||||
#ifdef TORQUE_TOOLS
|
||||
#include "gui/editor/editorFunctions.h"
|
||||
#endif
|
||||
#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.
|
||||
// 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.
|
||||
bool hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject );
|
||||
bool hasClassIcon = false;
|
||||
#ifdef TORQUE_TOOLS
|
||||
hasClassIcon = gEditorIcons.hasIconNoRecurse( pObject );
|
||||
#endif
|
||||
|
||||
// draw the icon associated with the item
|
||||
if ( !hasClassIcon && item->mState.test(Item::VirtualParent))
|
||||
|
|
@ -5280,7 +5285,10 @@ void GuiTreeViewCtrl::onRenameValidate()
|
|||
|
||||
if ( mRenameInternal )
|
||||
obj->setInternalName( data );
|
||||
else if ( validateObjectName( data, obj ) )
|
||||
else
|
||||
#ifdef TORQUE_TOOLS
|
||||
if ( validateObjectName( data, obj ) )
|
||||
#endif
|
||||
obj->assignName( data );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include "gfx/gfxDevice.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/advancedLightingFeaturesHLSL.h"
|
||||
#else
|
||||
|
|
@ -54,7 +54,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF
|
|||
|
||||
if(GFX->getAdapterType() == OpenGL)
|
||||
{
|
||||
#ifdef TORQUE_OS_MAC
|
||||
#if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
|
||||
cond = new GBufferConditionerGLSL( prepassTargetFormat );
|
||||
FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond);
|
||||
FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatGLSL());
|
||||
|
|
@ -66,7 +66,7 @@ void AdvancedLightingFeatures::registerFeatures( const GFXFormat &prepassTargetF
|
|||
}
|
||||
else
|
||||
{
|
||||
#ifndef TORQUE_OS_MAC
|
||||
#if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
|
||||
cond = new GBufferConditionerHLSL( prepassTargetFormat, GBufferConditionerHLSL::ViewSpace );
|
||||
FEATUREMGR->registerFeature(MFT_PrePassConditioner, cond);
|
||||
FEATUREMGR->registerFeature(MFT_RTLighting, new DeferredRTLightingFeatHLSL());
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
#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/bumpGLSL.h"
|
||||
#include "shaderGen/GLSL/pixSpecularGLSL.h"
|
||||
|
|
@ -167,7 +167,7 @@ void BasicLightManager::activate( SceneManager *sceneManager )
|
|||
|
||||
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_ToneMap, new TonemapFeatGLSL );
|
||||
FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatGLSL );
|
||||
|
|
@ -177,7 +177,7 @@ void BasicLightManager::activate( SceneManager *sceneManager )
|
|||
}
|
||||
else
|
||||
{
|
||||
#ifndef TORQUE_OS_MAC
|
||||
#if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
|
||||
FEATUREMGR->registerFeature( MFT_LightMap, new LightmapFeatHLSL );
|
||||
FEATUREMGR->registerFeature( MFT_ToneMap, new TonemapFeatHLSL );
|
||||
FEATUREMGR->registerFeature( MFT_NormalMap, new BumpFeatHLSL );
|
||||
|
|
|
|||
|
|
@ -22,8 +22,17 @@
|
|||
|
||||
#include "lighting/common/lightMapParams.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 ) :
|
||||
representedInLightmap(false),
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public:
|
|||
virtual ~LightMapParams();
|
||||
|
||||
/// The LightInfoEx hook type.
|
||||
static const LightInfoExType Type;
|
||||
static LightInfoExType Type;
|
||||
|
||||
// LightInfoEx
|
||||
virtual void set( const LightInfoEx *ex );
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
|
|||
|
||||
// NOTE: We haven't ported the lighting shaders on OSX
|
||||
// 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 ) );
|
||||
#else
|
||||
static AlignedArray<Point4F> lightPositions( 3, sizeof( Point4F ) );
|
||||
|
|
@ -342,7 +342,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
|
|||
if ( !light )
|
||||
break;
|
||||
|
||||
#ifdef TORQUE_OS_MAC
|
||||
#if defined( TORQUE_OS_MAC ) || defined( TORQUE_OS_LINUX )
|
||||
|
||||
lightPositions[i] = light->getPosition();
|
||||
|
||||
|
|
@ -381,7 +381,7 @@ void LightManager::_update4LightConsts( const SceneData &sgData,
|
|||
shaderConsts->setSafe( lightDiffuseSC, lightColors );
|
||||
shaderConsts->setSafe( lightInvRadiusSqSC, lightInvRadiusSq );
|
||||
|
||||
#ifndef TORQUE_OS_MAC
|
||||
#if !defined( TORQUE_OS_MAC ) && !defined( TORQUE_OS_LINUX )
|
||||
|
||||
shaderConsts->setSafe( lightSpotDirSC, lightSpotDirs );
|
||||
shaderConsts->setSafe( lightSpotAngleSC, lightSpotAngle );
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "materials/baseMatInstance.h"
|
||||
#include "scene/sceneManager.h"
|
||||
#include "scene/sceneRenderState.h"
|
||||
#include "scene/zones/SceneZoneSpace.h"
|
||||
#include "scene/zones/sceneZoneSpace.h"
|
||||
#include "lighting/lightManager.h"
|
||||
#include "math/mathUtils.h"
|
||||
#include "shaderGen/shaderGenVars.h"
|
||||
|
|
@ -42,6 +42,7 @@
|
|||
#include "core/stream/bitStream.h"
|
||||
#include "math/mathIO.h"
|
||||
#include "materials/shaderData.h"
|
||||
#include "core/module.h"
|
||||
|
||||
// Used for creation in ShadowMapParams::getOrCreateShadowMap()
|
||||
#include "lighting/shadowMap/singleLightShadowMap.h"
|
||||
|
|
@ -545,8 +546,15 @@ void LightingShaderConstants::_onShaderReload()
|
|||
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 )
|
||||
: mLight( light ),
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ public:
|
|||
virtual ~ShadowMapParams();
|
||||
|
||||
/// The LightInfoEx hook type.
|
||||
static const LightInfoExType Type;
|
||||
static LightInfoExType Type;
|
||||
|
||||
// LightInfoEx
|
||||
virtual void set( const LightInfoEx *ex );
|
||||
|
|
|
|||
|
|
@ -92,14 +92,14 @@ struct SilhouetteExtractorBasePerspective : public SilhouetteExtractorBase< Poly
|
|||
|
||||
// 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 );
|
||||
|
||||
Point3F camPos = camView.getPosition();
|
||||
|
||||
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;
|
||||
else
|
||||
mPolygonOrientations[i] = BackFacing;
|
||||
|
|
|
|||
|
|
@ -523,17 +523,17 @@ template<class T,class S> void dCopyArray(T *dst, const S *src, dsize_t size)
|
|||
dst[i] = (T)src[i];
|
||||
}
|
||||
|
||||
extern void* dMemcpy(void *dst, const void *src, dsize_t size);
|
||||
extern void* dMemmove(void *dst, const void *src, dsize_t size);
|
||||
extern void* dMemset(void *dst, int c, dsize_t size);
|
||||
extern int dMemcmp(const void *ptr1, const void *ptr2, dsize_t size);
|
||||
|
||||
// Special case of the above function when the arrays are the same type (use memcpy)
|
||||
template<class T> void dCopyArray(T *dst, const T *src, dsize_t size)
|
||||
{
|
||||
dMemcpy(dst, src, size * sizeof(T));
|
||||
}
|
||||
|
||||
extern void* dMemcpy(void *dst, const void *src, dsize_t size);
|
||||
extern void* dMemmove(void *dst, const void *src, dsize_t size);
|
||||
extern void* dMemset(void *dst, int c, dsize_t size);
|
||||
extern int dMemcmp(const void *ptr1, const void *ptr2, dsize_t size);
|
||||
|
||||
/// The dALIGN macro ensures the passed declaration is
|
||||
/// data aligned at 16 byte boundaries.
|
||||
#if defined( TORQUE_COMPILER_VISUALC )
|
||||
|
|
|
|||
|
|
@ -522,9 +522,9 @@ next:
|
|||
// processors per core
|
||||
|
||||
tblSMTID[j] = GetNzbSubID(apicID, MaxLPPerCore, 0);
|
||||
tblCoreID[j] = GetNzbSubID(apicID,
|
||||
MaxCorePerPhysicalProc(),
|
||||
(unsigned char) find_maskwidth(MaxLPPerCore));
|
||||
unsigned char maxCorePPP = MaxCorePerPhysicalProc();
|
||||
unsigned char maskWidth = find_maskwidth(MaxLPPerCore);
|
||||
tblCoreID[j] = GetNzbSubID(apicID, maxCorePPP, maskWidth);
|
||||
|
||||
// Extract package ID, assume single cluster.
|
||||
// Shift value is the mask width for max Logical per package
|
||||
|
|
|
|||
|
|
@ -55,13 +55,25 @@ Semaphore::~Semaphore()
|
|||
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 (SDL_SemWait(mData->semaphore) < 0)
|
||||
AssertFatal(false, "Semaphore::acquie - Wait failed.");
|
||||
// Semaphore acquiring is different from the MacOS/Win realization because SDL_SemWaitTimeout() with "infinite" timeout can be too heavy on some platforms.
|
||||
// (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);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -81,6 +81,8 @@ void OpenALDLLShutdown() {}
|
|||
|
||||
// Platform Stubs
|
||||
|
||||
bool Platform::excludeOtherInstances(const char*) { return true; }
|
||||
|
||||
// clipboard
|
||||
const char* Platform::getClipboard() { return ""; }
|
||||
bool Platform::setClipboard(const char *text) { return false; }
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
#include "console/engineAPI.h"
|
||||
|
||||
|
||||
const RenderInstType RenderInstType::Invalid( String::EmptyString );
|
||||
const RenderInstType RenderInstType::Invalid( "" );
|
||||
|
||||
const RenderInstType RenderPassManager::RIT_Interior("Interior");
|
||||
const RenderInstType RenderPassManager::RIT_Mesh("Mesh");
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@
|
|||
#ifndef _COLLADA_UTILS_H_
|
||||
#include "ts/collada/colladaUtils.h"
|
||||
#endif
|
||||
#ifndef _ENGINEAPI_H_
|
||||
#include "console/engineAPI.h"
|
||||
#endif
|
||||
|
||||
/// This class allows an artist to export their animations for the model
|
||||
/// into the .dsq format. This class in particular matches up the model
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue