FIRE-35078 - llSetText(...) differences in latest Nightly Builds
When the new background was added, the LLHUDText was updated to match the text of the LLHUDNameTag. Reverted changes back to the originalmaster
parent
9c2b86e4ca
commit
c75868856b
|
|
@ -110,6 +110,7 @@ LLHUDText::LLHUDText(const U8 type) :
|
|||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
mRoundedRectImgp = LLUI::getUIImage("Rounded_Rect"); // Taken from LLHUDNameTag, uses the existing art asset
|
||||
mBackgroundHeight = 0.0f; // Default background height to 0.0
|
||||
mBackgroundWidth = 0.0f; // <FS:minerjr> [FIRE-35078] Added background width independent of the LLHUDTexts mWidth
|
||||
mBackgroundOffsetY = 0.0f; // Default background Y offset to 0.0
|
||||
mLuminance = 1.0f; // Default luminance is 1.0 as the default color is white (1.0, 1.0, 1.0, 1.0)
|
||||
// </FS:minerjr> [FIRE-35019]
|
||||
|
|
@ -272,10 +273,9 @@ void LLHUDText::renderText()
|
|||
|
||||
if ( (show_all_backgrounds || show_highlighted_background) && is_valid_source_object )
|
||||
{
|
||||
LLRect screen_rect;
|
||||
screen_rect.setCenterAndSize(0, static_cast<S32>(lltrunc(-mBackgroundHeight / 2 + mOffsetY + mBackgroundOffsetY)),
|
||||
static_cast<S32>(lltrunc(mWidth)),
|
||||
static_cast<S32>(lltrunc(mBackgroundHeight)));
|
||||
LLRect screen_rect;
|
||||
screen_rect.setCenterAndSize(0, static_cast<S32>(lltrunc(-mBackgroundHeight / 2 + mOffsetY + mBackgroundOffsetY)), // <FS:minerjr> [FIRE-35078] llSetText(...) differences in latest Nightly Builds
|
||||
static_cast<S32>(lltrunc(mBackgroundWidth)), static_cast<S32>(lltrunc(mBackgroundHeight))); // Added background width independent of the LLHUDTexts mWidth </FS:minerjr>
|
||||
mRoundedRectImgp->draw3D(render_position, x_pixel_vec, y_pixel_vec, screen_rect, bg_color);
|
||||
}
|
||||
// </FS:minerjr> [FIRE-35019]
|
||||
|
|
@ -299,11 +299,7 @@ void LLHUDText::renderText()
|
|||
segment_iter != mTextSegments.end(); ++segment_iter )
|
||||
{
|
||||
const LLFontGL* fontp = segment_iter->mFont;
|
||||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
//y_offset -= fontp->getLineHeight() - 1; // correction factor to match legacy font metrics
|
||||
y_offset -= fontp->getLineHeight(); // Match the same positioning as LLHUDNameTag as the windows don't line up otherwise.
|
||||
y_offset -= LINE_PADDING;
|
||||
// </FS:minerjr> [FIRE-35019]
|
||||
y_offset -= fontp->getLineHeight() - 1; // correction factor to match legacy font metrics
|
||||
|
||||
U8 style = segment_iter->mStyle;
|
||||
LLFontGL::ShadowType shadow = LLFontGL::DROP_SHADOW;
|
||||
|
|
@ -316,10 +312,6 @@ void LLHUDText::renderText()
|
|||
else // ALIGN_LEFT
|
||||
{
|
||||
x_offset = -0.5f * mWidth + (HORIZONTAL_PADDING / 2.f);
|
||||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
// *HACK -> borrowed from LLHUDNameTag to match
|
||||
x_offset += 1;
|
||||
// </FS:minerjr> [FIRE-35019]
|
||||
}
|
||||
|
||||
text_color = segment_iter->mColor;
|
||||
|
|
@ -645,6 +637,9 @@ void LLHUDText::updateSize()
|
|||
F32 backgroundFirstNoneBlankPosition = 0.0f; // Stores the position just above the first non blank line
|
||||
F32 backgroundLastNoneBlankPosition = 0.0f; // Stores the position just below the last none blank line
|
||||
bool firstNoneBlank = true; // Flag to determine that if the first blank line has been reached and to store the first none black position
|
||||
// <FS:minerjr> [FIRE-35078] llSetText(...) differences in latest Nightly Builds
|
||||
mBackgroundWidth = 0.0f; // Reset the current background width to 0
|
||||
// </FS:minerjr> [FIRE-35078]
|
||||
// <FS:minerjr> [FIRE-35019]
|
||||
S32 max_lines = getMaxLines();
|
||||
|
||||
|
|
@ -670,27 +665,19 @@ void LLHUDText::updateSize()
|
|||
firstNoneBlank = false;
|
||||
}
|
||||
//Always get the position below the non-blank line
|
||||
backgroundLastNoneBlankPosition = height + fontp->getLineHeight() + LINE_PADDING;
|
||||
backgroundLastNoneBlankPosition = height + fontp->getLineHeight() - 1; // Use the older spacing
|
||||
}
|
||||
// </FS:minerjr>
|
||||
height += fontp->getLineHeight(); // Taken from LLHUBNameTa::UpdateSize
|
||||
height += LINE_PADDING; // Taken from LLHUBNameTa::UpdateSize
|
||||
// The max width of the text is set to HUD_TEXT_MAX_WIDTH_NO_BUBBLE and not HUD_TEXT_MAX_WIDTH, so the window would be limited but the text could spill over...
|
||||
width = llmax(width, llmin(iter->getWidth(fontp), HUD_TEXT_MAX_WIDTH_NO_BUBBLE));
|
||||
// <FS:minerjr> [FIRE-35019]
|
||||
// <FS:minerjr> [FIRE-35078] llSetText(...) differences in latest Nightly Builds
|
||||
// The max width of the text is set to HUD_TEXT_MAX_WIDTH_NO_BUBBLE and not HUD_TEXT_MAX_WIDTH, so the window would be limited but
|
||||
// the text could spill over...
|
||||
// But the background needs to full width so use HUD_TEXT_MAX_WIDTH_NO_BUBBLE
|
||||
mBackgroundWidth = llmax(mBackgroundWidth, llmin(iter->getWidth(fontp), HUD_TEXT_MAX_WIDTH_NO_BUBBLE));
|
||||
// </FS:minerjr> [FIRE-35078] </FS:minerjr> [FIRE-35019]
|
||||
height += fontp->getLineHeight() - 1; // correction factor to match legacy font metrics
|
||||
width = llmax(width, llmin(iter->getWidth(fontp), HUD_TEXT_MAX_WIDTH));
|
||||
++iter;
|
||||
}
|
||||
|
||||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
// Don't want line spacing under the last line (Taken from LLHUBNameTa::UpdateSize)
|
||||
if (height > 0.f)
|
||||
{
|
||||
height -= LINE_PADDING;
|
||||
// Also update the background last non blank position by the LINE_PADDING
|
||||
backgroundLastNoneBlankPosition -= LINE_PADDING;
|
||||
}
|
||||
// <FS:minerjr> [FIRE-35019]
|
||||
|
||||
if (width == 0.f)
|
||||
{
|
||||
return;
|
||||
|
|
@ -704,9 +691,10 @@ void LLHUDText::updateSize()
|
|||
mWidth = llmax(width, lerp(mWidth, (F32)width, u));
|
||||
mHeight = llmax(height, lerp(mHeight, (F32)height, u));
|
||||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
backgroundLastNoneBlankPosition += VERTICAL_PADDING; // Add the vertical padding to the last non-blank position
|
||||
mBackgroundOffsetY = backgroundFirstNoneBlankPosition; // Set the background Y offset to the top of the first blank
|
||||
backgroundLastNoneBlankPosition += VERTICAL_PADDING * 1.5f; // Add the vertical padding to the last non-blank position scaled up by 50%
|
||||
mBackgroundOffsetY = backgroundFirstNoneBlankPosition + VERTICAL_PADDING * 0.5f; // Set the background Y offset to the top of the first blank + 50% of the vertical padding
|
||||
mBackgroundHeight = backgroundLastNoneBlankPosition - backgroundFirstNoneBlankPosition; // Set the background height to the difference between the top of the first non-blank, and bottom of the last non-blank line
|
||||
mBackgroundWidth += HORIZONTAL_PADDING; // Add the horizontal padding
|
||||
// <FS:minerjr> [FIRE-35019]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -203,6 +203,9 @@ private:
|
|||
// <FS:minerjr> [FIRE-35019] Add LLHUDNameTag background to floating text and hover highlights
|
||||
LLPointer<LLUIImage> mRoundedRectImgp; // Added background rect image from LLHUDNameTag
|
||||
F32 mBackgroundHeight; // Store the actual height of the background image (calculated from the visible text segments)
|
||||
// <FS:minerjr> [FIRE-35078] llSetText(...) differences in latest Nightly Builds
|
||||
F32 mBackgroundWidth; // Store the actual width of the background image (calculated from the visible text segments)
|
||||
// </FS:minerjr> [FIRE-35078]
|
||||
F32 mBackgroundOffsetY; // Store the offset of the top of the first visible text segment
|
||||
F32 mLuminance; // Store the luminance of the text (used to determine if the background should be white or black for higher contrast)
|
||||
// </FS:minerjr> [FIRE-35019]
|
||||
|
|
|
|||
Loading…
Reference in New Issue