From b707b2e2b78a5b46e0cef4a855cd94d018e8e42d Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Fri, 28 Mar 2025 15:32:16 +0000 Subject: [PATCH] final rev add safeties to getters getTextureBitmap/ functions to return member variable that is collected when the image is set --- Engine/source/T3D/assets/ImageAsset.cpp | 9 +++++++++ Engine/source/T3D/assets/ImageAsset.h | 13 +++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index f55cae0d9..04ff2e11c 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -153,6 +153,7 @@ ImageAsset::ImageAsset() : mIsNamedTarget(false), mImageWidth(-1), mImageHeight(-1), + mImageDepth(-1), mImageChannels(-1) { mLoadedState = AssetErrCode::NotLoaded; @@ -423,6 +424,9 @@ void ImageAsset::setImageFile(StringTableEntry pImageFile) Con::errorf("ImageAsset::setImageFile STB Get file info failed: %s", stbErr); } } + + // we only support 2d textures..... for no ;) + mImageDepth = 1; } refreshAsset(); @@ -643,6 +647,7 @@ void ImageAsset::onTamlCustomWrite(TamlCustomNodes& customNodes) pImageInfoNode->addField(StringTable->insert("ImageWidth"), mImageWidth); pImageInfoNode->addField(StringTable->insert("ImageHeight"), mImageHeight); + pImageInfoNode->addField(StringTable->insert("ImageDepth"), mImageDepth); } @@ -676,6 +681,10 @@ void ImageAsset::onTamlCustomRead(const TamlCustomNodes& customNodes) { pField->getFieldValue(mImageHeight); } + else if (fieldName == StringTable->insert("ImageDepth")) + { + pField->getFieldValue(mImageDepth); + } else { // Unknown name so warn. diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index 12538064b..9844b92b2 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -141,6 +141,7 @@ private: bool mIsNamedTarget; S32 mImageWidth; S32 mImageHeight; + S32 mImageDepth; S32 mImageChannels; void generateTexture(void); @@ -186,13 +187,13 @@ public: void setImageType(ImageTypes type) { mImageType = type; } ImageTypes getImageType() { return mImageType; } - inline U32 getTextureWidth(void) const { return mTextureHandle->getWidth(); } - inline U32 getTextureHeight(void) const { return mTextureHandle->getHeight(); } - inline U32 getTextureDepth(void) const { return mTextureHandle->getDepth(); } + 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 mTextureHandle->getBitmapWidth(); } - inline U32 getTextureBitmapHeight(void) const { return mTextureHandle->getBitmapHeight(); } - inline U32 getTextureBitmapDepth(void) const { return mTextureHandle->getBitmapDepth(); } + 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; }