Просмотр исходного кода

Seriously scaled down TextureUnitState

Marko Pintera 13 лет назад
Родитель
Сommit
20ff80ca27

+ 1 - 71
CamelotRenderer/OgreRenderSystem.cpp

@@ -281,12 +281,11 @@ namespace Ogre {
         return mActiveViewport;
         return mActiveViewport;
     }
     }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
-    void RenderSystem::_setTextureUnitSettings(size_t texUnit, TextureUnitState& tl)
+    void RenderSystem::_setTextureUnitSettings(size_t texUnit, const TexturePtr& tex, TextureUnitState& tl)
     {
     {
         // This method is only ever called to set a texture unit to valid details
         // This method is only ever called to set a texture unit to valid details
         // The method _disableTextureUnit is called to turn a unit off
         // The method _disableTextureUnit is called to turn a unit off
 
 
-        const TexturePtr& tex = tl._getTexturePtr();
 		// Vertex texture binding?
 		// Vertex texture binding?
 		if (mCurrentCapabilities->hasCapability(RSC_VERTEX_TEXTURE_FETCH) &&
 		if (mCurrentCapabilities->hasCapability(RSC_VERTEX_TEXTURE_FETCH) &&
 			!mCurrentCapabilities->getVertexTextureUnitsShared())
 			!mCurrentCapabilities->getVertexTextureUnitsShared())
@@ -313,9 +312,6 @@ namespace Ogre {
 			_setTexture(texUnit, true, tex);
 			_setTexture(texUnit, true, tex);
 		}
 		}
 
 
-        // Set texture coordinate set
-        _setTextureCoordSet(texUnit, tl.getTextureCoordSet());
-
         // Set texture layer filtering
         // Set texture layer filtering
         _setTextureUnitFiltering(texUnit, 
         _setTextureUnitFiltering(texUnit, 
             tl.getTextureFiltering(FT_MIN), 
             tl.getTextureFiltering(FT_MIN), 
@@ -328,75 +324,9 @@ namespace Ogre {
 		// Set mipmap biasing
 		// Set mipmap biasing
 		_setTextureMipmapBias(texUnit, tl.getTextureMipmapBias());
 		_setTextureMipmapBias(texUnit, tl.getTextureMipmapBias());
 
 
-		// Set blend modes
-		// Note, colour before alpha is important
-        _setTextureBlendMode(texUnit, tl.getColourBlendMode());
-        _setTextureBlendMode(texUnit, tl.getAlphaBlendMode());
-
         // Texture addressing mode
         // Texture addressing mode
         const TextureUnitState::UVWAddressingMode& uvw = tl.getTextureAddressingMode();
         const TextureUnitState::UVWAddressingMode& uvw = tl.getTextureAddressingMode();
         _setTextureAddressingMode(texUnit, uvw);
         _setTextureAddressingMode(texUnit, uvw);
-        // Set texture border colour only if required
-        if (uvw.u == TextureUnitState::TAM_BORDER ||
-            uvw.v == TextureUnitState::TAM_BORDER ||
-            uvw.w == TextureUnitState::TAM_BORDER)
-        {
-            _setTextureBorderColour(texUnit, tl.getTextureBorderColour());
-        }
-
-        // Set texture effects
-        TextureUnitState::EffectMap::iterator effi;
-        // Iterate over new effects
-        bool anyCalcs = false;
-        for (effi = tl.mEffects.begin(); effi != tl.mEffects.end(); ++effi)
-        {
-            switch (effi->second.type)
-            {
-            case TextureUnitState::ET_ENVIRONMENT_MAP:
-                if (effi->second.subtype == TextureUnitState::ENV_CURVED)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_PLANAR)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_PLANAR);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_REFLECTION)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_REFLECTION);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_NORMAL)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_NORMAL);
-                    anyCalcs = true;
-                }
-                break;
-            case TextureUnitState::ET_UVSCROLL:
-			case TextureUnitState::ET_USCROLL:
-			case TextureUnitState::ET_VSCROLL:
-            case TextureUnitState::ET_ROTATE:
-            case TextureUnitState::ET_TRANSFORM:
-                break;
-            case TextureUnitState::ET_PROJECTIVE_TEXTURE:
-                _setTextureCoordCalculation(texUnit, TEXCALC_PROJECTIVE_TEXTURE, 
-                    effi->second.frustum);
-                anyCalcs = true;
-                break;
-            }
-        }
-        // Ensure any previous texcoord calc settings are reset if there are now none
-        if (!anyCalcs)
-        {
-            _setTextureCoordCalculation(texUnit, TEXCALC_NONE);
-        }
-
-        // Change tetxure matrix 
-        _setTextureMatrix(texUnit, tl.getTextureTransform());
-
-
     }
     }
 	//-----------------------------------------------------------------------
 	//-----------------------------------------------------------------------
 	void RenderSystem::_setVertexTexture(size_t unit, const TexturePtr& tex)
 	void RenderSystem::_setVertexTexture(size_t unit, const TexturePtr& tex)

+ 1 - 1
CamelotRenderer/OgreRenderSystem.h

@@ -545,7 +545,7 @@ namespace Ogre
 		only sets those settings which are different from the current settings for this
 		only sets those settings which are different from the current settings for this
 		unit, thus minimising render state changes.
 		unit, thus minimising render state changes.
 		*/
 		*/
-		virtual void _setTextureUnitSettings(size_t texUnit, TextureUnitState& tl);
+		virtual void _setTextureUnitSettings(size_t texUnit, const TexturePtr& texture, TextureUnitState& tl);
 		/** Turns off a texture unit. */
 		/** Turns off a texture unit. */
 		virtual void _disableTextureUnit(size_t texUnit);
 		virtual void _disableTextureUnit(size_t texUnit);
 		/** Disables all texture units from the given unit upwards */
 		/** Disables all texture units from the given unit upwards */

+ 6 - 830
CamelotRenderer/OgreTextureUnitState.cpp

