aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llhudtext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llhudtext.cpp')
-rw-r--r--linden/indra/newview/llhudtext.cpp36
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
446void LLHUDText::setStringUTF8(const std::string &wtext) 450void LLHUDText::setStringUTF8(const std::string &wtext)