diff options
author | Graham Linden <graham@lindenlab.com> | 2018-06-29 20:15:10 +0100 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2018-06-29 20:15:10 +0100 |
commit | d5c465b4ab263e568761f6197534f7ddcda8a5ee (patch) | |
tree | 32796e9f7717a6ff48dcdf54e1aef4f1469d3793 | |
parent | 1eda16b31989448a211808a8144f0a5ffb0bce49 (diff) |
MAINT-8817 remove automatic update of inv_proj matrix so sunLightF which expects it not to match the projection mat works again
Fix misspellinging in missing settings asset notification string
Fix moon quat conversion to get proper directional rotation
Add early out so attempting to set parcel env settings doesn't crash
-rw-r--r-- | indra/llinventory/llsettingssky.cpp | 2 | ||||
-rw-r--r-- | indra/llrender/llrender.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llfloaterland.cpp | 1 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 8 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 2 |
5 files changed, 16 insertions, 9 deletions
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index b797c1b715..375bd7cbce 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -796,7 +796,7 @@ LLSD LLSettingsSky::translateLegacySettings(const LLSD& legacy) LLQuaternion sunquat = convert_azimuth_and_altitude_to_quat(azimuth, altitude); // original WL moon dir was diametrically opposed to the sun dir - LLQuaternion moonquat = convert_azimuth_and_altitude_to_quat(azimuth + F_PI, altitude + F_PI); + LLQuaternion moonquat = convert_azimuth_and_altitude_to_quat(azimuth + F_PI, -altitude); newsettings[SETTING_SUN_ROTATION] = sunquat.getValue(); newsettings[SETTING_MOON_ROTATION] = moonquat.getValue(); diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index c42d2799d7..67898f1258 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1275,11 +1275,13 @@ void LLRender::syncMatrices() { //update projection matrix, normal, and MVP glh::matrix4f& mat = mMatrix[MM_PROJECTION][mMatIdx[MM_PROJECTION]]; - if (shader->getUniformLocation(LLShaderMgr::INVERSE_PROJECTION_MATRIX)) - { - glh::matrix4f inv_proj = mat.inverse(); - shader->uniformMatrix4fv(LLShaderMgr::INVERSE_PROJECTION_MATRIX, 1, FALSE, inv_proj.m); - } + // it would be nice to have this automatically track the state of the proj matrix + // but certain render paths require it to be mismatched *sigh* + //if (shader->getUniformLocation(LLShaderMgr::INVERSE_PROJECTION_MATRIX)) + //{ + // glh::matrix4f inv_proj = mat.inverse(); + // shader->uniformMatrix4fv(LLShaderMgr::INVERSE_PROJECTION_MATRIX, 1, FALSE, inv_proj.m); + //} shader->uniformMatrix4fv(name[MM_PROJECTION], 1, GL_FALSE, mat.m); shader->mMatHash[MM_PROJECTION] = mMatHash[MM_PROJECTION]; diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index fcf836f4a0..dacdb197e7 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -3297,6 +3297,7 @@ void LLPanelLandEnvironment::doApply() if (!parcel) { LL_WARNS("PARCEL") << "Could not get parcel." << LL_ENDL; + return; } S32 parcel_id = parcel->getLocalID(); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 7be05a1bcb..aadd059546 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -6258,8 +6258,8 @@ void LLPipeline::setupHWLights(LLDrawPool* pool) // Light 0 = Sun or Moon (All objects) { - LLVector4 sun_dir = environment.getSunDirectionCFR(); - LLVector4 moon_dir = environment.getMoonDirectionCFR(); + LLVector4 sun_dir(environment.getSunDirection(), 0.0f); + LLVector4 moon_dir(environment.getMoonDirection(), 0.0f); mSunDir.setVec(sun_dir); mMoonDir.setVec(moon_dir); @@ -8480,9 +8480,11 @@ void LLPipeline::renderDeferredLighting() glh::vec4f tc(mSunDir.mV); mat.mult_matrix_vec(tc); mTransformedSunDir.set(tc.v); + mTransformedSunDir.normalize(); glh::vec4f tc_moon(mMoonDir.mV); mTransformedMoonDir.set(tc_moon.v); + mTransformedMoonDir.normalize(); } gGL.pushMatrix(); @@ -9096,9 +9098,11 @@ void LLPipeline::renderDeferredLightingToRT(LLRenderTarget* target) glh::vec4f tc(mSunDir.mV); mat.mult_matrix_vec(tc); mTransformedSunDir.set(tc.v); + mTransformedSunDir.normalize(); glh::vec4f tc_moon(mMoonDir.mV); mTransformedMoonDir.set(tc_moon.v); + mTransformedMoonDir.normalize(); } gGL.pushMatrix(); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f69c3d261f..fcabf1059e 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -11101,7 +11101,7 @@ Cannot create large prims that intersect other residents. Please re-try when ot name="FailedToFindSettings" persist="true" type="alertmodal"> -Failed to find the settisgs named [DESC] in database. +Failed to find the settings named [DESC] in database. <tag>fail</tag> </notification> |