diff options
author | Dave Parks <davep@lindenlab.com> | 2011-10-07 03:12:11 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-10-07 03:12:11 -0500 |
commit | 79912f9d3f0807529183521f69f989f947c1cff1 (patch) | |
tree | eebfd21524f2e70d550397edfccdfcaefd6ab290 /indra/newview/llhudrender.cpp | |
parent | c834bdd05a134d6b3442a31f351a94f21965d4e9 (diff) |
SH-2031 Profile guided optimization of matrix ops
- don't use F64 except where needed (should really factor out calls to gluProject)
- get rid of sorting by texture in favor of sorting by matrix (no sort needed, geometry is already matrix sorted as a result of frustum cull tree traversal order)
- unroll matrix sync inner loop and cache MVP and normal matrices
Diffstat (limited to 'indra/newview/llhudrender.cpp')
-rw-r--r-- | indra/newview/llhudrender.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/indra/newview/llhudrender.cpp b/indra/newview/llhudrender.cpp index 607f7f7f4b..122711a86d 100644 --- a/indra/newview/llhudrender.cpp +++ b/indra/newview/llhudrender.cpp @@ -107,8 +107,18 @@ void hud_render_text(const LLWString &wstr, const LLVector3 &pos_agent, viewport[1] = world_view_rect.mBottom; viewport[2] = world_view_rect.getWidth(); viewport[3] = world_view_rect.getHeight(); + + F64 mdlv[16]; + F64 proj[16]; + + for (U32 i = 0; i < 16; i++) + { + mdlv[i] = (F64) gGLModelView[i]; + proj[i] = (F64) gGLProjection[i]; + } + gluProject(render_pos.mV[0], render_pos.mV[1], render_pos.mV[2], - gGLModelView, gGLProjection, (GLint*) viewport, + mdlv, proj, (GLint*) viewport, &winX, &winY, &winZ); //fonts all render orthographically, set up projection`` |