diff options
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 b516e9dd01..023607f9ab 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); - } + } } |