Răsfoiți Sursa

Merge pull request #1492 from Azaezel/alpha41/imageAssetCleanups

remove stray methods.
Brian Roberts 3 luni în urmă
părinte
comite
6f92701330

+ 14 - 51
Engine/source/T3D/assets/ImageAsset.cpp

@@ -149,7 +149,6 @@ ImageAsset::ImageAsset() :
    mUseMips(true),
    mIsHDRImage(false),
    mImageType(Albedo),
-   mTextureHandle(NULL),
    mIsNamedTarget(false),
    mImageWidth(-1),
    mImageHeight(-1),
@@ -473,7 +472,8 @@ U32 ImageAsset::load()
          return mLoadedState;
       }
 
-      Con::errorf("ImageAsset::initializeAsset: Attempted to load file %s but it was not valid!", mImageFile);
+      if (mLoadedState != AssetErrCode::BadFileReference && mLoadedState != AssetErrCode::Failed)
+         Con::errorf("ImageAsset::initializeAsset: Attempted to load file %s but it was not valid!", mImageFile);
       mLoadedState = BadFileReference;
       return mLoadedState;
    }
@@ -487,7 +487,15 @@ U32 ImageAsset::load()
 
 GFXTexHandle ImageAsset::getTexture(GFXTextureProfile* requestedProfile)
 {
-   load();
+   if (mLoadedState == Ok && mResourceMap.contains(requestedProfile))
+   {
+      return mResourceMap.find(requestedProfile)->value;
+   }
+   else
+   {
+      //try a reload
+      load();
+   }
 
    if (isNamedTarget())
    {
@@ -499,77 +507,32 @@ GFXTexHandle ImageAsset::getTexture(GFXTextureProfile* requestedProfile)
          tex = getNamedTarget()->getTexture();
          if (tex.isNull())
          {
-            return fallbackAsset->getTexture();
+            return fallbackAsset->getTexture(requestedProfile);
          }
-
+         mResourceMap.insert(requestedProfile, tex);
          return tex;
       }
       else
       {
-         return fallbackAsset->getTexture();
+         return fallbackAsset->getTexture(requestedProfile);
       }
    }
 
    if (mLoadedState == Ok)
    {
-      if (mResourceMap.contains(requestedProfile))
-      {
-         return mResourceMap.find(requestedProfile)->value;
-      }
-      else
-      {
-
          //If we don't have an existing map case to the requested format, we'll just create it and insert it in
          GFXTexHandle newTex;
          newTex.set(mImageFile, requestedProfile, avar("%s %s() - mTextureObject (line %d)", mImageFile, __FUNCTION__, __LINE__));
          if (newTex)
          {
-            mLoadedState = AssetErrCode::Ok;
             mResourceMap.insert(requestedProfile, newTex);
             return newTex;
          }
-      }
    }
 
-   mLoadedState = AssetErrCode::Failed;
-
    return nullptr;
 }
 
