diff options
| author | Karl Stiefvater (qarl) <qarl@lindenlab.com> | 2010-03-01 18:45:53 -0600 | 
|---|---|---|
| committer | Karl Stiefvater (qarl) <qarl@lindenlab.com> | 2010-03-01 18:45:53 -0600 | 
| commit | 01e26f5499b224994a720e417ae7d3fc48239f62 (patch) | |
| tree | 61e13c3ffc41c34bad5d1aa857942638827c6f40 | |
| parent | c999f0f82b70508953d853081d081f6d1a0e0ab9 (diff) | |
EXT-3120 drag select lasso for objects is inaccurate
reviewed by davep
| -rw-r--r-- | indra/newview/llviewercamera.cpp | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index bd4f172907..0051f46716 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -338,7 +338,12 @@ void LLViewerCamera::setPerspective(BOOL for_selection,  	{  		// make a tiny little viewport  		// anything drawn into this viewport will be "selected" -		GLint*		viewport = (GLint*) gGLViewport; + +		GLint viewport[4]; +		viewport[0] = gViewerWindow->getWorldViewRectRaw().mLeft; +		viewport[1] = gViewerWindow->getWorldViewRectRaw().mBottom; +		viewport[2] = gViewerWindow->getWorldViewRectRaw().getWidth(); +		viewport[3] = gViewerWindow->getWorldViewRectRaw().getHeight();  		proj_mat = gl_pick_matrix(x+width/2.f, y_from_bot+height/2.f, (GLfloat) width, (GLfloat) height, viewport); @@ -405,6 +410,9 @@ void LLViewerCamera::setPerspective(BOOL for_selection,  	if (for_selection && (width > 1 || height > 1))  	{ +		// NB: as of this writing, i believe the code below is broken (doesn't take into account the world view, assumes entire window) +		// however, it is also unused (the GL matricies are used for selection, (see LLCamera::sphereInFrustum())) and so i'm not +		// comfortable hacking on it.  		calculateFrustumPlanesFromWindow((F32)(x - width / 2) / (F32)gViewerWindow->getWindowWidthScaled() - 0.5f,  								(F32)(y_from_bot - height / 2) / (F32)gViewerWindow->getWindowHeightScaled() - 0.5f,  								(F32)(x + width / 2) / (F32)gViewerWindow->getWindowWidthScaled() - 0.5f, | 
