diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl | 20 | ||||
| -rw-r--r-- | indra/newview/llmaterialeditor.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/lltexturectrl.cpp | 12 | 
3 files changed, 32 insertions, 15 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl index fffbdb913e..ee3a5f1f31 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowUtil.glsl @@ -59,12 +59,12 @@ float pcfShadow(sampler2DShadow shadowMap, vec3 norm, vec4 stc, float bias_mul,      stc.xyz /= stc.w;      stc.z += offset * 2.0;      stc.x = floor(stc.x*shadow_res.x + fract(pos_screen.y*shadow_res.y))/shadow_res.x; // add some chaotic jitter to X sample pos according to Y to disguise the snapping going on here -    float cs = texture(shadowMap, stc.xyz).x; +    float cs = texture(shadowMap, stc.xyz);      float shadow = cs * 4.0; -    shadow += texture(shadowMap, stc.xyz+vec3( 1.5/shadow_res.x,  0.5/shadow_res.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3( 0.5/shadow_res.x, -1.5/shadow_res.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3(-1.5/shadow_res.x, -0.5/shadow_res.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3(-0.5/shadow_res.x,  1.5/shadow_res.y, 0.0)).x; +    shadow += texture(shadowMap, stc.xyz+vec3( 1.5/shadow_res.x,  0.5/shadow_res.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3( 0.5/shadow_res.x, -1.5/shadow_res.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3(-1.5/shadow_res.x, -0.5/shadow_res.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3(-0.5/shadow_res.x,  1.5/shadow_res.y, 0.0));      return clamp(shadow * 0.125, 0.0, 1.0);  #else      return 1.0; @@ -78,16 +78,16 @@ float pcfSpotShadow(sampler2DShadow shadowMap, vec4 stc, float bias_scale, vec2      stc.z += spot_shadow_bias * bias_scale;      stc.x = floor(proj_shadow_res.x * stc.x + fract(pos_screen.y*0.666666666)) / proj_shadow_res.x; // snap -    float cs = texture(shadowMap, stc.xyz).x; +    float cs = texture(shadowMap, stc.xyz);      float shadow = cs;      vec2 off = 1.0/proj_shadow_res;      off.y *= 1.5; -    shadow += texture(shadowMap, stc.xyz+vec3(off.x*2.0, off.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3(off.x, -off.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3(-off.x, off.y, 0.0)).x; -    shadow += texture(shadowMap, stc.xyz+vec3(-off.x*2.0, -off.y, 0.0)).x; +    shadow += texture(shadowMap, stc.xyz+vec3(off.x*2.0, off.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3(off.x, -off.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3(-off.x, off.y, 0.0)); +    shadow += texture(shadowMap, stc.xyz+vec3(-off.x*2.0, -off.y, 0.0));      return shadow*0.2;  #else      return 1.0; diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp index 41085afb3d..64ce5fd4d2 100644 --- a/indra/newview/llmaterialeditor.cpp +++ b/indra/newview/llmaterialeditor.cpp @@ -420,6 +420,13 @@ BOOL LLMaterialEditor::postBuild()          mEmissiveTextureCtrl->setOnSelectCallback(boost::bind(&LLMaterialEditor::onSelectCtrl, this, _1, _2, MATERIAL_EMISIVE_TEX_DIRTY));          mNormalTextureCtrl->setOnSelectCallback(boost::bind(&LLMaterialEditor::onSelectCtrl, this, _1, _2, MATERIAL_NORMAL_TEX_DIRTY));      } +    else +    { +        mBaseColorTextureCtrl->setCanApplyImmediately(false); +        mMetallicTextureCtrl->setCanApplyImmediately(false); +        mEmissiveTextureCtrl->setCanApplyImmediately(false); +        mNormalTextureCtrl->setCanApplyImmediately(false); +    }      if (!mIsOverride)      { @@ -461,6 +468,10 @@ BOOL LLMaterialEditor::postBuild()          mBaseColorCtrl->setOnCancelCallback(boost::bind(&LLMaterialEditor::onCancelCtrl, this, _1, _2, MATERIAL_BASE_COLOR_DIRTY));          mBaseColorCtrl->setOnSelectCallback(boost::bind(&LLMaterialEditor::onSelectCtrl, this, _1, _2, MATERIAL_BASE_COLOR_DIRTY));      } +    else +    { +        mBaseColorCtrl->setCanApplyImmediately(false); +    }      // transparency is a part of base color      childSetCommitCallback("transparency", changes_callback, (void*)&MATERIAL_BASE_COLOR_DIRTY);      childSetCommitCallback("alpha mode", changes_callback, (void*)&MATERIAL_ALPHA_MODE_DIRTY); @@ -477,6 +488,10 @@ BOOL LLMaterialEditor::postBuild()          mEmissiveColorCtrl->setOnCancelCallback(boost::bind(&LLMaterialEditor::onCancelCtrl, this, _1, _2, MATERIAL_EMISIVE_COLOR_DIRTY));          mEmissiveColorCtrl->setOnSelectCallback(boost::bind(&LLMaterialEditor::onSelectCtrl, this, _1, _2, MATERIAL_EMISIVE_COLOR_DIRTY));      } +    else +    { +        mEmissiveColorCtrl->setCanApplyImmediately(false); +    }      if (!mIsOverride)      { diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 4849015e79..6c38550049 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -251,7 +251,9 @@ void LLFloaterTexturePicker::setCanApplyImmediately(BOOL b)  {  	mCanApplyImmediately = b; -	getChild<LLUICtrl>("apply_immediate_check")->setValue(mCanApplyImmediately); +    LLUICtrl *apply_checkbox = getChild<LLUICtrl>("apply_immediate_check"); +    apply_checkbox->setValue(mCanApplyImmediately && gSavedSettings.getBOOL("TextureLivePreview")); +    apply_checkbox->setEnabled(mCanApplyImmediately);  }  void LLFloaterTexturePicker::stopUsingPipette() @@ -528,7 +530,7 @@ BOOL LLFloaterTexturePicker::postBuild()  	mNoCopyTextureSelected = FALSE; -	getChild<LLUICtrl>("apply_immediate_check")->setValue(gSavedSettings.getBOOL("TextureLivePreview")); +	getChild<LLUICtrl>("apply_immediate_check")->setValue(mCanApplyImmediately && gSavedSettings.getBOOL("TextureLivePreview"));  	childSetCommitCallback("apply_immediate_check", onApplyImmediateCheck, this);      getChildView("apply_immediate_check")->setEnabled(mCanApplyImmediately); @@ -862,7 +864,7 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem  			if(!mPreviewSettingChanged)  			{ -				mCanPreview = gSavedSettings.getBOOL("TextureLivePreview"); +				mCanPreview = mCanApplyImmediately && gSavedSettings.getBOOL("TextureLivePreview");  			}  			else  			{ @@ -1163,7 +1165,7 @@ void LLFloaterTexturePicker::onBakeTextureSelect(LLUICtrl* ctrl, void *user_data  	if (!self->mPreviewSettingChanged)  	{ -		self->mCanPreview = gSavedSettings.getBOOL("TextureLivePreview"); +		self->mCanPreview = self->mCanApplyImmediately && gSavedSettings.getBOOL("TextureLivePreview");  	}  	else  	{ @@ -1184,7 +1186,7 @@ void LLFloaterTexturePicker::setCanApply(bool can_preview, bool can_apply)  	getChildRef<LLUICtrl>("apply_immediate_check").setVisible(can_preview);  	mCanApply = can_apply; -	mCanPreview = can_preview ? gSavedSettings.getBOOL("TextureLivePreview") : false; +	mCanPreview = can_preview ? (mCanApplyImmediately && gSavedSettings.getBOOL("TextureLivePreview")) : false;  	mPreviewSettingChanged = true;  } | 