-void ImageAsset::generateTexture(void)
-{
-   // already have a generated texture, get out.
-   if (mTextureHandle.isValid())
-      return;
-
-   // implement some defaults, eventually SRGB should be optional.
-   U32 flags = GFXTextureProfile::Static | GFXTextureProfile::SRGB;
-
-   // dont want mips?
-   if (!mUseMips)
-   {
-      flags |= GFXTextureProfile::NoMipmap;
-   }
-
-   GFXTextureProfile::Types type = GFXTextureProfile::Types::DiffuseMap;
-
-   if (mImageType == ImageTypes::Normal) {
-      type = GFXTextureProfile::Types::NormalMap;
-   }
-
-   GFXTextureProfile* genProfile = new GFXTextureProfile("ImageAssetGennedProfile", type, flags);
-
-   mTextureHandle.set(mImageFile, genProfile, avar("%s() - mTextureObject (line %d)", __FUNCTION__, __LINE__));
-   mResourceMap.insert(genProfile, mTextureHandle);
-
-   if (mTextureHandle.isValid())
-      mLoadedState = AssetErrCode::Ok;
-   else
-      mLoadedState = AssetErrCode::Failed;
-
-   ResourceManager::get().getChangedSignal().notify(this, &ImageAsset::_onResourceChanged);
-}
-
 const char* ImageAsset::getImageTypeNameFromType(ImageAsset::ImageTypes type)
 {
    // must match ImageTypes order

+ 0 - 9
Engine/source/T3D/assets/ImageAsset.h

@@ -136,7 +136,6 @@ private:
    StringTableEntry  mImageFile;
    bool              mUseMips;
    bool              mIsHDRImage;
-   GFXTexHandle      mTextureHandle;
    ImageTypes        mImageType;
    ImageTextureMap   mResourceMap;
    bool              mIsNamedTarget;
@@ -144,8 +143,6 @@ private:
    S32               mImageHeight;
    S32               mImageDepth;
    S32               mImageChannels;
-
-   void generateTexture(void);
 public:
    ImageAsset();
    virtual ~ImageAsset();
@@ -179,7 +176,6 @@ public:
    void                    setTextureHDR(const bool pIsHDR);
    inline bool             getTextureHDR(void) const { return mIsHDRImage; };
 
-   inline GFXTexHandle&    getTexture(void) { load(); generateTexture(); return mTextureHandle; }
    GFXTexHandle            getTexture(GFXTextureProfile* requestedProfile);
 
    static StringTableEntry getImageTypeNameFromType(ImageTypes type);
@@ -188,14 +184,9 @@ public:
    void                    setImageType(ImageTypes type) { mImageType = type; }
    ImageTypes              getImageType() { return mImageType; }
 
-   inline U32              getTextureWidth(void) const { return isAssetValid() ? mTextureHandle->getWidth() : 0; }
-   inline U32              getTextureHeight(void) const { return isAssetValid() ? mTextureHandle->getHeight() : 0; }
-   inline U32              getTextureDepth(void) const { return isAssetValid() ? mTextureHandle->getDepth() : 0; }
-
    inline U32              getTextureBitmapWidth(void) const { return mImageWidth; }
    inline U32              getTextureBitmapHeight(void) const { return mImageHeight; }
    inline U32              getTextureBitmapDepth(void) const { return mImageDepth; }
-   bool                    isAssetValid(void) const override { return !mTextureHandle.isNull(); }
 
    bool                    isNamedTarget(void) const { return mIsNamedTarget; }
    NamedTexTargetRef       getNamedTarget(void) const { return NamedTexTarget::find(mImageFile + 1); }

+ 1 - 1
Engine/source/T3D/assets/LevelAsset.cpp

@@ -227,7 +227,7 @@ StringTableEntry LevelAsset::getPreviewImageAsset() const
 
 StringTableEntry LevelAsset::getPreviewImagePath(void) const
 {
-   if (mPreviewImageAsset.notNull() && mPreviewImageAsset->isAssetValid())
+   if (mPreviewImageAsset.notNull())
    {
       return mPreviewImageAsset->getImageFile();
    }

+ 4 - 4
Engine/source/environment/VolumetricFog.cpp

@@ -329,8 +329,8 @@ void VolumetricFog::handleResize(VolumetricFogRTManager *RTM, bool resize)
 
       // load texture.
       getTexture();
-      mTexScale.x = 2.0f - ((F32)mTextureAsset->getTextureWidth() / width);
-      mTexScale.y = 2.0f - ((F32)mTextureAsset->getTextureHeight() / height);
+      mTexScale.x = 2.0f - ((F32)mTextureAsset->getTextureBitmapWidth() / width);
+      mTexScale.y = 2.0f - ((F32)mTextureAsset->getTextureBitmapHeight() / height);
    }
 
    UpdateBuffers(0,true);
@@ -1228,8 +1228,8 @@ void VolumetricFog::InitTexture()
       F32 width = (F32)mPlatformWindow->getClientExtent().x;
       F32 height = (F32)mPlatformWindow->getClientExtent().y;
 
-      mTexScale.x = 2.0f - ((F32)mTextureAsset->getTextureWidth() / width);
-      mTexScale.y = 2.0f - ((F32)mTextureAsset->getTextureHeight() / height);
+      mTexScale.x = 2.0f - ((F32)mTextureAsset->getTextureBitmapWidth() / width);
+      mTexScale.y = 2.0f - ((F32)mTextureAsset->getTextureBitmapHeight() / height);
    }
 }