Merge branch 'development' into EngineAPI-Refactor

This commit is contained in:
Areloch 2018-12-09 14:48:50 -06:00 committed by GitHub
commit 3a71c75596
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1937 changed files with 102332 additions and 70549 deletions

View file

@ -215,27 +215,27 @@ void ScenePolyhedralObject< Base, P >::unpackUpdate( NetConnection* connection,
// Read planes.
const U32 numPlanes = stream->readInt( 8 );
mPolyhedron.planeList.setSize( numPlanes );
mPolyhedron.mPlaneList.setSize( numPlanes );
for( U32 i = 0; i < numPlanes; ++ i )
mathRead( *stream, &mPolyhedron.planeList[ i ] );
mathRead( *stream, &mPolyhedron.mPlaneList[ i ] );
// Read points.
const U32 numPoints = stream->readInt( 8 );
mPolyhedron.pointList.setSize( numPoints );
mPolyhedron.mPointList.setSize( numPoints );
for( U32 i = 0; i < numPoints; ++ i )
mathRead( *stream, &mPolyhedron.pointList[ i ] );
mathRead( *stream, &mPolyhedron.mPointList[ i ] );
// Read edges.
const U32 numEdges = stream->readInt( 8 );
mPolyhedron.edgeList.setSize( numEdges );
mPolyhedron.mEdgeList.setSize( numEdges );
for( U32 i = 0; i < numEdges; ++ i )
{
typename PolyhedronType::EdgeType& edge = mPolyhedron.edgeList[ i ];
typename PolyhedronType::EdgeType& edge = mPolyhedron.mEdgeList[ i ];
edge.face[ 0 ] = stream->readInt( 8 );
edge.face[ 1 ] = stream->readInt( 8 );
@ -344,7 +344,7 @@ bool ScenePolyhedralObject< Base, P >::_setPlane( void* object, const char* inde
&plane.d
);
obj->mPolyhedron.planeList.push_back( plane );
obj->mPolyhedron.mPlaneList.push_back( plane );
obj->setMaskBits( PolyMask );
obj->mIsBox = false;
@ -366,7 +366,7 @@ bool ScenePolyhedralObject< Base, P >::_setPoint( void* object, const char* inde
&point[ 2 ]
);
obj->mPolyhedron.pointList.push_back( point );
obj->mPolyhedron.mPointList.push_back( point );
obj->setMaskBits( PolyMask );
obj->mIsBox = false;
@ -389,7 +389,7 @@ bool ScenePolyhedralObject< Base, P >::_setEdge( void* object, const char* index
&edge.vertex[ 1 ]
);
obj->mPolyhedron.edgeList.push_back( edge );
obj->mPolyhedron.mEdgeList.push_back( edge );
obj->setMaskBits( PolyMask );
obj->mIsBox = false;

View file

@ -315,20 +315,20 @@ void CubeReflector::updateReflection( const ReflectParams &params )
const GFXFormat reflectFormat = REFLECTMGR->getReflectFormat();
if ( texResize ||
cubemap.isNull() ||
cubemap->getFormat() != reflectFormat )
mCubemap.isNull() ||
mCubemap->getFormat() != reflectFormat )
{
cubemap = GFX->createCubemap();
cubemap->initDynamic( texDim, reflectFormat );
mCubemap = GFX->createCubemap();
mCubemap->initDynamic( texDim, reflectFormat );
}
GFXTexHandle depthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
mDepthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
if ( renderTarget.isNull() )
renderTarget = GFX->allocRenderToTextureTarget();
if ( mRenderTarget.isNull() )
mRenderTarget = GFX->allocRenderToTextureTarget();
GFX->pushActiveRenderTarget();
renderTarget->attachTexture( GFXTextureTarget::DepthStencil, depthBuff );
mRenderTarget->attachTexture( GFXTextureTarget::DepthStencil, mDepthBuff );
F32 oldVisibleDist = gClientSceneGraph->getVisibleDistance();
@ -407,8 +407,8 @@ void CubeReflector::updateFace( const ReflectParams &params, U32 faceidx )
GFX->setWorldMatrix(matView);
GFX->clearTextureStateImmediate(0);
renderTarget->attachTexture( GFXTextureTarget::Color0, cubemap, faceidx );
GFX->setActiveRenderTarget( renderTarget );
mRenderTarget->attachTexture( GFXTextureTarget::Color0, mCubemap, faceidx );
GFX->setActiveRenderTarget(mRenderTarget);
GFX->clear( GFXClearStencil | GFXClearTarget | GFXClearZBuffer, gCanvasClearColor, 1.0f, 0 );
SceneRenderState reflectRenderState
@ -427,7 +427,7 @@ void CubeReflector::updateFace( const ReflectParams &params, U32 faceidx )
LIGHTMGR->unregisterAllLights();
// Clean up.
renderTarget->resolve();
mRenderTarget->resolve();
}
F32 CubeReflector::calcFaceScore( const ReflectParams &params, U32 faceidx )
@ -746,18 +746,18 @@ void PlaneReflector::setGFXMatrices( const MatrixF &camTrans )
MatrixF relCamTrans = invObjTrans * camTrans;
MatrixF camReflectTrans = getCameraReflection( relCamTrans );
MatrixF camTrans = mObject->getRenderTransform() * camReflectTrans;
camTrans.inverse();
MatrixF objTrans = mObject->getRenderTransform() * camReflectTrans;
objTrans.inverse();
GFX->setWorldMatrix( camTrans );
GFX->setWorldMatrix(objTrans);
// use relative reflect transform for modelview since clip plane is in object space
camTrans = camReflectTrans;
camTrans.inverse();
objTrans = camReflectTrans;
objTrans.inverse();
// set new projection matrix
gClientSceneGraph->setNonClipProjection( (MatrixF&) GFX->getProjectionMatrix() );
MatrixF clipProj = getFrustumClipProj( camTrans );
MatrixF clipProj = getFrustumClipProj(objTrans);
GFX->setProjectionMatrix( clipProj );
}
else