@@ -31,25 +31,12 @@ THE SOFTWARE.
 namespace Ogre {
 namespace Ogre {
 
 
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
-    TextureUnitState::TextureUnitState(Pass* parent)
-        : mCurrentFrame(0)
-		, mAnimDuration(0)
-		, mCubic(false)
-		, mTextureType(TEX_TYPE_2D)
+    TextureUnitState::TextureUnitState(TextureType type)
+		: mTextureType(type)
         , mDesiredFormat(PF_UNKNOWN)
         , mDesiredFormat(PF_UNKNOWN)
 		, mTextureSrcMipmaps(MIP_DEFAULT)
 		, mTextureSrcMipmaps(MIP_DEFAULT)
-		, mTextureCoordSetIndex(0)
-		, mBorderColour(ColourValue::Black)
-		, mTextureLoadFailed(false)
 		, mIsAlpha(false)
 		, mIsAlpha(false)
 		, mHwGamma(false)
 		, mHwGamma(false)
-		, mRecalcTexMatrix(false)
-		, mUMod(0)
-		, mVMod(0)
-		, mUScale(1)
-		, mVScale(1)
-		, mRotate(0)
-		, mTexModMatrix(Matrix4::IDENTITY)
 		, mMinFilter(FO_LINEAR)
 		, mMinFilter(FO_LINEAR)
 		, mMagFilter(FO_LINEAR)
 		, mMagFilter(FO_LINEAR)
 		, mMipFilter(FO_POINT)
 		, mMipFilter(FO_POINT)
@@ -58,142 +45,25 @@ namespace Ogre {
 		, mIsDefaultAniso(true)
 		, mIsDefaultAniso(true)
 		, mIsDefaultFiltering(true)
 		, mIsDefaultFiltering(true)
 		, mBindingType(BT_FRAGMENT)
 		, mBindingType(BT_FRAGMENT)
-		, mContentType(CONTENT_NAMED)
-		, mParent(parent)
     {
     {
-		mColourBlendMode.blendType = LBT_COLOUR;
-		mAlphaBlendMode.operation = LBX_MODULATE;
-		mAlphaBlendMode.blendType = LBT_ALPHA;
-		mAlphaBlendMode.source1 = LBS_TEXTURE;
-		mAlphaBlendMode.source2 = LBS_CURRENT;
-		setColourOperation(LBO_MODULATE);
 		setTextureAddressingMode(TAM_WRAP);
 		setTextureAddressingMode(TAM_WRAP);
     }
     }
 
 
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
-    TextureUnitState::TextureUnitState(Pass* parent, const TextureUnitState& oth )
+    TextureUnitState::TextureUnitState(const TextureUnitState& oth )
     {
     {
-        mParent = parent;
         *this = oth;
         *this = oth;
     }
     }
 
 
-    //-----------------------------------------------------------------------
-    TextureUnitState::TextureUnitState( Pass* parent, const String& texName, unsigned int texCoordSet)
-		: mCurrentFrame(0)
-		, mAnimDuration(0)
-		, mCubic(false)
-		, mTextureType(TEX_TYPE_2D)
-        , mDesiredFormat(PF_UNKNOWN)
-		, mTextureSrcMipmaps(MIP_DEFAULT)
-		, mTextureCoordSetIndex(0)
-		, mBorderColour(ColourValue::Black)
-		, mTextureLoadFailed(false)
-		, mIsAlpha(false)
-		, mHwGamma(false)
-		, mRecalcTexMatrix(false)
-		, mUMod(0)
-		, mVMod(0)
-		, mUScale(1)
-		, mVScale(1)
-		, mRotate(0)
-		, mTexModMatrix(Matrix4::IDENTITY)
-		, mMinFilter(FO_LINEAR)
-		, mMagFilter(FO_LINEAR)
-		, mMipFilter(FO_POINT)
-		, mMaxAniso(0)
-		, mMipmapBias(0)
-		, mIsDefaultAniso(true)
-		, mIsDefaultFiltering(true)
-		, mBindingType(BT_FRAGMENT)
-		, mContentType(CONTENT_NAMED)
-		, mParent(parent)
-    {
-		mColourBlendMode.blendType = LBT_COLOUR;
-		mAlphaBlendMode.operation = LBX_MODULATE;
-		mAlphaBlendMode.blendType = LBT_ALPHA;
-		mAlphaBlendMode.source1 = LBS_TEXTURE;
-		mAlphaBlendMode.source2 = LBS_CURRENT;
-		setColourOperation(LBO_MODULATE);
-		setTextureAddressingMode(TAM_WRAP);
-
-        setTextureName(texName);
-        setTextureCoordSet(texCoordSet);
-    }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     TextureUnitState::~TextureUnitState()
     TextureUnitState::~TextureUnitState()
     {
     {
-        // Unload ensure all controllers destroyed
-        _unload();
     }
     }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     TextureUnitState & TextureUnitState::operator = ( 
     TextureUnitState & TextureUnitState::operator = ( 
         const TextureUnitState &oth )
         const TextureUnitState &oth )
     {
     {
-        assert(mEffects.empty());
-
-        // copy basic members (int's, real's)
-        memcpy( this, &oth, (uchar *)(&oth.mFrames) - (uchar *)(&oth) );
-        // copy complex members
-        mFrames  = oth.mFrames;
-		mFramePtrs = oth.mFramePtrs;
-        mName    = oth.mName;
-        mEffects = oth.mEffects;
-
-        mTextureNameAlias = oth.mTextureNameAlias;
-		mCompositorRefName = oth.mCompositorRefName;
-		mCompositorRefTexName = oth.mCompositorRefTexName;
-
-        // Load immediately if Material loaded
-        if (isLoaded())
-        {
-            _load();
-        }
-
         return *this;
         return *this;
-    }
-    //-----------------------------------------------------------------------
-    const String& TextureUnitState::getTextureName(void) const
-    {
-        // Return name of current frame
-        if (mCurrentFrame < mFrames.size())
-            return mFrames[mCurrentFrame];
-        else
-            return StringUtil::BLANK;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureName( const String& name, TextureType texType)
-    {
-		setContentType(CONTENT_NAMED);
-		mTextureLoadFailed = false;
-
-		if (texType == TEX_TYPE_CUBE_MAP)
-        {
-            // delegate to cubic texture implementation
-            setCubicTextureName(name, true);
-        }
-        else
-        {
-            mFrames.resize(1);
-			mFramePtrs.resize(1);
-            mFrames[0] = name;
-			mFramePtrs[0] = nullptr;
-			// defer load until used, so don't grab pointer yet
-            mCurrentFrame = 0;
-            mCubic = false;
-            mTextureType = texType;
-            if (name.empty())
-            {
-                return;
-            }
-
-            
-            // Load immediately ?
-            if (isLoaded())
-            {
-                _load(); // reload
-            }
-        }
-
     }
     }
 	//-----------------------------------------------------------------------
 	//-----------------------------------------------------------------------
 	void TextureUnitState::setBindingType(TextureUnitState::BindingType bt)
 	void TextureUnitState::setBindingType(TextureUnitState::BindingType bt)
@@ -206,258 +76,21 @@ namespace Ogre {
 	{
 	{
 		return mBindingType;
 		return mBindingType;
 	}
 	}
-	//-----------------------------------------------------------------------
-	void TextureUnitState::setContentType(TextureUnitState::ContentType ct)
-	{
-		mContentType = ct;
-		if (ct == CONTENT_SHADOW || ct == CONTENT_COMPOSITOR)
-		{
-			// Clear out texture frames, not applicable
-			mFrames.clear();
-			// One reference space, set manually through _setTexturePtr
-			mFramePtrs.resize(1);
-			mFramePtrs[0] = nullptr;
-		}
-	}
-	//-----------------------------------------------------------------------
-	TextureUnitState::ContentType TextureUnitState::getContentType(void) const
-	{
-		return mContentType;
-	}
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setCubicTextureName( const String& name, bool forUVW)
-    {
-        if (forUVW)
-        {
-            setCubicTextureName(&name, forUVW);
-        }
-        else
-        {
-			setContentType(CONTENT_NAMED);
-			mTextureLoadFailed = false;
-            String ext;
-            String suffixes[6] = {"_fr", "_bk", "_lf", "_rt", "_up", "_dn"};
-            String baseName;
-            String fullNames[6];
-
-            size_t pos = name.find_last_of(".");
-			if( pos != String::npos )
-			{
-				baseName = name.substr(0, pos);
-				ext = name.substr(pos);
-			}
-			else
-				baseName = name;
-
-            for (int i = 0; i < 6; ++i)
-            {
-                fullNames[i] = baseName + suffixes[i] + ext;
-            }
-
-            setCubicTextureName(fullNames, forUVW);
-        }
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setCubicTextureName(const String* const names, bool forUVW)
-    {
-		setContentType(CONTENT_NAMED);
-		mTextureLoadFailed = false;
-        mFrames.resize(forUVW ? 1 : 6);
-		// resize pointers, but don't populate until asked for
-        mFramePtrs.resize(forUVW ? 1 : 6);
-		mAnimDuration = 0;
-        mCurrentFrame = 0;
-        mCubic = true;
-        mTextureType = forUVW ? TEX_TYPE_CUBE_MAP : TEX_TYPE_2D;
-
-        for (unsigned int i = 0; i < mFrames.size(); ++i)
-        {
-            mFrames[i] = names[i];
-			mFramePtrs[i] = nullptr;
-        }
-    }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     bool TextureUnitState::isCubic(void) const
     bool TextureUnitState::isCubic(void) const
     {
     {
-        return mCubic;
+        return mTextureType == TEX_TYPE_CUBE_MAP;
     }
     }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     bool TextureUnitState::is3D(void) const
     bool TextureUnitState::is3D(void) const
     {
     {
-        return mTextureType == TEX_TYPE_CUBE_MAP;
+        return mTextureType == TEX_TYPE_3D;
     }
     }
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     TextureType TextureUnitState::getTextureType(void) const
     TextureType TextureUnitState::getTextureType(void) const
     {
     {
         return mTextureType;
         return mTextureType;
-
-    }
-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setFrameTextureName(const String& name, unsigned int frameNumber)
-    {
-		mTextureLoadFailed = false;
-        if (frameNumber < mFrames.size())
-        {
-            mFrames[frameNumber] = name;
-			// reset pointer (don't populate until requested)
-			mFramePtrs[frameNumber] = nullptr;
-
-            if (isLoaded())
-            {
-                _load(); // reload
-            }
-        }
-        else // raise exception for frameNumber out of bounds
-        {
-            OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "frameNumber paramter value exceeds number of stored frames.",
-                "TextureUnitState::setFrameTextureName");
-        }
-    }
-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::addFrameTextureName(const String& name)
-    {
-		setContentType(CONTENT_NAMED);
-		mTextureLoadFailed = false;
-
-        mFrames.push_back(name);
-		// Add blank pointer, load on demand
-		mFramePtrs.push_back(TexturePtr());
-
-        // Load immediately if Material loaded
-        if (isLoaded())
-        {
-            _load();
-        }
-    }
-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::deleteFrameTextureName(const size_t frameNumber)
-    {
-		mTextureLoadFailed = false;
-        if (frameNumber < mFrames.size())
-        {
-            mFrames.erase(mFrames.begin() + frameNumber);
-            mFramePtrs.erase(mFramePtrs.begin() + frameNumber);
-
-            if (isLoaded())
-            {
-                _load();
-            }
-        }
-        else
-        {
-            OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "frameNumber paramter value exceeds number of stored frames.",
-                "TextureUnitState::deleteFrameTextureName");
-        }
-    }
-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setAnimatedTextureName( const String& name, unsigned int numFrames, Real duration)
-    {
-		setContentType(CONTENT_NAMED);
-		mTextureLoadFailed = false;
-
-		String ext;
-        String baseName;
-
-        size_t pos = name.find_last_of(".");
-        baseName = name.substr(0, pos);
-        ext = name.substr(pos);
-
-        mFrames.resize(numFrames);
-		// resize pointers, but don't populate until needed
-        mFramePtrs.resize(numFrames);
-        mAnimDuration = duration;
-        mCurrentFrame = 0;
-        mCubic = false;
-
-        for (unsigned int i = 0; i < mFrames.size(); ++i)
-        {
-			StringUtil::StrStreamType str;
-            str << baseName << "_" << i << ext;
-            mFrames[i] = str.str();
-			mFramePtrs[i] = nullptr;
-        }
-
-        // Load immediately if Material loaded
-        if (isLoaded())
-        {
-            _load();
-        }
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setAnimatedTextureName(const String* const names, unsigned int numFrames, Real duration)
-    {
-		setContentType(CONTENT_NAMED);
-		mTextureLoadFailed = false;
-
-		mFrames.resize(numFrames);
-		// resize pointers, but don't populate until needed
-        mFramePtrs.resize(numFrames);
-        mAnimDuration = duration;
-        mCurrentFrame = 0;
-        mCubic = false;
-
-        for (unsigned int i = 0; i < mFrames.size(); ++i)
-        {
-            mFrames[i] = names[i];
-			mFramePtrs[i] = nullptr;
-        }
-
-        // Load immediately if Material loaded
-        if (isLoaded())
-        {
-            _load();
-        }
-    }
-    //-----------------------------------------------------------------------
-    std::pair< size_t, size_t > TextureUnitState::getTextureDimensions( unsigned int frame ) const
-    {
-		
-		TexturePtr tex = _getTexturePtr(frame);
-	    if (tex == nullptr)
-		    OGRE_EXCEPT( Exception::ERR_ITEM_NOT_FOUND, "Could not find texture " + mFrames[ frame ],
-		    "TextureUnitState::getTextureDimensions" );
-
-		return std::pair< size_t, size_t >( tex->getWidth(), tex->getHeight() );
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setCurrentFrame(unsigned int frameNumber)
-    {
-        if (frameNumber < mFrames.size())
-        {
-            mCurrentFrame = frameNumber;
-        }
-        else
-        {
-            OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "frameNumber paramter value exceeds number of stored frames.",
-                "TextureUnitState::setCurrentFrame");
-        }
-
-    }
-    //-----------------------------------------------------------------------
-    unsigned int TextureUnitState::getCurrentFrame(void) const
-    {
-        return mCurrentFrame;
-    }
-    //-----------------------------------------------------------------------
-    unsigned int TextureUnitState::getNumFrames(void) const
-    {
-        return (unsigned int)mFrames.size();
-    }
-    //-----------------------------------------------------------------------
-    const String& TextureUnitState::getFrameTextureName(unsigned int frameNumber) const
-    {
-        if (frameNumber >= mFrames.size())
-        {
-            OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "frameNumber paramter value exceeds number of stored frames.",
-                "TextureUnitState::getFrameTextureName");
-        }
-
-        return mFrames[frameNumber];
-    }
+	}
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
     void TextureUnitState::setDesiredFormat(PixelFormat desiredFormat)
     void TextureUnitState::setDesiredFormat(PixelFormat desiredFormat)
     {
     {
@@ -499,107 +132,6 @@ namespace Ogre {
 		return mHwGamma;
 		return mHwGamma;
 	}
 	}
     //-----------------------------------------------------------------------
     //-----------------------------------------------------------------------
-    unsigned int TextureUnitState::getTextureCoordSet(void) const
-    {
-        return mTextureCoordSetIndex;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureCoordSet(unsigned int set)
-    {
-        mTextureCoordSetIndex = set;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setColourOperationEx(LayerBlendOperationEx op,
-        LayerBlendSource source1,
-        LayerBlendSource source2,
-        const ColourValue& arg1,
-        const ColourValue& arg2,
-        Real manualBlend)
-    {
-        mColourBlendMode.operation = op;
-        mColourBlendMode.source1 = source1;
-        mColourBlendMode.source2 = source2;
-        mColourBlendMode.colourArg1 = arg1;
-        mColourBlendMode.colourArg2 = arg2;
-        mColourBlendMode.factor = manualBlend;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setColourOperation(LayerBlendOperation op)
-    {
-        // Set up the multitexture and multipass blending operations
-        switch (op)
-        {
-        case LBO_REPLACE:
-            setColourOperationEx(LBX_SOURCE1, LBS_TEXTURE, LBS_CURRENT);
-            setColourOpMultipassFallback(SBF_ONE, SBF_ZERO);
-            break;
-        case LBO_ADD:
-            setColourOperationEx(LBX_ADD, LBS_TEXTURE, LBS_CURRENT);
-            setColourOpMultipassFallback(SBF_ONE, SBF_ONE);
-            break;
-        case LBO_MODULATE:
-            setColourOperationEx(LBX_MODULATE, LBS_TEXTURE, LBS_CURRENT);
-            setColourOpMultipassFallback(SBF_DEST_COLOUR, SBF_ZERO);
-            break;
-        case LBO_ALPHA_BLEND:
-            setColourOperationEx(LBX_BLEND_TEXTURE_ALPHA, LBS_TEXTURE, LBS_CURRENT);
-            setColourOpMultipassFallback(SBF_SOURCE_ALPHA, SBF_ONE_MINUS_SOURCE_ALPHA);
-            break;
-        }
-
-
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setColourOpMultipassFallback(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor)
-    {
-        mColourBlendFallbackSrc = sourceFactor;
-        mColourBlendFallbackDest = destFactor;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setAlphaOperation(LayerBlendOperationEx op,
-        LayerBlendSource source1,
-        LayerBlendSource source2,
-        Real arg1,
-        Real arg2,
-        Real manualBlend)
-    {
-        mAlphaBlendMode.operation = op;
-        mAlphaBlendMode.source1 = source1;
-        mAlphaBlendMode.source2 = source2;
-        mAlphaBlendMode.alphaArg1 = arg1;
-        mAlphaBlendMode.alphaArg2 = arg2;
-        mAlphaBlendMode.factor = manualBlend;
-    }
-    //-----------------------------------------------------------------------
-    bool TextureUnitState::isBlank(void) const
-    {
-		if (mFrames.empty())
-			return true;
-		else
-			return mFrames[0].empty() || mTextureLoadFailed;
-    }
-
-    //-----------------------------------------------------------------------
-    SceneBlendFactor TextureUnitState::getColourBlendFallbackSrc(void) const
-    {
-        return mColourBlendFallbackSrc;
-    }
-    //-----------------------------------------------------------------------
-    SceneBlendFactor TextureUnitState::getColourBlendFallbackDest(void) const
-    {
-        return mColourBlendFallbackDest;
-    }
-    //-----------------------------------------------------------------------
-    const LayerBlendModeEx& TextureUnitState::getColourBlendMode(void) const
-    {
-        return mColourBlendMode;
-    }
-    //-----------------------------------------------------------------------
-    const LayerBlendModeEx& TextureUnitState::getAlphaBlendMode(void) const
-    {
-        return mAlphaBlendMode;
-    }
-    //-----------------------------------------------------------------------
     const TextureUnitState::UVWAddressingMode& 
     const TextureUnitState::UVWAddressingMode& 
 	TextureUnitState::getTextureAddressingMode(void) const
 	TextureUnitState::getTextureAddressingMode(void) const
     {
     {
@@ -629,242 +161,6 @@ namespace Ogre {
     {
     {
         mAddressMode = uvw;
         mAddressMode = uvw;
     }
     }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureBorderColour(const ColourValue& colour)
-    {
-        mBorderColour = colour;
-    }
-    //-----------------------------------------------------------------------
-    const ColourValue& TextureUnitState::getTextureBorderColour(void) const
-    {
-        return mBorderColour;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setBlank(void)
-    {
-		setTextureName(StringUtil::BLANK);
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureTransform(const Matrix4& xform)
-    {
-        mTexModMatrix = xform;
-        mRecalcTexMatrix = false;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureScroll(Real u, Real v)
-    {
-        mUMod = u;
-        mVMod = v;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureScale(Real uScale, Real vScale)
-    {
-        mUScale = uScale;
-        mVScale = vScale;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureRotate(const Radian& angle)
-    {
-        mRotate = angle;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    const Matrix4& TextureUnitState::getTextureTransform() const
-    {
-        if (mRecalcTexMatrix)
-            recalcTextureMatrix();
-        return mTexModMatrix;
-
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::recalcTextureMatrix() const
-    {
-        // Assumption: 2D texture coords
-        Matrix4 xform;
-
-        xform = Matrix4::IDENTITY;
-        if (mUScale != 1 || mVScale != 1)
-        {
-            // Offset to center of texture
-            xform[0][0] = 1/mUScale;
-            xform[1][1] = 1/mVScale;
-            // Skip matrix concat since first matrix update
-            xform[0][3] = (-0.5f * xform[0][0]) + 0.5f;
-            xform[1][3] = (-0.5f * xform[1][1]) + 0.5f;
-        }
-
-        if (mUMod || mVMod)
-        {
-            Matrix4 xlate = Matrix4::IDENTITY;
-
-            xlate[0][3] = mUMod;
-            xlate[1][3] = mVMod;
-
-            xform = xlate * xform;
-        }
-
-        if (mRotate != Radian(0))
-        {
-            Matrix4 rot = Matrix4::IDENTITY;
-            Radian theta ( mRotate );
-            Real cosTheta = Math::Cos(theta);
-            Real sinTheta = Math::Sin(theta);
-
-            rot[0][0] = cosTheta;
-            rot[0][1] = -sinTheta;
-            rot[1][0] = sinTheta;
-            rot[1][1] = cosTheta;
-            // Offset center of rotation to center of texture
-            rot[0][3] = 0.5f + ( (-0.5f * cosTheta) - (-0.5f * sinTheta) );
-            rot[1][3] = 0.5f + ( (-0.5f * sinTheta) + (-0.5f * cosTheta) );
-
-            xform = rot * xform;
-        }
-
-        mTexModMatrix = xform;
-        mRecalcTexMatrix = false;
-
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureUScroll(Real value)
-    {
-        mUMod = value;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureVScroll(Real value)
-    {
-        mVMod = value;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureUScale(Real value)
-    {
-        mUScale = value;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureVScale(Real value)
-    {
-        mVScale = value;
-        mRecalcTexMatrix = true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::_prepare(void)
-    {
-        // Unload first
-        //_unload();
-
-        // Load textures
-		for (unsigned int i = 0; i < mFrames.size(); ++i)
-		{
-			ensurePrepared(i);
-		}
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::_load(void)
-    {
-
-        // Load textures
-		for (unsigned int i = 0; i < mFrames.size(); ++i)
-		{
-			ensureLoaded(i);
-		}
-    }
-    //-----------------------------------------------------------------------
-	const TexturePtr& TextureUnitState::_getTexturePtr(void) const
-	{
-		return _getTexturePtr(mCurrentFrame);
-	}
-    //-----------------------------------------------------------------------
-	const TexturePtr& TextureUnitState::_getTexturePtr(size_t frame) const
-	{
-		if (mContentType == CONTENT_NAMED)
-		{
-			if (frame < mFrames.size() && !mTextureLoadFailed)
-			{
-				ensureLoaded(frame);
-				return mFramePtrs[frame];
-			}
-			else
-			{
-				// Silent fail with empty texture for internal method
-				static TexturePtr nullTexPtr;
-				return nullTexPtr;
-			}
-		}
-		else
-		{
-			// Manually bound texture, no name or loading
-			assert(frame < mFramePtrs.size());
-			return mFramePtrs[frame];
-
-		}
-		
-	}
-	//-----------------------------------------------------------------------
-	void TextureUnitState::_setTexturePtr(const TexturePtr& texptr)
-	{
-		_setTexturePtr(texptr, mCurrentFrame);
-	}
-	//-----------------------------------------------------------------------
-	void TextureUnitState::_setTexturePtr(const TexturePtr& texptr, size_t frame)
-	{
-		assert(frame < mFramePtrs.size());
-		mFramePtrs[frame] = texptr;
-	}
-    //-----------------------------------------------------------------------
-	void TextureUnitState::ensurePrepared(size_t frame) const
-	{
-	}
-    //-----------------------------------------------------------------------
-	void TextureUnitState::ensureLoaded(size_t frame) const
-	{
-	}
-    //-----------------------------------------------------------------------
-	Real TextureUnitState::getTextureUScroll(void) const
-    {
-		return mUMod;
-    }
-
-	//-----------------------------------------------------------------------
-	Real TextureUnitState::getTextureVScroll(void) const
-    {
-		return mVMod;
-    }
-
-	//-----------------------------------------------------------------------
-	Real TextureUnitState::getTextureUScale(void) const
-    {
-		return mUScale;
-    }
-
-	//-----------------------------------------------------------------------
-	Real TextureUnitState::getTextureVScale(void) const
-    {
-		return mVScale;
-    }
-
-	//-----------------------------------------------------------------------
-	const Radian& TextureUnitState::getTextureRotate(void) const
-    {
-		return mRotate;
-    }
-	
-	//-----------------------------------------------------------------------
-	Real TextureUnitState::getAnimationDuration(void) const
-	{
-		return mAnimDuration;
-	}
-
-	//-----------------------------------------------------------------------
-	const TextureUnitState::EffectMap& TextureUnitState::getEffects(void) const
-	{
-		return mEffects;
-	}
-
 	//-----------------------------------------------------------------------
 	//-----------------------------------------------------------------------
 	void TextureUnitState::setTextureFiltering(TextureFilterOptions filterType)
 	void TextureUnitState::setTextureFiltering(TextureFilterOptions filterType)
 	{
 	{
@@ -938,124 +234,4 @@ namespace Ogre {
 	{
 	{
         return mMaxAniso;
         return mMaxAniso;
 	}
 	}
-
-	//-----------------------------------------------------------------------
-    void TextureUnitState::_unprepare(void)
-    {
-        // Unreference textures
-        vector<TexturePtr>::type::iterator ti, tiend;
-        tiend = mFramePtrs.end();
-        for (ti = mFramePtrs.begin(); ti != tiend; ++ti)
-        {
-            (*ti) = nullptr;
-        }
-    }
-	//-----------------------------------------------------------------------
-    void TextureUnitState::_unload(void)
-    {
-        // Unreference but don't unload textures. may be used elsewhere
-        vector<TexturePtr>::type::iterator ti, tiend;
-        tiend = mFramePtrs.end();
-        for (ti = mFramePtrs.begin(); ti != tiend; ++ti)
-        {
-            (*ti) = nullptr;
-        }
-    }
-    //-----------------------------------------------------------------------------
-    bool TextureUnitState::isLoaded(void) const
-    {
-        return true;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::_notifyNeedsRecompile(void)
-    {
-
-    }
-    //-----------------------------------------------------------------------
-    bool TextureUnitState::hasViewRelativeTextureCoordinateGeneration(void) const
-    {
-        // Right now this only returns true for reflection maps
-
-        EffectMap::const_iterator i, iend;
-        iend = mEffects.end();
-        
-        for(i = mEffects.find(ET_ENVIRONMENT_MAP); i != iend; ++i)
-        {
-            if (i->second.subtype == ENV_REFLECTION)
-                return true;
-        }
-        for(i = mEffects.find(ET_PROJECTIVE_TEXTURE); i != iend; ++i)
-        {
-            return true;
-        }
-
-        return false;
-    }
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setName(const String& name)
-    {
-        mName = name;
-		if (mTextureNameAlias.empty())
-			mTextureNameAlias = mName;
-    }
-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::setTextureNameAlias(const String& name)
-    {
-        mTextureNameAlias = name;
-    }
-
-    //-----------------------------------------------------------------------
-    bool TextureUnitState::applyTextureAliases(const AliasTextureNamePairList& aliasList, const bool apply)
-    {
-        bool testResult = false;
-        // if TUS has an alias see if its in the alias container
-        if (!mTextureNameAlias.empty())
-        {
-            AliasTextureNamePairList::const_iterator aliasEntry =
-                aliasList.find(mTextureNameAlias);
-
-            if (aliasEntry != aliasList.end())
-            {
-                // match was found so change the texture name in mFrames
-                testResult = true;
-
-                if (apply)
-                {
-                    // currently assumes animated frames are sequentially numbered
-                    // cubic, 1d, 2d, and 3d textures are determined from current TUS state
-                    
-                    // if cubic or 3D
-                    if (mCubic)
-                    {
-                        setCubicTextureName(aliasEntry->second, mTextureType == TEX_TYPE_CUBE_MAP);
-                    }
-                    else
-                    {
-                        // if more than one frame then assume animated frames
-                        if (mFrames.size() > 1)
-                            setAnimatedTextureName(aliasEntry->second, 
-								static_cast<unsigned int>(mFrames.size()), mAnimDuration);
-                        else
-                            setTextureName(aliasEntry->second, mTextureType);
-                    }
-                }
-                
-            }
-        }
-
-        return testResult;
-    }
-	//-----------------------------------------------------------------------------
-	void TextureUnitState::_notifyParent(Pass* parent)
-	{
-		mParent = parent;
-	}
-	//-----------------------------------------------------------------------------
-	void TextureUnitState::setCompositorReference(const String& compositorName, const String& textureName, size_t mrtIndex)
-	{  
-		mCompositorRefName = compositorName; 
-		mCompositorRefTexName = textureName; 
-		mCompositorRefMrtIndex = mrtIndex; 
-	}
 }
 }

+ 2 - 775
CamelotRenderer/OgreTextureUnitState.h

@@ -62,60 +62,6 @@ namespace Ogre {
     {
     {
         friend class RenderSystem;
         friend class RenderSystem;
     public:
     public:
-        /** Definition of the broad types of texture effect you can apply to a texture unit.
-        @note
-            Note that these have no effect when using the programmable pipeline, since their
-            effect is overridden by the vertex / fragment programs.
-        */
-        enum TextureEffectType
-        {
-            /// Generate all texture coords based on angle between camera and vertex
-            ET_ENVIRONMENT_MAP,
-            /// Generate texture coords based on a frustum
-            ET_PROJECTIVE_TEXTURE,
-            /// Constant u/v scrolling effect
-            ET_UVSCROLL,
-			/// Constant u scrolling effect
-            ET_USCROLL,
-			/// Constant u/v scrolling effect
-            ET_VSCROLL,
-            /// Constant rotation
-            ET_ROTATE,
-            /// More complex transform
-            ET_TRANSFORM
-
-        };
-
-        /** Enumeration to specify type of envmap.
-        @note
-            Note that these have no effect when using the programmable pipeline, since their
-            effect is overridden by the vertex / fragment programs.
-        */
-        enum EnvMapType
-        {
-            /// Envmap based on vector from camera to vertex position, good for planar geometry
-            ENV_PLANAR,
-            /// Envmap based on dot of vector from camera to vertex and vertex normal, good for curves
-            ENV_CURVED,
-            /// Envmap intended to supply reflection vectors for cube mapping
-            ENV_REFLECTION,
-            /// Envmap intended to supply normal vectors for cube mapping
-            ENV_NORMAL
-        };
-
-        /** Useful enumeration when dealing with procedural transforms.
-        @note
-            Note that these have no effect when using the programmable pipeline, since their
-            effect is overridden by the vertex / fragment programs.
-        */
-        enum TextureTransformType
-        {
-            TT_TRANSLATE_U,
-            TT_TRANSLATE_V,
-            TT_SCALE_U,
-            TT_SCALE_V,
-            TT_ROTATE
-        };
 
 
         /** Texture addressing modes - default is TAM_WRAP.
         /** Texture addressing modes - default is TAM_WRAP.
         @note
         @note
@@ -152,29 +98,11 @@ namespace Ogre {
             CUBE_DOWN = 5
             CUBE_DOWN = 5
         };
         };
 
 
-        /** Internal structure defining a texture effect.
-        */
-        struct TextureEffect {
-            TextureEffectType type;
-            int subtype;
-            Real arg1, arg2;
-            WaveformType waveType;
-            Real base;
-            Real frequency;
-            Real phase;
-            Real amplitude;
-            const Frustum* frustum;
-        };
-
-        /** Texture effects in a multimap paired array
-        */
-        typedef multimap<TextureEffectType, TextureEffect>::type EffectMap;
-
         /** Default constructor.
         /** Default constructor.
         */
         */
-        TextureUnitState(Pass* parent);
+        TextureUnitState(TextureType type);
 
 
-        TextureUnitState(Pass* parent, const TextureUnitState& oth );
+        TextureUnitState(const TextureUnitState& oth );
 
 
         TextureUnitState & operator = ( const TextureUnitState& oth );
         TextureUnitState & operator = ( const TextureUnitState& oth );
 
 
@@ -182,229 +110,6 @@ namespace Ogre {
         */
         */
         ~TextureUnitState();
         ~TextureUnitState();
 
 
-        /** Name-based constructor.
-        @param
-        name The basic name of the texture e.g. brickwall.jpg, stonefloor.png
-        @param
-        texCoordSet The index of the texture coordinate set to use.
-        */
-		TextureUnitState( Pass* parent, const String& texName, unsigned int texCoordSet = 0);
-
-        /** Get the name of current texture image for this layer.
-        @remarks
-        This will either always be a single name for this layer,
-        or will be the name of the current frame for an animated
-        or otherwise multi-frame texture.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        const String& getTextureName(void) const;
-
-        /** Sets this texture layer to use a single texture, given the
-        name of the texture to use on this layer.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void setTextureName( const String& name, TextureType ttype = TEX_TYPE_2D);
-
-		/** Sets this texture layer to use a combination of 6 texture maps, each one relating to a face of a cube.
-        @remarks
-        Cubic textures are made up of 6 separate texture images. Each one of these is an orthoganal view of the
-        world with a FOV of 90 degrees and an aspect ratio of 1:1. You can generate these from 3D Studio by
-        rendering a scene to a reflection map of a transparent cube and saving the output files.
-        @par
-        Cubic maps can be used either for skyboxes (complete wrap-around skies, like space) or as environment
-        maps to simulate reflections. The system deals with these 2 scenarios in different ways:
-        <ol>
-        <li>
-        <p>
-        for cubic environment maps, the 6 textures are combined into a single 'cubic' texture map which
-        is then addressed using 3D texture coordinates. This is required because you don't know what
-        face of the box you're going to need to address when you render an object, and typically you
-        need to reflect more than one face on the one object, so all 6 textures are needed to be
-        'active' at once. Cubic environment maps are enabled by calling this method with the forUVW
-        parameter set to true, and then calling setEnvironmentMap(true).
-        </p>
-        <p>
-        Note that not all cards support cubic environment mapping.
-        </p>
-        </li>
-        <li>
-        <p>
-        for skyboxes, the 6 textures are kept separate and used independently for each face of the skybox.
-        This is done because not all cards support 3D cubic maps and skyboxes do not need to use 3D
-        texture coordinates so it is simpler to render each face of the box with 2D coordinates, changing
-        texture between faces.
-        </p>
-        <p>
-        Skyboxes are created by calling SceneManager::setSkyBox.
-        </p>
-        </li>
-        </ul>
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        @param
-        name The basic name of the texture e.g. brickwall.jpg, stonefloor.png. There must be 6 versions
-        of this texture with the suffixes _fr, _bk, _up, _dn, _lf, and _rt (before the extension) which
-        make up the 6 sides of the box. The textures must all be the same size and be powers of 2 in width & height.
-        If you can't make your texture names conform to this, use the alternative method of the same name which takes
-        an array of texture names instead.
-        @param
-        forUVW Set to true if you want a single 3D texture addressable with 3D texture coordinates rather than
-        6 separate textures. Useful for cubic environment mapping.
-        */
-        void setCubicTextureName( const String& name, bool forUVW = false );
-
-        /** Sets this texture layer to use a combination of 6 texture maps, each one relating to a face of a cube.
-        @remarks
-        Cubic textures are made up of 6 separate texture images. Each one of these is an orthoganal view of the
-        world with a FOV of 90 degrees and an aspect ratio of 1:1. You can generate these from 3D Studio by
-        rendering a scene to a reflection map of a transparent cube and saving the output files.
-        @par
-        Cubic maps can be used either for skyboxes (complete wrap-around skies, like space) or as environment
-        maps to simulate reflections. The system deals with these 2 scenarios in different ways:
-        <ol>
-        <li>
-        <p>
-        for cubic environment maps, the 6 textures are combined into a single 'cubic' texture map which
-        is then addressed using 3D texture coordinates. This is required because you don't know what
-        face of the box you're going to need to address when you render an object, and typically you
-        need to reflect more than one face on the one object, so all 6 textures are needed to be
-        'active' at once. Cubic environment maps are enabled by calling this method with the forUVW
-        parameter set to true, and then calling setEnvironmentMap(true).
-        </p>
-        <p>
-        Note that not all cards support cubic environment mapping.
-        </p>
-        </li>
-        <li>
-        <p>
-        for skyboxes, the 6 textures are kept separate and used independently for each face of the skybox.
-        This is done because not all cards support 3D cubic maps and skyboxes do not need to use 3D
-        texture coordinates so it is simpler to render each face of the box with 2D coordinates, changing
-        texture between faces.
-        </p>
-        <p>
-        Skyboxes are created by calling SceneManager::setSkyBox.
-        </p>
-        </li>
-        </ul>
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        @param
-        name The basic name of the texture e.g. brickwall.jpg, stonefloor.png. There must be 6 versions
-        of this texture with the suffixes _fr, _bk, _up, _dn, _lf, and _rt (before the extension) which
-        make up the 6 sides of the box. The textures must all be the same size and be powers of 2 in width & height.
-        If you can't make your texture names conform to this, use the alternative method of the same name which takes
-        an array of texture names instead.
-        @param
-        forUVW Set to true if you want a single 3D texture addressable with 3D texture coordinates rather than
-        6 separate textures. Useful for cubic environment mapping.
-        */
-        void setCubicTextureName( const String* const names, bool forUVW = false );
-
-        /** Sets the names of the texture images for an animated texture.
-        @remarks
-        Animated textures are just a series of images making up the frames of the animation. All the images
-        must be the same size, and their names must have a frame number appended before the extension, e.g.
-        if you specify a name of "wall.jpg" with 3 frames, the image names must be "wall_0.jpg", "wall_1.jpg"
-        and "wall_2.jpg".
-        @par
-        You can change the active frame on a texture layer by calling the setCurrentFrame method.
-        @note
-        If you can't make your texture images conform to the naming standard layed out here, you
-        can call the alternative setAnimatedTextureName method which takes an array of names instead.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        @param
-        name The base name of the textures to use e.g. wall.jpg for frames wall_0.jpg, wall_1.jpg etc.
-        @param
-        numFrames The number of frames in the sequence.
-        @param
-        duration The length of time it takes to display the whole animation sequence, in seconds.
-        If 0, no automatic transition occurs.
-        */
-        void setAnimatedTextureName( const String& name, unsigned int numFrames, Real duration = 0 );
-
-        /** Sets the names of the texture images for an animated texture.
-        @remarks
-        This an alternative method to the one where you specify a single name and let the system derive
-        the names of each frame, incase your images can't conform to this naming standard.
-        @par
-        Animated textures are just a series of images making up the frames of the animation. All the images
-        must be the same size, and you must provide their names as an array in the first parameter.
-        You can change the active frame on a texture layer by calling the setCurrentFrame method.
-        @note
-        If you can make your texture images conform to a naming standard of basicName_frame.ext, you
-        can call the alternative setAnimatedTextureName method which just takes a base name instead.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        @param
-        names Pointer to array of names of the textures to use, in frame order.
-        @param
-        numFrames The number of frames in the sequence.
-        @param
-        duration The length of time it takes to display the whole animation sequence, in seconds.
-        If 0, no automatic transition occurs.
-        */
-        void setAnimatedTextureName( const String* const names, unsigned int numFrames, Real duration = 0 );
-
-        /** Returns the width and height of the texture in the given frame.
-        */
-        std::pair< size_t, size_t > getTextureDimensions( unsigned int frame = 0 ) const;
-
-        /** Changes the active frame in an animated or multi-image texture.
-        @remarks
-        An animated texture (or a cubic texture where the images are not combined for 3D use) is made up of
-        a number of frames. This method sets the active frame.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void setCurrentFrame( unsigned int frameNumber );
-
-        /** Gets the active frame in an animated or multi-image texture layer.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        unsigned int getCurrentFrame(void) const;
-
-        /** Gets the name of the texture associated with a frame number.
-            Throws an exception if frameNumber exceeds the number of stored frames.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        const String& getFrameTextureName(unsigned int frameNumber) const;
-
-        /** Sets the name of the texture associated with a frame.
-        @param name The name of the texture
-        @param frameNumber The frame the texture name is to be placed in
-        @note
-        Throws an exception if frameNumber exceeds the number of stored frames.
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void setFrameTextureName(const String& name, unsigned int frameNumber);
-
-        /** Add a Texture name to the end of the frame container.
-        @param name The name of the texture
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void addFrameTextureName(const String& name);
-        /** deletes a specific texture frame.  The texture used is not deleted but the
-            texture will no longer be used by the Texture Unit.  An exception is raised
-            if the frame number exceeds the number of actual frames.
-        @param frameNumber The frame number of the texture to be deleted.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void deleteFrameTextureName(const size_t frameNumber);
-        /** Gets the number of frames for a texture.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        unsigned int getNumFrames(void) const;
-
-
 		/** The type of unit to bind the texture settings to. */
 		/** The type of unit to bind the texture settings to. */
 		enum BindingType
 		enum BindingType
 		{
 		{
@@ -415,17 +120,6 @@ namespace Ogre {
 			*/
 			*/
 			BT_VERTEX = 1
 			BT_VERTEX = 1
 		};
 		};
-		/** Enum identifying the type of content this texture unit contains.
-		*/
-		enum ContentType
-		{
-			/// Normal texture identified by name
-			CONTENT_NAMED = 0,
-			/// A shadow texture, automatically bound by engine
-			CONTENT_SHADOW = 1,
-			/// A compositor texture, automatically linked to active viewport's chain
-			CONTENT_COMPOSITOR = 2
-		};
 
 
 		/** Sets the type of unit these texture settings should be bound to. 
 		/** Sets the type of unit these texture settings should be bound to. 
 		@remarks
 		@remarks
@@ -442,15 +136,6 @@ namespace Ogre {
 		*/
 		*/
 		BindingType getBindingType(void) const;
 		BindingType getBindingType(void) const;
 
 
-		/** Set the type of content this TextureUnitState references.
-		@remarks
-			The default is to reference a standard named texture, but this unit
-			can also reference automated content like a shadow texture.
-		*/
-		void setContentType(ContentType ct);
-		/** Get the type of content this TextureUnitState references. */
-		ContentType getContentType(void) const;
-
         /** Returns true if this texture unit is either a series of 6 2D textures, each
         /** Returns true if this texture unit is either a series of 6 2D textures, each
             in it's own frame, or is a full 3D cube map. You can tell which by checking
             in it's own frame, or is a full 3D cube map. You can tell which by checking
             getTextureType.
             getTextureType.
@@ -500,121 +185,6 @@ namespace Ogre {
 		/// @copydoc Texture::isHardwareGammaEnabled
 		/// @copydoc Texture::isHardwareGammaEnabled
 		bool isHardwareGammaEnabled() const;
 		bool isHardwareGammaEnabled() const;
 
 
-        /** Gets the index of the set of texture co-ords this layer uses.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        unsigned int getTextureCoordSet(void) const;
-
-        /** Sets the index of the set of texture co-ords this layer uses.
-        @note
-        Default is 0 for all layers. Only change this if you have provided multiple texture co-ords per
-        vertex.
-        @note
-        Applies to both fixed-function and programmable pipeline.
-        */
-        void setTextureCoordSet(unsigned int set);
-
-        /** Sets a matrix used to transform any texture coordinates on this layer.
-        @remarks
-        Texture coordinates can be modified on a texture layer to create effects like scrolling
-        textures. A texture transform can either be applied to a layer which takes the source coordinates
-        from a fixed set in the geometry, or to one which generates them dynamically (e.g. environment mapping).
-        @par
-        It's obviously a bit impractical to create scrolling effects by calling this method manually since you
-        would have to call it every framw with a slight alteration each time, which is tedious. Instead
-        you can use the ControllerManager class to create a Controller object which will manage the
-        effect over time for you. See the ControllerManager::createTextureScroller and it's sibling methods for details.<BR>
-        In addition, if you want to set the individual texture transformations rather than concatenating them
-        yourself, use setTextureScroll, setTextureScale and setTextureRotate.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        void setTextureTransform(const Matrix4& xform);
-
-        /** Gets the current texture transformation matrix.
-        @remarks
-        Causes a reclaculation of the matrix if any parameters have been changed via
-        setTextureScroll, setTextureScale and setTextureRotate.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        const Matrix4& getTextureTransform(void) const;
-
-        /** Sets the translation offset of the texture, ie scrolls the texture.
-        @remarks
-        This method sets the translation element of the texture transformation, and is easier to use than setTextureTransform if
-        you are combining translation, scaling and rotation in your texture transformation. Again if you want
-        to animate these values you need to use a Controller
-        @note
-        Has no effect in the programmable pipeline.
-        @param u The amount the texture should be moved horizontally (u direction).
-        @param v The amount the texture should be moved vertically (v direction).
-        @see
-        ControllerManager, Controller
-        */
-        void setTextureScroll(Real u, Real v);
-
-        /** As setTextureScroll, but sets only U value.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        void setTextureUScroll(Real value);
-        // get texture uscroll value
-        Real getTextureUScroll(void) const;
-
-        /** As setTextureScroll, but sets only V value.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        void setTextureVScroll(Real value);
-        // get texture vscroll value
-        Real getTextureVScroll(void) const;
-
-        /** As setTextureScale, but sets only U value.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        void setTextureUScale(Real value);
-        // get texture uscale value
-        Real getTextureUScale(void) const;
-
-        /** As setTextureScale, but sets only V value.
-        @note
-        Has no effect in the programmable pipeline.
-        */
-        void setTextureVScale(Real value);
-        // get texture vscale value
-        Real getTextureVScale(void) const;
-
-        /** Sets the scaling factor applied to texture coordinates.
-        @remarks
-        This method sets the scale element of the texture transformation, and is easier to use than
-        setTextureTransform if you are combining translation, scaling and rotation in your texture transformation. Again if you want
-        to animate these values you need to use a Controller (see ControllerManager and it's methods for
-        more information).
-        @note
-        Has no effect in the programmable pipeline.
-        @param
-        uScale The value by which the texture is to be scaled horizontally.
-        @param
-        vScale The value by which the texture is to be scaled vertically.
-        */
-        void setTextureScale(Real uScale, Real vScale);
-
-        /** Sets the anticlockwise rotation factor applied to texture coordinates.
-        @remarks
-        This sets a fixed rotation angle - if you wish to animate this, see the
-        ControllerManager::createTextureRotater method.
-        @note
-        Has no effect in the programmable pipeline.
-        @param
-        angle The angle of rotation (anticlockwise).
-        */
-        void setTextureRotate(const Radian& angle);
-        // get texture rotation effects angle value
-        const Radian& getTextureRotate(void) const;
-
         /** Gets the texture addressing mode for a given coordinate, 
         /** Gets the texture addressing mode for a given coordinate, 
 		 	i.e. what happens at uv values above 1.0.
 		 	i.e. what happens at uv values above 1.0.
         @note
         @note
@@ -650,209 +220,6 @@ namespace Ogre {
 		*/
 		*/
         void setTextureAddressingMode( const UVWAddressingMode& uvw);
         void setTextureAddressingMode( const UVWAddressingMode& uvw);
 
 
-        /** Sets the texture border colour.
-        @note
-            The default is ColourValue::Black, and this value only used when addressing mode
-            is TAM_BORDER.
-        @note
-            This applies for both the fixed-function and programmable pipelines.
-		*/
-        void setTextureBorderColour(const ColourValue& colour);
-
-        /** Sets the texture border colour.
-        @note
-            The default is ColourValue::Black, and this value only used when addressing mode
-            is TAM_BORDER.
-		*/
-        const ColourValue& getTextureBorderColour(void) const;
-
-		/** Setting advanced blending options.
-        @remarks
-        This is an extended version of the TextureUnitState::setColourOperation method which allows
-        extremely detailed control over the blending applied between this and earlier layers.
-        See the IMPORTANT note below about the issues between mulitpass and multitexturing that
-        using this method can create.
-        @par
-        Texture colour operations determine how the final colour of the surface appears when
-        rendered. Texture units are used to combine colour values from various sources (ie. the
-        diffuse colour of the surface from lighting calculations, combined with the colour of
-        the texture). This method allows you to specify the 'operation' to be used, ie. the
-        calculation such as adds or multiplies, and which values to use as arguments, such as
-        a fixed value or a value from a previous calculation.
-        @par
-        The defaults for each layer are:
-        <ul>
-        <li>op = LBX_MODULATE</li>
-        <li>source1 = LBS_TEXTURE</li>
-        <li>source2 = LBS_CURRENT</li>
-        </ul>
-        ie. each layer takes the colour results of the previous layer, and multiplies them
-        with the new texture being applied. Bear in mind that colours are RGB values from
-        0.0 - 1.0 so multiplying them together will result in values in the same range,
-        'tinted' by the multiply. Note however that a straight multiply normally has the
-        effect of darkening the textures - for this reason there are brightening operations
-        like LBO_MODULATE_X2. See the LayerBlendOperation and LayerBlendSource enumerated
-        types for full details.
-        @note
-        Because of the limitations on some underlying APIs (Direct3D included)
-        the LBS_TEXTURE argument can only be used as the first argument, not the second.
-        @par
-        The final 3 parameters are only required if you decide to pass values manually
-        into the operation, i.e. you want one or more of the inputs to the colour calculation
-        to come from a fixed value that you supply. Hence you only need to fill these in if
-        you supply LBS_MANUAL to the corresponding source, or use the LBX_BLEND_MANUAL
-        operation.
-        @warning
-        Ogre tries to use multitexturing hardware to blend texture layers
-        together. However, if it runs out of texturing units (e.g. 2 of a GeForce2, 4 on a
-        GeForce3) it has to fall back on multipass rendering, i.e. rendering the same object
-        multiple times with different textures. This is both less efficient and there is a smaller
-        range of blending operations which can be performed. For this reason, if you use this method
-        you MUST also call TextureUnitState::setColourOpMultipassFallback to specify which effect you
-        want to fall back on if sufficient hardware is not available.
-        @note
-        This has no effect in the programmable pipeline.
-        @param
-        If you wish to avoid having to do this, use the simpler TextureUnitState::setColourOperation method
-        which allows less flexible blending options but sets up the multipass fallback automatically,
-        since it only allows operations which have direct multipass equivalents.
-        @param
-        op The operation to be used, e.g. modulate (multiply), add, subtract
-        @param
-        source1 The source of the first colour to the operation e.g. texture colour
-        @param
-        source2 The source of the second colour to the operation e.g. current surface colour
-        @param
-        arg1 Manually supplied colour value (only required if source1 = LBS_MANUAL)
-        @param
-        arg2 Manually supplied colour value (only required if source2 = LBS_MANUAL)
-        @param
-        manualBlend Manually supplied 'blend' value - only required for operations
-        which require manual blend e.g. LBX_BLEND_MANUAL
-        */
-        void setColourOperationEx(
-            LayerBlendOperationEx op,
-            LayerBlendSource source1 = LBS_TEXTURE,
-            LayerBlendSource source2 = LBS_CURRENT,
-
-            const ColourValue& arg1 = ColourValue::White,
-            const ColourValue& arg2 = ColourValue::White,
-
-            Real manualBlend = 0.0);
-
-        /** Determines how this texture layer is combined with the one below it (or the diffuse colour of
-        the geometry if this is layer 0).
-        @remarks
-        This method is the simplest way to blend tetxure layers, because it requires only one parameter,
-        gives you the most common blending types, and automatically sets up 2 blending methods: one for
-        if single-pass multitexturing hardware is available, and another for if it is not and the blending must
-        be achieved through multiple rendering passes. It is, however, quite limited and does not expose
-        the more flexible multitexturing operations, simply because these can't be automatically supported in
-        multipass fallback mode. If want to use the fancier options, use TextureUnitState::setColourOperationEx,
-        but you'll either have to be sure that enough multitexturing units will be available, or you should
-        explicitly set a fallback using TextureUnitState::setColourOpMultipassFallback.
-        @note
-        The default method is LBO_MODULATE for all layers.
-        @note
-        This option has no effect in the programmable pipeline.
-        @param
-        op One of the LayerBlendOperation enumerated blending types.
-        */
-        void setColourOperation( const LayerBlendOperation op);
-
-        /** Sets the multipass fallback operation for this layer, if you used TextureUnitState::setColourOperationEx
-        and not enough multitexturing hardware is available.
-        @remarks
-        Because some effects exposed using TextureUnitState::setColourOperationEx are only supported under
-        multitexturing hardware, if the hardware is lacking the system must fallback on multipass rendering,
-        which unfortunately doesn't support as many effects. This method is for you to specify the fallback
-        operation which most suits you.
-        @par
-        You'll notice that the interface is the same as the Material::setSceneBlending method; this is
-        because multipass rendering IS effectively scene blending, since each layer is rendered on top
-        of the last using the same mechanism as making an object transparent, it's just being rendered
-        in the same place repeatedly to get the multitexture effect.
-        @par
-        If you use the simpler (and hence less flexible) TextureUnitState::setColourOperation method you
-        don't need to call this as the system sets up the fallback for you.
-        @note
-        This option has no effect in the programmable pipeline, because there is no multipass fallback
-        and multitexture blending is handled by the fragment shader.
-        */
-        void setColourOpMultipassFallback( const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor);
-
-        /** Get multitexturing colour blending mode.
-        */
-        const LayerBlendModeEx& getColourBlendMode(void) const;
-
-        /** Get multitexturing alpha blending mode.
-        */
-        const LayerBlendModeEx& getAlphaBlendMode(void) const;
-
-        /** Get the multipass fallback for colour blending operation source factor.
-        */
-        SceneBlendFactor getColourBlendFallbackSrc(void) const;
-
-        /** Get the multipass fallback for colour blending operation destination factor.
-        */
-        SceneBlendFactor getColourBlendFallbackDest(void) const;
-
-        /** Sets the alpha operation to be applied to this texture.
-        @remarks
-        This works in exactly the same way as setColourOperation, except
-        that the effect is applied to the level of alpha (i.e. transparency)
-        of the texture rather than its colour. When the alpha of a texel (a pixel
-        on a texture) is 1.0, it is opaque, wheras it is fully transparent if the
-        alpha is 0.0. Please refer to the setColourOperation method for more info.
-        @param
-        op The operation to be used, e.g. modulate (multiply), add, subtract
-        @param
-        source1 The source of the first alpha value to the operation e.g. texture alpha
-        @param
-        source2 The source of the second alpha value to the operation e.g. current surface alpha
-        @param
-        arg1 Manually supplied alpha value (only required if source1 = LBS_MANUAL)
-        @param
-        arg2 Manually supplied alpha value (only required if source2 = LBS_MANUAL)
-        @param
-        manualBlend Manually supplied 'blend' value - only required for operations
-        which require manual blend e.g. LBX_BLEND_MANUAL
-        @see
-        setColourOperation
-        @note
-        This option has no effect in the programmable pipeline.
-        */
-        void setAlphaOperation(LayerBlendOperationEx op,
-            LayerBlendSource source1 = LBS_TEXTURE,
-            LayerBlendSource source2 = LBS_CURRENT,
-            Real arg1 = 1.0,
-            Real arg2 = 1.0,
-            Real manualBlend = 0.0);
-
-        /** Determines if this texture layer is currently blank.
-        @note
-        This can happen if a texture fails to load or some other non-fatal error. Worth checking after
-        setting texture name.
-        */
-        bool isBlank(void) const;
-
-        /** Sets this texture layer to be blank.
-        */
-        void setBlank(void);
-
-		/** Tests if the texture associated with this unit has failed to load.
-		*/
-		bool isTextureLoadFailing() const { return mTextureLoadFailed; }
-
-		/** Tells the unit to retry loading the texture if it had failed to load.
-		*/
-		void retryTextureLoad() { mTextureLoadFailed = false; }
-
-        // get texture effects in a multimap paired array
-        const EffectMap& getEffects(void) const;
-        // get the animated-texture animation duration
-        Real getAnimationDuration(void) const;
-
         /** Set the texture filtering for this unit, using the simplified interface.
         /** Set the texture filtering for this unit, using the simplified interface.
         @remarks
         @remarks
             You also have the option of specifying the minification, magnification
             You also have the option of specifying the minification, magnification
@@ -906,120 +273,17 @@ namespace Ogre {
 		@see TextureUnitState::setTextureMipmapBias
 		@see TextureUnitState::setTextureMipmapBias
 		*/
 		*/
 		float getTextureMipmapBias(void) const { return mMipmapBias; }
 		float getTextureMipmapBias(void) const { return mMipmapBias; }
-
-		/** Set the compositor reference for this texture unit state.
-		@remarks 
-			Only valid when content type is compositor.
-		@param compositorName the name of the compositor to reference
-		@param textureName the name of the texture to reference
-		@param mrtIndex the index of the wanted texture, if referencing an MRT
-		*/
-		void setCompositorReference(const String& compositorName, const String& textureName, size_t mrtIndex = 0);
-
-		/** Gets the name of the compositor that this texture referneces */
-		const String& getReferencedCompositorName() const { return mCompositorRefName; }
-		/** Gets the name of the texture in the compositor that this texture references */
-		const String& getReferencedTextureName() const { return mCompositorRefTexName; }
-		/** Gets the MRT index of the texture in the compositor that this texture references */ 
-		size_t getReferencedMRTIndex() const { return mCompositorRefMrtIndex; }
-	
-        /// Gets the parent Pass object
-        Pass* getParent(void) const { return mParent; }
-
-		/** Internal method for preparing this object for load, as part of Material::prepare*/
-		void _prepare(void);
-		/** Internal method for undoing the preparation this object as part of Material::unprepare*/
-		void _unprepare(void);
-		/** Internal method for loading this object as part of Material::load */
-		void _load(void);
-		/** Internal method for unloading this object as part of Material::unload */
-		void _unload(void);
-        /// Returns whether this unit has texture coordinate generation that depends on the camera
-        bool hasViewRelativeTextureCoordinateGeneration(void) const;
-
-        // Is this loaded?
-        bool isLoaded(void) const;
-        /** Tells the class that it needs recompilation. */
-        void _notifyNeedsRecompile(void);
-
-        /** Set the name of the Texture Unit State
-        @remarks
-            The name of the Texture Unit State is optional.  Its usefull in material scripts where a material could inherit
-            from another material and only want to modify a particalar Texture Unit State.
-        */
-        void setName(const String& name);
-        /// get the name of the Texture Unit State
-        const String& getName(void) const { return mName; }
-
-        /** Set the alias name used for texture frame names
-        @param name can be any sequence of characters and does not have to be unique           
-        */
-        void setTextureNameAlias(const String& name);
-        /** gets the Texture Name Alias of the Texture Unit.
-        */
-        const String& getTextureNameAlias(void) const { return mTextureNameAlias;}
-
-        /** Applies texture names to Texture Unit State with matching texture name aliases.
-            If no matching aliases are found then the TUS state does not change.
-        @remarks
-            Cubic, 1d, 2d, and 3d textures are determined from current state of the Texture Unit.
-            Assumes animated frames are sequentially numbered in the name.
-            If matching texture aliases are found then true is returned.
-
-        @param
-            aliasList is a map container of texture alias, texture name pairs
-        @param
-            apply set true to apply the texture aliases else just test to see if texture alias matches are found.
-        @return
-            True if matching texture aliases were found in the Texture Unit State.
-        */
-        bool applyTextureAliases(const AliasTextureNamePairList& aliasList, const bool apply = true);
-
-		/** Notify this object that its parent has changed */
-		void _notifyParent(Pass* parent);
-
-		/** Get the texture pointer for the current frame. */
-		const TexturePtr& _getTexturePtr(void) const;
-		/** Get the texture pointer for a given frame. */
-		const TexturePtr& _getTexturePtr(size_t frame) const;
-	
-		/** Set the texture pointer for the current frame (internal use only!). */
-		void _setTexturePtr(const TexturePtr& texptr);
-		/** Set the texture pointer for a given frame (internal use only!). */
-		void _setTexturePtr(const TexturePtr& texptr, size_t frame);
-
 protected:
 protected:
         // State
         // State
-        /// The current animation frame.
-        unsigned int mCurrentFrame;
-
-        /// Duration of animation in seconds
-        Real mAnimDuration;            
-        bool mCubic; // is this a series of 6 2D textures to make up a cube?
-		
         TextureType mTextureType; 
         TextureType mTextureType; 
         PixelFormat mDesiredFormat;
         PixelFormat mDesiredFormat;
 		int mTextureSrcMipmaps; // Request number of mipmaps
 		int mTextureSrcMipmaps; // Request number of mipmaps
 
 
-        unsigned int mTextureCoordSetIndex;
         UVWAddressingMode mAddressMode;
         UVWAddressingMode mAddressMode;
-        ColourValue mBorderColour;
-
-        LayerBlendModeEx mColourBlendMode;
-        SceneBlendFactor mColourBlendFallbackSrc;
-        SceneBlendFactor mColourBlendFallbackDest;
 
 
-        LayerBlendModeEx mAlphaBlendMode;
-        mutable bool mTextureLoadFailed;
         bool mIsAlpha;
         bool mIsAlpha;
 		bool mHwGamma;
 		bool mHwGamma;
 
 
-        mutable bool mRecalcTexMatrix;
-        Real mUMod, mVMod;
-        Real mUScale, mVScale;
-        Radian mRotate;
-        mutable Matrix4 mTexModMatrix;
-
         /// Texture filtering - minification
         /// Texture filtering - minification
         FilterOptions mMinFilter;
         FilterOptions mMinFilter;
         /// Texture filtering - magnification
         /// Texture filtering - magnification
@@ -1035,43 +299,6 @@ protected:
         bool mIsDefaultFiltering;
         bool mIsDefaultFiltering;
 		/// Binding type (fragment or vertex pipeline)
 		/// Binding type (fragment or vertex pipeline)
 		BindingType mBindingType;
 		BindingType mBindingType;
-		/// Content type of texture (normal loaded texture, auto-texture)
-		ContentType mContentType;
-		/// The index of the referenced texture if referencing an MRT in a compositor
-		size_t mCompositorRefMrtIndex;
-
-        //-----------------------------------------------------------------------------
-        // Complex members (those that can't be copied using memcpy) are at the end to 
-        // allow for fast copying of the basic members.
-        //
-        vector<String>::type mFrames;
-		mutable vector<TexturePtr>::type mFramePtrs;
-        String mName;               // optional name for the TUS
-        String mTextureNameAlias;       // optional alias for texture frames
-        EffectMap mEffects;
-		///The data that references the compositor
-		String mCompositorRefName;
-		String mCompositorRefTexName;
-        //-----------------------------------------------------------------------------
-
-        //-----------------------------------------------------------------------------
-        // Pointer members (those that can't be copied using memcpy), and MUST
-        // preserving even if assign from others
-        //
-        Pass* mParent;
-        //-----------------------------------------------------------------------------
-
-
-        /** Internal method for calculating texture matrix.
-        */
-        void recalcTextureMatrix(void) const;
-
-		/** Internal method for ensuring the texture for a given frame is prepared. */
-		void ensurePrepared(size_t frame) const;
-		/** Internal method for ensuring the texture for a given frame is loaded. */
-		void ensureLoaded(size_t frame) const;
-
-
     };
     };
 
 
 	/** @} */
 	/** @} */