diff options
Diffstat (limited to 'linden/indra/newview/llhudtext.cpp')
-rw-r--r-- | linden/indra/newview/llhudtext.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/linden/indra/newview/llhudtext.cpp b/linden/indra/newview/llhudtext.cpp index 7515a1b..5dc016e 100644 --- a/linden/indra/newview/llhudtext.cpp +++ b/linden/indra/newview/llhudtext.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | 33 | ||
34 | #include "llhudtext.h" | 34 | #include "llhudtext.h" |
35 | 35 | ||
36 | #include "llglimmediate.h" | ||
37 | |||
36 | #include "llagent.h" | 38 | #include "llagent.h" |
37 | #include "llviewercontrol.h" | 39 | #include "llviewercontrol.h" |
38 | #include "llchatbar.h" | 40 | #include "llchatbar.h" |
@@ -262,7 +264,7 @@ void LLHUDText::renderText(BOOL for_select) | |||
262 | LLGLSNoTexture no_texture_state; | 264 | LLGLSNoTexture no_texture_state; |
263 | S32 name = mSourceObject->mGLName; | 265 | S32 name = mSourceObject->mGLName; |
264 | LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name); | 266 | LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name); |
265 | glColor4ubv(coloru.mV); | 267 | gGL.color4ubv(coloru.mV); |
266 | gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec); | 268 | gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec); |
267 | LLUI::popMatrix(); | 269 | LLUI::popMatrix(); |
268 | return; | 270 | return; |
@@ -271,14 +273,14 @@ void LLHUDText::renderText(BOOL for_select) | |||
271 | { | 273 | { |
272 | LLViewerImage::bindTexture(imagep); | 274 | LLViewerImage::bindTexture(imagep); |
273 | 275 | ||
274 | glColor4fv(bg_color.mV); | 276 | gGL.color4fv(bg_color.mV); |
275 | gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec); | 277 | gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec); |
276 | 278 | ||
277 | if ( mLabelSegments.size()) | 279 | if ( mLabelSegments.size()) |
278 | { | 280 | { |
279 | LLUI::pushMatrix(); | 281 | LLUI::pushMatrix(); |
280 | { | 282 | { |
281 | glColor4f(text_color.mV[VX], text_color.mV[VY], text_color.mV[VZ], gSavedSettings.getF32("ChatBubbleOpacity") * alpha_factor); | 283 | gGL.color4f(text_color.mV[VX], text_color.mV[VY], text_color.mV[VZ], gSavedSettings.getF32("ChatBubbleOpacity") * alpha_factor); |
282 | LLVector3 label_height = (mFontp->getLineHeight() * mLabelSegments.size() + (VERTICAL_PADDING / 3.f)) * y_pixel_vec; | 284 | LLVector3 label_height = (mFontp->getLineHeight() * mLabelSegments.size() + (VERTICAL_PADDING / 3.f)) * y_pixel_vec; |
283 | LLVector3 label_offset = height_vec - label_height; | 285 | LLVector3 label_offset = height_vec - label_height; |
284 | LLUI::translate(label_offset.mV[VX], label_offset.mV[VY], label_offset.mV[VZ]); | 286 | LLUI::translate(label_offset.mV[VX], label_offset.mV[VY], label_offset.mV[VZ]); |
@@ -296,7 +298,7 @@ void LLHUDText::renderText(BOOL for_select) | |||
296 | { | 298 | { |
297 | LLUI::pushMatrix(); | 299 | LLUI::pushMatrix(); |
298 | { | 300 | { |
299 | glColor4fv(bg_color.mV); | 301 | gGL.color4fv(bg_color.mV); |
300 | LLVector3 target_pos = -1.f * (mPositionOffset.mV[VX] * x_pixel_vec + mPositionOffset.mV[VY] * y_pixel_vec); | 302 | LLVector3 target_pos = -1.f * (mPositionOffset.mV[VX] * x_pixel_vec + mPositionOffset.mV[VY] * y_pixel_vec); |
301 | target_pos += (width_vec / 2.f); | 303 | target_pos += (width_vec / 2.f); |
302 | target_pos += mVertAlignment == ALIGN_VERT_CENTER ? (height_vec * 0.5f) : LLVector3::zero; | 304 | target_pos += mVertAlignment == ALIGN_VERT_CENTER ? (height_vec * 0.5f) : LLVector3::zero; |
@@ -308,15 +310,15 @@ void LLHUDText::renderText(BOOL for_select) | |||
308 | LLUI::popMatrix(); | 310 | LLUI::popMatrix(); |
309 | 311 | ||
310 | 312 | ||
311 | LLGLDisable gls_texture_2d(GL_TEXTURE_2D); | 313 | LLImageGL::unbindTexture(0); |
312 | LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE); | 314 | LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE); |
313 | 315 | ||
314 | LLVector3 box_center_offset; | 316 | LLVector3 box_center_offset; |
315 | box_center_offset = (width_vec * 0.5f) + (height_vec * 0.5f); | 317 | box_center_offset = (width_vec * 0.5f) + (height_vec * 0.5f); |
316 | LLUI::translate(box_center_offset.mV[VX], box_center_offset.mV[VY], box_center_offset.mV[VZ]); | 318 | LLUI::translate(box_center_offset.mV[VX], box_center_offset.mV[VY], box_center_offset.mV[VZ]); |
317 | glColor4fv(bg_color.mV); | 319 | gGL.color4fv(bg_color.mV); |
318 | LLUI::setLineWidth(2.0); | 320 | LLUI::setLineWidth(2.0); |
319 | glBegin(GL_LINES); | 321 | gGL.begin(GL_LINES); |
320 | { | 322 | { |
321 | if (outside_width) | 323 | if (outside_width) |
322 | { | 324 | { |
@@ -326,20 +328,20 @@ void LLHUDText::renderText(BOOL for_select) | |||
326 | { | 328 | { |
327 | // start at right edge | 329 | // start at right edge |
328 | vert = width_vec * 0.5f; | 330 | vert = width_vec * 0.5f; |
329 | glVertex3fv(vert.mV); | 331 | gGL.vertex3fv(vert.mV); |
330 | } | 332 | } |
331 | else | 333 | else |
332 | { | 334 | { |
333 | // start at left edge | 335 | // start at left edge |
334 | vert = width_vec * -0.5f; | 336 | vert = width_vec * -0.5f; |
335 | glVertex3fv(vert.mV); | 337 | gGL.vertex3fv(vert.mV); |
336 | } | 338 | } |
337 | vert = -mPositionOffset.mV[VX] * x_pixel_vec; | 339 | vert = -mPositionOffset.mV[VX] * x_pixel_vec; |
338 | glVertex3fv(vert.mV); | 340 | gGL.vertex3fv(vert.mV); |
339 | glVertex3fv(vert.mV); | 341 | gGL.vertex3fv(vert.mV); |
340 | vert -= mPositionOffset.mV[VY] * y_pixel_vec; | 342 | vert -= mPositionOffset.mV[VY] * y_pixel_vec; |
341 | vert -= ((mVertAlignment == ALIGN_VERT_TOP) ? (height_vec * 0.5f) : LLVector3::zero); | 343 | vert -= ((mVertAlignment == ALIGN_VERT_TOP) ? (height_vec * 0.5f) : LLVector3::zero); |
342 | glVertex3fv(vert.mV); | 344 | gGL.vertex3fv(vert.mV); |
343 | } | 345 | } |
344 | else | 346 | else |
345 | { | 347 | { |
@@ -349,20 +351,20 @@ void LLHUDText::renderText(BOOL for_select) | |||
349 | { | 351 | { |
350 | // start at top edge | 352 | // start at top edge |
351 | vert = (height_vec * 0.5f) - (mPositionOffset.mV[VX] * x_pixel_vec); | 353 | vert = (height_vec * 0.5f) - (mPositionOffset.mV[VX] * x_pixel_vec); |
352 | glVertex3fv(vert.mV); | 354 | gGL.vertex3fv(vert.mV); |
353 | } | 355 | } |
354 | else | 356 | else |
355 | { | 357 | { |
356 | // start at bottom edge | 358 | // start at bottom edge |
357 | vert = (height_vec * -0.5f) - (mPositionOffset.mV[VX] * x_pixel_vec); | 359 | vert = (height_vec * -0.5f) - (mPositionOffset.mV[VX] * x_pixel_vec); |
358 | glVertex3fv(vert.mV); | 360 | gGL.vertex3fv(vert.mV); |
359 | } | 361 | } |
360 | vert = -mPositionOffset.mV[VY] * y_pixel_vec - mPositionOffset.mV[VX] * x_pixel_vec; | 362 | vert = -mPositionOffset.mV[VY] * y_pixel_vec - mPositionOffset.mV[VX] * x_pixel_vec; |
361 | vert -= ((mVertAlignment == ALIGN_VERT_TOP) ? (height_vec * 0.5f) : LLVector3::zero); | 363 | vert -= ((mVertAlignment == ALIGN_VERT_TOP) ? (height_vec * 0.5f) : LLVector3::zero); |
362 | glVertex3fv(vert.mV); | 364 | gGL.vertex3fv(vert.mV); |
363 | } | 365 | } |
364 | } | 366 | } |
365 | glEnd(); | 367 | gGL.end(); |
366 | LLUI::setLineWidth(1.0); | 368 | LLUI::setLineWidth(1.0); |
367 | 369 | ||
368 | } | 370 | } |
@@ -441,6 +443,8 @@ void LLHUDText::renderText(BOOL for_select) | |||
441 | hud_render_text(segment_iter->getText(), render_position, *fontp, style, x_offset, y_offset, text_color, mOnHUDAttachment); | 443 | hud_render_text(segment_iter->getText(), render_position, *fontp, style, x_offset, y_offset, text_color, mOnHUDAttachment); |
442 | } | 444 | } |
443 | } | 445 | } |
446 | /// Reset the default color to white. The renderer expects this to be the default. | ||
447 | glColor4f(1.0f, 1.0f, 1.0f, 1.0f); | ||
444 | } | 448 | } |
445 | 449 | ||
446 | void LLHUDText::setStringUTF8(const std::string &wtext) | 450 | void LLHUDText::setStringUTF8(const std::string &wtext) |