summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xindra/llimage/llimagefilter.cpp25
-rwxr-xr-xindra/llimage/llimagefilter.h1
-rw-r--r--indra/newview/llsnapshotlivepreview.cpp13
3 files changed, 5 insertions, 34 deletions
diff --git a/indra/llimage/llimagefilter.cpp b/indra/llimage/llimagefilter.cpp
index 742b0ad802..3d0c488768 100755
--- a/indra/llimage/llimagefilter.cpp
+++ b/indra/llimage/llimagefilter.cpp
@@ -542,31 +542,6 @@ void LLImageFilter::filterScreen(EScreenMode mode, const F32 wave_length, const
//============================================================================
// Procedural Stencils
//============================================================================
-
-void LLImageFilter::setStencil(EStencilBlendMode mode, EStencilShape type, F32 gamma, F32 min, F32 max)
-{
- mStencilBlendMode = mode;
- mStencilShape = type;
- mStencilGamma = gamma;
- mStencilMin = llmin(llmax(min, -1.0f), 1.0f);
- mStencilMax = llmin(llmax(max, -1.0f), 1.0f);
-
- // We center the vignette on the image and fits it in the image smallest dimension
- mStencilCenterX = mImage->getWidth()/2;
- mStencilCenterY = mImage->getHeight()/2;
- mStencilWidth = llmin(mImage->getWidth()/2,mImage->getHeight()/2);
-
- mStencilWavelength = gamma;
- mStencilSine = 0.0;
- mStencilCosine = 1.0;
-
- mStencilStartX = 0.0;
- mStencilStartY = 0.0;
- mStencilGradX = 0.0;
- mStencilGradY = (F32)(mImage->getHeight());
- mStencilGradN = (F32)(mImage->getHeight()*mImage->getHeight());
-}
-
void LLImageFilter::setStencil(EStencilShape shape, EStencilBlendMode mode, F32 min, F32 max, F32* params)
{
mStencilShape = shape;
diff --git a/indra/llimage/llimagefilter.h b/indra/llimage/llimagefilter.h
index d2650c2539..0f1cbc3fb8 100755
--- a/indra/llimage/llimagefilter.h
+++ b/indra/llimage/llimagefilter.h
@@ -94,7 +94,6 @@ private:
void convolve(const LLMatrix3 &kernel, bool normalize, bool abs_value);
// Procedural Stencils
- void setStencil(EStencilBlendMode mode, EStencilShape type, F32 gamma, F32 min, F32 max);
void setStencil(EStencilShape shape, EStencilBlendMode mode, F32 min, F32 max, F32* params);
F32 getStencilAlpha(S32 i, S32 j);
diff --git a/indra/newview/llsnapshotlivepreview.cpp b/indra/newview/llsnapshotlivepreview.cpp
index 2a5bd5d8bc..eef4ed78c8 100644
--- a/indra/newview/llsnapshotlivepreview.cpp
+++ b/indra/newview/llsnapshotlivepreview.cpp
@@ -556,10 +556,8 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
mPreviewImage->getHeight(),
mPreviewImage->getComponents());
raw->copy(mPreviewImage);
- // Scale to the thumbnal size modulo a power of 2
- S32 width = LLImageRaw::expandDimToPowerOfTwo(mThumbnailWidth,MAX_IMAGE_SIZE);
- S32 height = LLImageRaw::expandDimToPowerOfTwo(mThumbnailHeight,MAX_IMAGE_SIZE);
- if (!raw->scale(width, height))
+ // Scale to the thumbnail size
+ if (!raw->scale(mThumbnailWidth, mThumbnailHeight))
{
raw = NULL ;
}
@@ -575,15 +573,12 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
{
raw = NULL ;
}
- else
- {
- raw->expandToPowerOfTwo();
- }
}
if (raw)
{
// Filter the thumbnail
+ // Note: filtering needs to be done *before* the scaling to power of 2 or the effect is distorted
if (getFilter() != "")
{
std::string filter_path = LLImageFiltersManager::getInstance()->getFilterPath(getFilter());
@@ -597,6 +592,8 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
llwarns << "Couldn't find a path to the following filter : " << getFilter() << llendl;
}
}
+ // Scale to a power of 2 so it can be mapped to a texture
+ raw->expandToPowerOfTwo();
mThumbnailImage = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE);
mThumbnailUpToDate = TRUE ;
}