void LLToolSelectRect::draw() { if( hasMouseCapture() && mMouseOutsideSlop) { if (gKeyboard->currentMask(TRUE) == MASK_CONTROL) { glColor4f(1.f, 0.f, 0.f, 1.f); } else { glColor4f(1.f, 1.f, 0.f, 1.f); } LLGLSNoTexture gls_no_texture; gl_rect_2d( llmin(mDragStartX, mDragEndX), llmax(mDragStartY, mDragEndY), llmax(mDragStartX, mDragEndX), llmin(mDragStartY, mDragEndY), FALSE); if (gKeyboard->currentMask(TRUE) == MASK_CONTROL) { glColor4f(1.f, 0.f, 0.f, 0.1f); } else { glColor4f(1.f, 1.f, 0.f, 0.1f); } gl_rect_2d( llmin(mDragStartX, mDragEndX), llmax(mDragStartY, mDragEndY), llmax(mDragStartX, mDragEndX), llmin(mDragStartY, mDragEndY)); } }
void LLSnapshotLivePreview::drawPreviewRect(S32 offset_x, S32 offset_y) { F32 line_width ; glGetFloatv(GL_LINE_WIDTH, &line_width) ; glLineWidth(2.0f * line_width) ; LLColor4 color(0.0f, 0.0f, 0.0f, 1.0f) ; gl_rect_2d( mPreviewRect.mLeft + offset_x, mPreviewRect.mTop + offset_y, mPreviewRect.mRight + offset_x, mPreviewRect.mBottom + offset_y, color, FALSE ) ; glLineWidth(line_width) ; //draw four alpha rectangles to cover areas outside of the snapshot image if(!mKeepAspectRatio) { LLColor4 alpha_color(0.5f, 0.5f, 0.5f, 0.8f) ; S32 dwl = 0, dwr = 0 ; if(mThumbnailWidth > mPreviewRect.getWidth()) { dwl = (mThumbnailWidth - mPreviewRect.getWidth()) >> 1 ; dwr = mThumbnailWidth - mPreviewRect.getWidth() - dwl ; gl_rect_2d(mPreviewRect.mLeft + offset_x - dwl, mPreviewRect.mTop + offset_y, mPreviewRect.mLeft + offset_x, mPreviewRect.mBottom + offset_y, alpha_color, TRUE ) ; gl_rect_2d( mPreviewRect.mRight + offset_x, mPreviewRect.mTop + offset_y, mPreviewRect.mRight + offset_x + dwr, mPreviewRect.mBottom + offset_y, alpha_color, TRUE ) ; }
void LLToolSelectRect::draw() { if( hasMouseCapture() && mMouseOutsideSlop) { if (gKeyboard->currentMask(TRUE) == MASK_CONTROL) { gGL.color4f(1.f, 0.f, 0.f, 1.f); } else { gGL.color4f(1.f, 1.f, 0.f, 1.f); } gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gl_rect_2d( llmin(mDragStartX, mDragEndX), llmax(mDragStartY, mDragEndY), llmax(mDragStartX, mDragEndX), llmin(mDragStartY, mDragEndY), FALSE); if (gKeyboard->currentMask(TRUE) == MASK_CONTROL) { gGL.color4f(1.f, 0.f, 0.f, 0.1f); } else { gGL.color4f(1.f, 1.f, 0.f, 0.1f); } gl_rect_2d( llmin(mDragStartX, mDragEndX), llmax(mDragStartY, mDragEndY), llmax(mDragStartX, mDragEndX), llmin(mDragStartY, mDragEndY)); } }
void LLPanel::draw() { // draw background if( mBgVisible ) { //RN: I don't see the point of this S32 left = 0;//LLPANEL_BORDER_WIDTH; S32 top = getRect().getHeight();// - LLPANEL_BORDER_WIDTH; S32 right = getRect().getWidth();// - LLPANEL_BORDER_WIDTH; S32 bottom = 0;//LLPANEL_BORDER_WIDTH; if (mBgOpaque ) { gl_rect_2d( left, top, right, bottom, mBgColorOpaque ); } else { gl_rect_2d( left, top, right, bottom, mBgColorAlpha ); } } updateDefaultBtn(); LLView::draw(); }
// assumes GL state is set for 2D void LLColorSwatchCtrl::draw() { mBorder->setKeyboardFocusHighlight(hasFocus()); // Draw border LLRect border( 0, getRect().getHeight(), getRect().getWidth(), BTN_HEIGHT_SMALL ); gl_rect_2d( border, mBorderColor, FALSE ); LLRect interior = border; interior.stretch( -1 ); // Check state if ( mValid ) { if (!mColor.isOpaque()) { gl_rect_2d_checkerboard( calcScreenRect(), interior ); // Draw the color swatch } gl_rect_2d(interior, mColor, TRUE); if (!mColor.isOpaque()) { LLColor4 opaque_color = mColor; opaque_color.mV[VALPHA] = 1.f; gGL.color4fv(opaque_color.mV); if (mAlphaGradientImage.notNull()) { gGL.pushMatrix(); { mAlphaGradientImage->draw(interior, mColor); } gGL.popMatrix(); } } } else { if (!mFallbackImageName.empty()) { LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName, FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); if( fallback_image->getComponents() == 4 ) { gl_rect_2d_checkerboard( calcScreenRect(), interior ); } gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), fallback_image); fallback_image->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) ); } else { // Draw grey and an X gl_rect_2d(interior, LLColor4::grey, TRUE); gl_draw_x(interior, LLColor4::black); } } LLUICtrl::draw(); }
// assumes GL state is set for 2D void LLColorSwatchCtrl::draw() { // If we're in a focused floater, don't apply the floater's alpha to the color swatch (STORM-676). F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency(); mBorder->setKeyboardFocusHighlight(hasFocus()); // Draw border LLRect border( 0, getRect().getHeight(), getRect().getWidth(), mLabelHeight ); gl_rect_2d( border, mBorderColor.get(), FALSE ); LLRect interior = border; interior.stretch( -1 ); // Check state if ( mValid ) { if (!mColor.isOpaque()) { // Draw checker board. gl_rect_2d_checkerboard(interior, alpha); } // Draw the color swatch gl_rect_2d(interior, mColor % alpha, TRUE); if (!mColor.isOpaque()) { // Draw semi-transparent center area in filled with mColor. LLColor4 opaque_color = mColor; opaque_color.mV[VALPHA] = alpha; gGL.color4fv(opaque_color.mV); if (mAlphaGradientImage.notNull()) { gGL.pushMatrix(); { mAlphaGradientImage->draw(interior, mColor % alpha); } gGL.popMatrix(); } } } else { if (mFallbackImage.notNull()) { mFallbackImage->draw(interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), LLColor4::white % alpha); } else { // Draw grey and an X gl_rect_2d(interior, LLColor4::grey % alpha, TRUE); gl_draw_x(interior, LLColor4::black % alpha); } } LLUICtrl::draw(); }
void LLStatGraph::draw() { F32 range, frac; range = mMax - mMin; if (mStatp) { if (mPerSec) { mValue = mStatp->getMeanPerSec(); } else { mValue = mStatp->getMean(); } } frac = (mValue - mMin) / range; frac = llmax(0.f, frac); frac = llmin(1.f, frac); if (mUpdateTimer.getElapsedTimeF32() > 0.5f) { std::string format_str; std::string tmp_str; format_str = llformat("%%s%%.%df%%s", mPrecision); tmp_str = llformat(format_str.c_str(), mLabel.c_str(), mValue, mUnits.c_str()); setToolTip(tmp_str); mUpdateTimer.reset(); } LLColor4 color; S32 i; for (i = 0; i < mNumThresholds - 1; i++) { if (mThresholds[i] > mValue) { break; } } //gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, // gColors.getColor("ColorDropShadow"), // (S32) gSavedSettings.getF32("DropShadowFloater") ); static const LLCachedControl<LLColor4> menu_default_color(gColors,"MenuDefaultBgColor",LLColor4(0.f,0.f,0.f,1.f)); color = menu_default_color; gGL.color4fv(color.mV); gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, TRUE); gGL.color4fv(LLColor4::black.mV); gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, FALSE); color = mThresholdColors[i]; gGL.color4fv(color.mV); gl_rect_2d(1, llround(frac*getRect().getHeight()), getRect().getWidth() - 1, 0, TRUE); }
////////////////////////////////////////////////////////////////////////////// // draw color palette void LLFloaterColorPicker:: drawPalette () { S32 curEntry = 0; for ( S32 y = 0; y < numPaletteRows; ++y ) { for ( S32 x = 0; x < numPaletteColumns; ++x ) { // calculate position S32 x1 = mPaletteRegionLeft + ( mPaletteRegionWidth * x ) / numPaletteColumns; S32 y1 = mPaletteRegionTop - ( mPaletteRegionHeight * y ) / numPaletteRows; S32 x2 = ( mPaletteRegionLeft + ( mPaletteRegionWidth * ( x + 1 ) ) / numPaletteColumns ); S32 y2 = ( mPaletteRegionTop - ( mPaletteRegionHeight * ( y + 1 ) ) / numPaletteRows ); // draw palette entry color if ( mPalette [ curEntry ] ) { gl_rect_2d ( x1 + 2, y1 - 2, x2 - 2, y2 + 2, *mPalette [ curEntry++ ], TRUE ); gl_rect_2d ( x1 + 1, y1 - 1, x2 - 1, y2 + 1, LLColor4 ( 0.0f, 0.0f, 0.0f, 1.0f ), FALSE ); } } } // if there is something to highlight (mouse down in swatch & hovering over palette) if ( highlightEntry >= 0 ) { // extract row/column from palette index S32 entryColumn = highlightEntry % numPaletteColumns; S32 entryRow = highlightEntry / numPaletteColumns; // calculate position of this entry S32 x1 = mPaletteRegionLeft + ( mPaletteRegionWidth * entryColumn ) / numPaletteColumns; S32 y1 = mPaletteRegionTop - ( mPaletteRegionHeight * entryRow ) / numPaletteRows; S32 x2 = ( mPaletteRegionLeft + ( mPaletteRegionWidth * ( entryColumn + 1 ) ) / numPaletteColumns ); S32 y2 = ( mPaletteRegionTop - ( mPaletteRegionHeight * ( entryRow + 1 ) ) / numPaletteRows ); // center position of entry S32 xCenter = x1 + ( x2 - x1 ) / 2; S32 yCenter = y1 - ( y1 - y2 ) / 2; // find a color that works well as a highlight color LLColor4 hlColor ( getComplimentaryColor ( *mPalette [ highlightEntry ] ) ); // mark a cross for entry that is being hovered gl_line_2d ( xCenter - 4, yCenter - 4, xCenter + 4, yCenter + 4, hlColor ); gl_line_2d ( xCenter + 4, yCenter - 4, xCenter - 4, yCenter + 4, hlColor ); } }
void LLExpandableTextBox::draw() { if(mBGVisible && !mExpanded) { gl_rect_2d(getLocalRect(), mBGColor.get(), TRUE); } if(mExpandedBGVisible && mExpanded) { gl_rect_2d(getLocalRect(), mExpandedBGColor.get(), TRUE); } collapseIfPosChanged(); LLUICtrl::draw(); }
void LLFloaterAuction::draw() { LLFloater::draw(); if(!isMinimized() && mImage.notNull()) { LLView* snapshot_icon = findChildView("snapshot_icon"); if (snapshot_icon) { LLRect rect = snapshot_icon->getRect(); { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); rect.stretch(-1); } { LLGLSUIDefault gls_ui; gGL.color3f(1.f, 1.f, 1.f); gl_draw_scaled_image(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), mImage); } } } }
void LLScrollListItem::draw(const LLRect& rect, const LLColor4& fg_color, const LLColor4& bg_color, const LLColor4& highlight_color, S32 column_padding) { // draw background rect gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); LLRect bg_rect = rect; gl_rect_2d( bg_rect, bg_color ); S32 cur_x = rect.mLeft; S32 num_cols = getNumColumns(); S32 cur_col = 0; for (LLScrollListCell* cell = getColumn(0); cur_col < num_cols; cell = getColumn(++cur_col)) { // Two ways a cell could be hidden if (cell->getWidth() < 0 || !cell->getVisible()) continue; LLUI::pushMatrix(); { LLUI::translate((F32) cur_x, (F32) rect.mBottom); cell->draw( fg_color, highlight_color ); } LLUI::popMatrix(); cur_x += cell->getWidth() + column_padding; } }
void LLFloaterAuction::draw() { LLFloater::draw(); if(!isMinimized() && mImage.notNull()) { LLRect rect; if (childGetRect("snapshot_icon", rect)) { { LLGLSNoTexture gls_no_texture; gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); rect.stretch(-1); } { LLGLSUIDefault gls_ui; gGL.color3f(1.f, 1.f, 1.f); gl_draw_scaled_image(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), mImage); } } } }
// virtual void FSPanelLogin::draw() { gGL.pushMatrix(); { F32 image_aspect = 1.333333f; F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight(); // stretch image to maintain aspect ratio if (image_aspect > view_aspect) { gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f); gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); } S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); if (getChild<LLView>("login_widgets")->getVisible()) { // draw a background box in black gl_rect_2d( 0, height - 264, width, 264, LLColor4::black ); // draw the bottom part of the background image // just the blue background to the native client UI mLogoImage->draw(0, -264, width + 8, mLogoImage->getHeight()); }; } gGL.popMatrix(); LLPanel::draw(); }
void LLProgressView::drawStartTexture(F32 alpha) { gGL.pushMatrix(); if (gStartTexture) { LLGLSUIDefault gls_ui; gGL.getTexUnit(0)->bind(gStartTexture.get()); gGL.color4f(1.f, 1.f, 1.f, alpha); F32 image_aspect = (F32)gStartImageWidth / (F32)gStartImageHeight; S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); F32 view_aspect = (F32)width / (F32)height; // stretch image to maintain aspect ratio if (image_aspect > view_aspect) { gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * width, 0.f, 0.f); gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); } else { gGL.translatef(0.f, -0.5f * (view_aspect / image_aspect - 1.f) * height, 0.f); gGL.scalef(1.f, view_aspect / image_aspect, 1.f); } gl_rect_2d_simple_tex( getRect().getWidth(), getRect().getHeight() ); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); } else { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gGL.color4f(0.f, 0.f, 0.f, 1.f); gl_rect_2d(getRect()); } gGL.popMatrix(); }
void LLTextBox::draw() { if (mBorderVisible) { gl_rect_2d_offset_local(getLocalRect(), 2, FALSE); } if( mBorderDropShadowVisible ) { static LLColor4 color_drop_shadow = LLUI::sColorsGroup->getColor("ColorDropShadow"); static S32 drop_shadow_tooltip = LLUI::sConfigGroup->getS32("DropShadowTooltip"); gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, color_drop_shadow, drop_shadow_tooltip); } if (mBackgroundVisible) { LLRect r( 0, getRect().getHeight(), getRect().getWidth(), 0 ); gl_rect_2d( r, mBackgroundColor ); } S32 text_x = 0; switch( mHAlign ) { case LLFontGL::LEFT: text_x = mHPad; break; case LLFontGL::HCENTER: text_x = getRect().getWidth() / 2; break; case LLFontGL::RIGHT: text_x = getRect().getWidth() - mHPad; break; } S32 text_y = getRect().getHeight() - mVPad; if ( getEnabled() ) { if(mHasHover) { drawText( text_x, text_y, mHoverColor ); } else { drawText( text_x, text_y, mTextColor ); } } else { drawText( text_x, text_y, mDisabledColor ); } if (sDebugRects) { drawDebugRect(); } mHasHover = FALSE; // This is reset every frame. }
// virtual void LLPanelLogin::draw() { gGL.pushMatrix(); { F32 image_aspect = 1.333333f; F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight(); // stretch image to maintain aspect ratio if (image_aspect > view_aspect) { gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f); gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); } S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); if ( getChild<LLView>("login_html")->getVisible()) { // draw a background box in black gl_rect_2d( 0, height - 264, width, 264, LLColor4::black ); // draw the bottom part of the background image // just the blue background to the native client UI mLogoImage->draw(0, -264, width + 8, mLogoImage->getHeight()); } else { // the HTML login page is not available so default to the original screen S32 offscreen_part = height / 3; mLogoImage->draw(0, -offscreen_part, width, height+offscreen_part); }; } gGL.popMatrix(); LLPanel::draw(); }
void LLProgressView::draw() { static LLTimer timer; // Paint bitmap if we've got one glPushMatrix(); if (gStartTexture) { LLGLSUIDefault gls_ui; gGL.getTexUnit(0)->bind(gStartTexture.get()); gGL.color4f(1.f, 1.f, 1.f, mFadeTimer.getStarted() ? clamp_rescale(mFadeTimer.getElapsedTimeF32(), 0.f, FADE_IN_TIME, 1.f, 0.f) : 1.f); F32 image_aspect = (F32)gStartImageWidth / (F32)gStartImageHeight; S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); F32 view_aspect = (F32)width / (F32)height; // stretch image to maintain aspect ratio if (image_aspect > view_aspect) { glTranslatef(-0.5f * (image_aspect / view_aspect - 1.f) * width, 0.f, 0.f); glScalef(image_aspect / view_aspect, 1.f, 1.f); } else { glTranslatef(0.f, -0.5f * (view_aspect / image_aspect - 1.f) * height, 0.f); glScalef(1.f, view_aspect / image_aspect, 1.f); } gl_rect_2d_simple_tex( getRect().getWidth(), getRect().getHeight() ); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); } else { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gGL.color4f(0.f, 0.f, 0.f, 1.f); gl_rect_2d(getRect()); } glPopMatrix(); // Handle fade-in animation if (mFadeTimer.getStarted()) { LLPanel::draw(); if (mFadeTimer.getElapsedTimeF32() > FADE_IN_TIME) { // Fade is complete, release focus gFocusMgr.releaseFocusIfNeeded( this ); LLPanel::setVisible(FALSE); mFadeTimer.stop(); gStartTexture = NULL; } return; } // draw children LLPanel::draw(); }
void render_ui_2d() { LLGLSUIDefault gls_ui; ///////////////////////////////////////////////////////////// // // Render 2D UI elements that overlay the world (no z compare) // Disable wireframe mode below here, as this is HUD/menus glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); // Menu overlays, HUD, etc gViewerWindow->setup2DRender(); F32 zoom_factor = LLViewerCamera::getInstance()->getZoomFactor(); S16 sub_region = LLViewerCamera::getInstance()->getZoomSubRegion(); if (zoom_factor > 1.f) { //decompose subregion number to x and y values int pos_y = sub_region / llceil(zoom_factor); int pos_x = sub_region - (pos_y*llceil(zoom_factor)); // offset for this tile LLFontGL::sCurOrigin.mX -= llround((F32)gViewerWindow->getWindowWidth() * (F32)pos_x / zoom_factor); LLFontGL::sCurOrigin.mY -= llround((F32)gViewerWindow->getWindowHeight() * (F32)pos_y / zoom_factor); } stop_glerror(); gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); // render outline for HUD if (gAgent.getAvatarObject() && gAgent.mHUDCurZoom < 0.98f) { glPushMatrix(); S32 half_width = (gViewerWindow->getWindowWidth() / 2); S32 half_height = (gViewerWindow->getWindowHeight() / 2); glScalef(LLUI::sGLScaleFactor.mV[0], LLUI::sGLScaleFactor.mV[1], 1.f); glTranslatef((F32)half_width, (F32)half_height, 0.f); F32 zoom = gAgent.mHUDCurZoom; glScalef(zoom,zoom,1.f); gGL.color4fv(LLColor4::white.mV); gl_rect_2d(-half_width, half_height, half_width, -half_height, FALSE); glPopMatrix(); stop_glerror(); } gViewerWindow->draw(); if (gDebugSelect) { gViewerWindow->drawPickBuffer(); } // reset current origin for font rendering, in case of tiling render LLFontGL::sCurOrigin.set(0, 0); }
void LLPanel::draw() { // draw background if( mBgVisible ) { LLRect local_rect = getLocalRect(); if (mBgOpaque ) { gl_rect_2d( local_rect, mBgColorOpaque ); } else { gl_rect_2d( local_rect, mBgColorAlpha ); } } updateDefaultBtn(); LLView::draw(); }
void LLPanel::draw() { F32 alpha = getDrawContext().mAlpha; // draw background if( mBgVisible ) { alpha = getCurrentTransparency(); LLRect local_rect = getLocalRect(); if (mBgOpaque ) { // opaque, in-front look if (mBgOpaqueImage.notNull()) { mBgOpaqueImage->draw( local_rect, mBgOpaqueImageOverlay % alpha ); } else { // fallback to flat colors when there are no images gl_rect_2d( local_rect, mBgOpaqueColor.get() % alpha); } } else { // transparent, in-back look if (mBgAlphaImage.notNull()) { mBgAlphaImage->draw( local_rect, mBgAlphaImageOverlay % alpha ); } else { gl_rect_2d( local_rect, mBgAlphaColor.get() % alpha ); } } } updateDefaultBtn(); LLView::draw(); }
void LLPanelVoiceDeviceSettings::draw() { refresh(); // let user know that volume indicator is not yet available bool is_in_tuning_mode = LLVoiceClient::getInstance()->inTuningMode(); getChildView("wait_text")->setVisible( !is_in_tuning_mode && mUseTuningMode); LLPanel::draw(); if (is_in_tuning_mode) { const S32 num_bars = 5; F32 voice_power = LLVoiceClient::getInstance()->tuningGetEnergy() / LLVoiceClient::OVERDRIVEN_POWER_LEVEL; S32 discrete_power = llmin(num_bars, llfloor(voice_power * (F32)num_bars + 0.1f)); for(S32 power_bar_idx = 0; power_bar_idx < num_bars; power_bar_idx++) { std::string view_name = llformat("%s%d", "bar", power_bar_idx); LLView* bar_view = getChild<LLView>(view_name); if (bar_view) { gl_rect_2d(bar_view->getRect(), LLColor4::grey, TRUE); LLColor4 color; if (power_bar_idx < discrete_power) { color = (power_bar_idx >= 3) ? gSavedSettings.getColor4("OverdrivenColor") : gSavedSettings.getColor4("SpeakingColor"); } else { color = LLUI::sColorsGroup->getColor("FocusBackgroundColor"); } LLRect color_rect = bar_view->getRect(); color_rect.stretch(-1); gl_rect_2d(color_rect, color, TRUE); } } } }
// This function stolen from LLFloaterPostcard void KVFloaterFlickrUpload::draw() { LLGLSUIDefault gls_ui; LLFloater::draw(); if(!isMinimized() && mViewerImage.notNull() && mCompressedImage.notNull()) { LLRect rect(getRect()); // first set the max extents of our preview rect.translate(-rect.mLeft, -rect.mBottom); rect.mLeft += 280; rect.mRight -= 10; rect.mTop -= 27; rect.mBottom = rect.mTop - 130; // then fix the aspect ratio F32 ratio = (F32)mCompressedImage->getWidth() / (F32)mCompressedImage->getHeight(); if ((F32)rect.getWidth() / (F32)rect.getHeight() >= ratio) { rect.mRight = LLRect::tCoordType((F32)rect.mLeft + ((F32)rect.getHeight() * ratio)); } else { rect.mBottom = LLRect::tCoordType((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); } { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); rect.stretch(-1); } { glMatrixMode(GL_TEXTURE); glPushMatrix(); { glScalef(mImageScale.mV[VX], mImageScale.mV[VY], 1.f); glMatrixMode(GL_MODELVIEW); gl_draw_scaled_image(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), mViewerImage.get(), LLColor4::white); } glMatrixMode(GL_TEXTURE); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } } }
void LLFloaterPostcard::draw() { LLGLSUIDefault gls_ui; LLFloater::draw(); if(!isMinimized() && mViewerImage.notNull() && mJPEGImage.notNull()) { LLRect rect(getRect()); // first set the max extents of our preview rect.translate(-rect.mLeft, -rect.mBottom); rect.mLeft += 280; rect.mRight -= 10; rect.mTop -= 20; rect.mBottom = rect.mTop - 130; // then fix the aspect ratio F32 ratio = (F32)mJPEGImage->getWidth() / (F32)mJPEGImage->getHeight(); if ((F32)rect.getWidth() / (F32)rect.getHeight() >= ratio) { rect.mRight = (S32)((F32)rect.mLeft + ((F32)rect.getHeight() * ratio)); } else { rect.mBottom = (S32)((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); } { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); rect.stretch(-1); } { gGL.matrixMode(LLRender::MM_TEXTURE); gGL.pushMatrix(); { gGL.scalef(mImageScale.mV[VX], mImageScale.mV[VY], 1.f); gGL.matrixMode(LLRender::MM_MODELVIEW); gl_draw_scaled_image(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), mViewerImage, LLColor4::white); } gGL.matrixMode(LLRender::MM_TEXTURE); gGL.popMatrix(); gGL.matrixMode(LLRender::MM_MODELVIEW); } } }
void LLFloaterPostcard::draw() { LLGLSUIDefault gls_ui; LLFloater::draw(); if(getVisible() && !mMinimized && mViewerImage.notNull() && mJPEGImage.notNull()) { LLRect rect(mRect); // first set the max extents of our preview rect.translate(-rect.mLeft, -rect.mBottom); rect.mLeft += 280; rect.mRight -= 10; rect.mTop -= 20; rect.mBottom = rect.mTop - 130; // then fix the aspect ratio F32 ratio = (F32)mJPEGImage->getWidth() / (F32)mJPEGImage->getHeight(); if ((F32)rect.getWidth() / (F32)rect.getHeight() >= ratio) { rect.mRight = (S32)((F32)rect.mLeft + ((F32)rect.getHeight() * ratio)); } else { rect.mBottom = (S32)((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); } { LLGLSNoTexture gls_no_texture; gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); rect.stretch(-1); } { glMatrixMode(GL_TEXTURE); glPushMatrix(); { glScalef(mImageScale.mV[VX], mImageScale.mV[VY], 1.f); glMatrixMode(GL_MODELVIEW); gl_draw_scaled_image(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), mViewerImage, LLColor4::white); } glMatrixMode(GL_TEXTURE); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } } }
void LLPanelVoiceDeviceSettings::draw() { // let user know that volume indicator is not yet available bool is_in_tuning_mode = gVoiceClient->inTuningMode(); childSetVisible("wait_text", !is_in_tuning_mode); LLPanel::draw(); F32 voice_power = gVoiceClient->tuningGetEnergy(); S32 discrete_power = 0; if (!is_in_tuning_mode) { discrete_power = 0; } else { discrete_power = llmin(4, llfloor((voice_power / LLVoiceClient::OVERDRIVEN_POWER_LEVEL) * 4.f)); } if (is_in_tuning_mode) { for(S32 power_bar_idx = 0; power_bar_idx < 5; power_bar_idx++) { std::string view_name = llformat("%s%d", "bar", power_bar_idx); LLView* bar_view = getChild<LLView>(view_name); if (bar_view) { if (power_bar_idx < discrete_power) { LLColor4 color = (power_bar_idx >= 3) ? gSavedSettings.getColor4("OverdrivenColor") : gSavedSettings.getColor4("SpeakingColor"); gl_rect_2d(bar_view->getRect(), color, TRUE); } gl_rect_2d(bar_view->getRect(), LLColor4::grey, FALSE); } } } }
// assumes GL state is set for 2D void LLColorSwatchCtrl::draw() { mBorder->setKeyboardFocusHighlight(hasFocus()); // Draw border LLRect border( 0, getRect().getHeight(), getRect().getWidth(), BTN_HEIGHT_SMALL ); gl_rect_2d( border, mBorderColor, FALSE ); LLRect interior = border; interior.stretch( -1 ); // Check state if ( mValid ) { // Draw the color swatch gl_rect_2d_checkerboard( interior ); gl_rect_2d(interior, mColor, TRUE); LLColor4 opaque_color = mColor; opaque_color.mV[VALPHA] = 1.f; gGL.color4fv(opaque_color.mV); if (mAlphaGradientImage.notNull()) { gGL.pushMatrix(); { mAlphaGradientImage->draw(interior, mColor); } gGL.popMatrix(); } } else { // Draw grey and an X gl_rect_2d(interior, LLColor4::grey, TRUE); gl_draw_x(interior, LLColor4::black); } LLUICtrl::draw(); }
void LLGLTexSizeBar::draw() { LLGLSUIDefault gls_ui; if(LLImageGL::sCurTexSizeBar == mIndex) { F32 text_color[] = {1.f, 1.f, 1.f, 0.75f}; std::string text; text = llformat("%d", mTopLoaded) ; LLFontGL::getFontMonospace()->renderUTF8(text, 0, mLeft, mBottom + (S32)(mTopLoaded * mScale) + mLineHeight, text_color, LLFontGL::LEFT, LLFontGL::TOP); text = llformat("%d", mTopBound) ; LLFontGL::getFontMonospace()->renderUTF8(text, 0, (mLeft + mRight) / 2, mBottom + (S32)(mTopBound * mScale) + mLineHeight, text_color, LLFontGL::LEFT, LLFontGL::TOP); } F32 loaded_color[] = {1.0f, 0.0f, 0.0f, 0.75f}; F32 bound_color[] = {1.0f, 1.0f, 0.0f, 0.75f}; gl_rect_2d(mLeft, mBottom + (S32)(mTopLoaded * mScale), (mLeft + mRight) / 2, mBottom, loaded_color) ; gl_rect_2d((mLeft + mRight) / 2, mBottom + (S32)(mTopBound * mScale), mRight, mBottom, bound_color) ; }
void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::draw() { S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); F32 alpha = getCurrentTransparency(); gl_rect_2d(0,0,width - 1 ,height - 1,mHeaderBGColor.get() % alpha,true); LLAccordionCtrlTab* parent = dynamic_cast<LLAccordionCtrlTab*>(getParent()); bool collapsible = (parent && parent->getCollapsible()); bool expanded = (parent && parent->getDisplayChildren()); // Handle overlay images, if needed // Only show green "focus" background image if the accordion is open, // because the user's mental model of focus is that it goes away after // the accordion is closed. if (getParent()->hasFocus() || mIsSelected /*&& !(collapsible && !expanded)*/ // WHY?? ) { mImageHeaderFocused->draw(0,0,width,height); } else { mImageHeader->draw(0,0,width,height); } if(mNeedsHighlight) { mImageHeaderOver->draw(0,0,width,height); } if(collapsible) { LLPointer<LLUIImage> overlay_image; if(expanded) { overlay_image = mImageExpanded; } else { overlay_image = mImageCollapsed; } overlay_image->draw(HEADER_IMAGE_LEFT_OFFSET, (height - overlay_image->getHeight()) / 2); } LLUICtrl::draw(); }
void LLContainerView::draw() { { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, mRectAlpha)); } // Draw the label if (mShowLabel) { LLResMgr::getInstance()->getRes( LLFONT_OCRA )->renderUTF8(mLabel, 0, 2, getRect().getHeight() - 2, LLColor4(1,1,1,1), LLFontGL::LEFT, LLFontGL::TOP); } LLView::draw(); }
// virtual void LLPanelLogin::draw() { gGL.pushMatrix(); { F32 image_aspect = 1.333333f; F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight(); // stretch image to maintain aspect ratio if (image_aspect > view_aspect) { gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f); gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); } S32 width = getRect().getWidth(); S32 height = getRect().getHeight(); /*//------ added impru type news bar ---------- S32 news_bar_height = 8; LLMediaCtrl* news_bar = getChild<LLMediaCtrl>("news_bar"); if (news_bar) { news_bar_height = news_bar->getRect().getHeight(); } //---------------------------------------------*/ if ( mHtmlAvailable ) { #if !USE_VIEWER_AUTH // draw a background box in black gl_rect_2d( 0, height - 264, width, 264, LLColor4( 0.0f, 0.0f, 0.0f, 1.f ) ); // draw the bottom part of the background image - just the blue background to the native client UI mLogoImage->draw(0, -264, width + 8, mLogoImage->getHeight()); //gl_rect_2d( 0, height - 264 + news_bar_height, width, 264, LLColor4( 0.0f, 0.0f, 0.0f, 1.f ) ); // draw the bottom part of the background image - just the blue background to the native client UI //mLogoImage->draw(0, -264 + news_bar_height, width + 8, mLogoImage->getHeight()); #endif } else { // the HTML login page is not available so default to the original screen S32 offscreen_part = height / 3; mLogoImage->draw(0, -offscreen_part, width, height+offscreen_part); }; } gGL.popMatrix(); LLPanel::draw(); }