summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimagepreview.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-08-14 11:17:35 +0300
committerGitHub <noreply@github.com>2025-08-14 11:17:35 +0300
commit6f072c2121fcb6f00ccc773d0ff4edc5cbfb013b (patch)
tree62c4967d6be428907691f133e794654b25c5d140 /indra/newview/llfloaterimagepreview.cpp
parent8145d99f80d55c4da88adb6909386bd5c25fd743 (diff)
parentd859557c1865b0636ce2a407d2e7b814fbfc1eb6 (diff)
Merge 2025.06 into develop
Merge 2025.06 into develop
Diffstat (limited to 'indra/newview/llfloaterimagepreview.cpp')
-rw-r--r--indra/newview/llfloaterimagepreview.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 49e557a6cb..44e71e33f3 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -78,8 +78,8 @@ const S32 PREVIEW_TEXTURE_HEIGHT = 320;
//-----------------------------------------------------------------------------
// LLFloaterImagePreview()
//-----------------------------------------------------------------------------
-LLFloaterImagePreview::LLFloaterImagePreview(const std::string& filename) :
- LLFloaterNameDesc(filename),
+LLFloaterImagePreview::LLFloaterImagePreview(const LLSD& args) :
+ LLFloaterNameDesc(args),
mAvatarPreview(NULL),
mSculptedPreview(NULL),
@@ -288,7 +288,9 @@ void LLFloaterImagePreview::onBtnOK()
}
else
{
- LLNotificationsUtil::add("ErrorEncodingImage");
+ LLSD args;
+ args["REASON"] = LLImage::getLastThreadError();
+ LLNotificationsUtil::add("ErrorEncodingImage", args);
LL_WARNS() << "Error encoding image" << LL_ENDL;
}
}
@@ -423,6 +425,18 @@ bool LLFloaterImagePreview::loadImage(const std::string& src_filename)
return false;
}
+ // raw image is limited to 256MB so need at least some upper limit that fits into that
+ constexpr S32 MAX_IMAGE_AREA = 8096 * 8096;
+
+ if (image_info.getWidth() * image_info.getHeight() > MAX_IMAGE_AREA)
+ {
+ LLStringUtil::format_map_t args;
+ args["PIXELS"] = llformat("%dM", (S32)(MAX_IMAGE_AREA / 1000000));
+
+ mImageLoadError = LLTrans::getString("texture_load_dimensions_error", args);
+ return false;
+ }
+
// Load the image
LLPointer<LLImageFormatted> image = LLImageFormatted::createFromType(codec);
if (image.isNull())