View file

@ -153,16 +153,16 @@ public:
virtual void unregisterReflector();
virtual void updateReflection( const ReflectParams &params );
GFXCubemap* getCubemap() const { return cubemap; }
GFXCubemap* getCubemap() const { return mCubemap; }
void updateFace( const ReflectParams &params, U32 faceidx );
F32 calcFaceScore( const ReflectParams &params, U32 faceidx );
protected:
GFXTexHandle depthBuff;
GFXTextureTargetRef renderTarget;
GFXCubemapHandle cubemap;
GFXTexHandle mDepthBuff;
GFXTextureTargetRef mRenderTarget;
GFXCubemapHandle mCubemap;
U32 mLastTexSize;
class CubeFaceReflector : public ReflectorBase

View file

@ -60,26 +60,26 @@ static Box3F sBoundingBox;
SceneContainer::Link::Link()
{
next = prev = this;
mNext = mPrev = this;
}
//-----------------------------------------------------------------------------
void SceneContainer::Link::unlink()
{
next->prev = prev;
prev->next = next;
next = prev = this;
mNext->mPrev = mPrev;
mPrev->mNext = mNext;
mNext = mPrev = this;
}
//-----------------------------------------------------------------------------
void SceneContainer::Link::linkAfter(SceneContainer::Link* ptr)
{
next = ptr->next;
next->prev = this;
prev = ptr;
prev->next = this;
mNext = ptr->mNext;
mNext->mPrev = this;
mPrev = ptr;
mPrev->mNext = this;
}
//=============================================================================
@ -93,8 +93,8 @@ SceneContainer::SceneContainer()
mSearchInProgress = false;
mCurrSeqKey = 0;
mEnd.next = mEnd.prev = &mStart;
mStart.next = mStart.prev = &mEnd;
mEnd.mNext = mEnd.mPrev = &mStart;
mStart.mNext = mStart.mPrev = &mEnd;
mBinArray = new SceneObjectRef[csmNumBins * csmNumBins];
for (U32 i = 0; i < csmNumBins; i++)
@ -586,10 +586,10 @@ void SceneContainer::polyhedronFindObjects(const Polyhedron& polyhedron, U32 mas
Box3F box;
box.minExtents.set(1e9, 1e9, 1e9);
box.maxExtents.set(-1e9, -1e9, -1e9);
for (i = 0; i < polyhedron.pointList.size(); i++)
for (i = 0; i < polyhedron.mPointList.size(); i++)
{
box.minExtents.setMin(polyhedron.pointList[i]);
box.maxExtents.setMax(polyhedron.pointList[i]);
box.minExtents.setMin(polyhedron.mPointList[i]);
box.maxExtents.setMax(polyhedron.mPointList[i]);
}
if ( mask == WaterObjectType ||
@ -760,7 +760,7 @@ void SceneContainer::findObjectList( const Frustum &frustum, U32 mask, Vector<Sc
void SceneContainer::findObjectList( U32 mask, Vector<SceneObject*> *outFound )
{
for ( Link* itr = mStart.next; itr != &mEnd; itr = itr->next )
for ( Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext)
{
SceneObject* ptr = static_cast<SceneObject*>( itr );
if ( ( ptr->getTypeMask() & mask ) != 0 )
@ -772,7 +772,7 @@ void SceneContainer::findObjectList( U32 mask, Vector<SceneObject*> *outFound )
void SceneContainer::findObjects( U32 mask, FindCallback callback, void *key )
{
for (Link* itr = mStart.next; itr != &mEnd; itr = itr->next) {
for (Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext) {
SceneObject* ptr = static_cast<SceneObject*>(itr);
if ((ptr->getTypeMask() & mask) != 0 && !ptr->mCollisionCount)
(*callback)(ptr,key);
@ -859,10 +859,10 @@ bool SceneContainer::_castRay( U32 type, const Point3F& start, const Point3F& en
F32 currentT = 2.0;
mCurrSeqKey++;
SceneObjectRef* chain = mOverflowBin.nextInBin;
while (chain)
SceneObjectRef* overflowChain = mOverflowBin.nextInBin;
while (overflowChain)
{
SceneObject* ptr = chain->object;
SceneObject* ptr = overflowChain->object;
if (ptr->getContainerSeqKey() != mCurrSeqKey)
{
ptr->setContainerSeqKey(mCurrSeqKey);
@ -897,7 +897,7 @@ bool SceneContainer::_castRay( U32 type, const Point3F& start, const Point3F& en
}
}
}
chain = chain->nextInBin;
overflowChain = overflowChain->nextInBin;
}
// These are just for rasterizing the line against the grid. We want the x coord
@ -1138,7 +1138,7 @@ bool SceneContainer::collideBox(const Point3F &start, const Point3F &end, U32 ma
AssertFatal( info->userData == NULL, "SceneContainer::collideBox - RayInfo->userData cannot be used here!" );
F32 currentT = 2;
for (Link* itr = mStart.next; itr != &mEnd; itr = itr->next)
for (Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext)
{
SceneObject* ptr = static_cast<SceneObject*>(itr);
if (ptr->getTypeMask() & mask && !ptr->mCollisionCount)

View file

@ -151,8 +151,8 @@ class SceneContainer
struct Link
{
Link* next;
Link* prev;
Link* mNext;
Link* mPrev;
Link();
void unlink();
void linkAfter(Link* ptr);

View file

@ -194,7 +194,7 @@ void Path::onRemove()
/// Sort the markers objects into sequence order
void Path::sortMarkers()
{
dQsort(objectList.address(), objectList.size(), sizeof(SimObject*), cmpPathObject);
dQsort(mObjectList.address(), mObjectList.size(), sizeof(SimObject*), cmpPathObject);
}
void Path::updatePath()