diff options
| author | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
|---|---|---|
| committer | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
| commit | a1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch) | |
| tree | 1d205e51bc37621916a17d459ad83782fe41f975 /indra/newview/llfloaterbigpreview.cpp | |
| parent | 6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff) | |
| parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) | |
Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev
Diffstat (limited to 'indra/newview/llfloaterbigpreview.cpp')
| -rw-r--r-- | indra/newview/llfloaterbigpreview.cpp | 66 | 
1 files changed, 33 insertions, 33 deletions
diff --git a/indra/newview/llfloaterbigpreview.cpp b/indra/newview/llfloaterbigpreview.cpp index 63439c816b..ba682494bb 100644 --- a/indra/newview/llfloaterbigpreview.cpp +++ b/indra/newview/llfloaterbigpreview.cpp @@ -1,4 +1,4 @@ -/**  +/**  * @file llfloaterbigpreview.cpp  * @brief Display of extended (big) preview for snapshots and SL Share  * @author merov@lindenlab.com @@ -42,10 +42,10 @@ LLFloaterBigPreview::LLFloaterBigPreview(const LLSD& key) : LLFloater(key),  LLFloaterBigPreview::~LLFloaterBigPreview()  { -	if (mPreviewHandle.get()) -	{ -		mPreviewHandle.get()->die(); -	} +    if (mPreviewHandle.get()) +    { +        mPreviewHandle.get()->die(); +    }  }  void LLFloaterBigPreview::onCancel() @@ -63,48 +63,48 @@ void LLFloaterBigPreview::closeOnFloaterOwnerClosing(LLFloater* floaterp)  bool LLFloaterBigPreview::postBuild()  { -	mPreviewPlaceholder = getChild<LLUICtrl>("big_preview_placeholder"); -	return LLFloater::postBuild(); +    mPreviewPlaceholder = getChild<LLUICtrl>("big_preview_placeholder"); +    return LLFloater::postBuild();  }  void LLFloaterBigPreview::draw()  { -	LLFloater::draw(); +    LLFloater::draw(); + +    LLSnapshotLivePreview * previewp = static_cast<LLSnapshotLivePreview *>(mPreviewHandle.get()); -	LLSnapshotLivePreview * previewp = static_cast<LLSnapshotLivePreview *>(mPreviewHandle.get()); -          // Display the preview if one is available -	if (previewp && previewp->getBigThumbnailImage()) -	{ +    if (previewp && previewp->getBigThumbnailImage()) +    {          // Get the preview rect -		const LLRect& preview_rect = mPreviewPlaceholder->getRect(); -         +        const LLRect& preview_rect = mPreviewPlaceholder->getRect(); +          // Get the preview texture size -		S32 thumbnail_w = previewp->getBigThumbnailWidth(); -		S32 thumbnail_h = previewp->getBigThumbnailHeight(); -         +        S32 thumbnail_w = previewp->getBigThumbnailWidth(); +        S32 thumbnail_h = previewp->getBigThumbnailHeight(); +          // Compute the scaling ratio and the size of the final texture in the rect: we want to prevent anisotropic scaling (distorted in x and y)          F32 ratio = llmax((F32)(thumbnail_w)/(F32)(preview_rect.getWidth()), (F32)(thumbnail_h)/(F32)(preview_rect.getHeight()));          thumbnail_w = (S32)((F32)(thumbnail_w)/ratio);          thumbnail_h = (S32)((F32)(thumbnail_h)/ratio); -         -		// Compute the preview offset within the preview rect: we want to center that preview in the available rect -		const S32 local_offset_x = (preview_rect.getWidth()  - thumbnail_w) / 2 ; -		const S32 local_offset_y = (preview_rect.getHeight() - thumbnail_h) / 2 ; -         -		// Compute preview offset within the floater rect -		S32 offset_x = preview_rect.mLeft   + local_offset_x; -		S32 offset_y = preview_rect.mBottom + local_offset_y; -                 -		gGL.matrixMode(LLRender::MM_MODELVIEW); -		// Apply floater transparency to the texture unless the floater is focused. -		F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency(); -		LLColor4 color = LLColor4::white; -         + +        // Compute the preview offset within the preview rect: we want to center that preview in the available rect +        const S32 local_offset_x = (preview_rect.getWidth()  - thumbnail_w) / 2 ; +        const S32 local_offset_y = (preview_rect.getHeight() - thumbnail_h) / 2 ; + +        // Compute preview offset within the floater rect +        S32 offset_x = preview_rect.mLeft   + local_offset_x; +        S32 offset_y = preview_rect.mBottom + local_offset_y; + +        gGL.matrixMode(LLRender::MM_MODELVIEW); +        // Apply floater transparency to the texture unless the floater is focused. +        F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency(); +        LLColor4 color = LLColor4::white; +          // Draw the preview texture -		gl_draw_scaled_image(offset_x, offset_y, +        gl_draw_scaled_image(offset_x, offset_y,                               thumbnail_w, thumbnail_h,                               previewp->getBigThumbnailImage(), color % alpha); -	} +    }  }  | 
