MAINT-3223 Texture repeats synch feature
parent
9dcb80e637
commit
69db7cd947
|
|
@ -11878,6 +11878,17 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>SyncMaterialSettings</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>SyncMaterialSettings</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>SnapshotQuality</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -131,13 +131,13 @@ BOOL LLPanelFace::postBuild()
|
|||
childSetCommitCallback("combobox shininess",&LLPanelFace::onCommitShiny,this);
|
||||
childSetCommitCallback("combobox bumpiness",&LLPanelFace::onCommitBump,this);
|
||||
childSetCommitCallback("combobox alphamode",&LLPanelFace::onCommitAlphaMode,this);
|
||||
childSetCommitCallback("TexScaleU",&LLPanelFace::onCommitTextureInfo, this);
|
||||
childSetCommitCallback("TexScaleV",&LLPanelFace::onCommitTextureInfo, this);
|
||||
childSetCommitCallback("TexRot",&LLPanelFace::onCommitTextureInfo, this);
|
||||
childSetCommitCallback("TexScaleU",&LLPanelFace::onCommitTextureScaleX, this);
|
||||
childSetCommitCallback("TexScaleV",&LLPanelFace::onCommitTextureScaleY, this);
|
||||
childSetCommitCallback("TexRot",&LLPanelFace::onCommitTextureRot, this);
|
||||
childSetCommitCallback("rptctrl",&LLPanelFace::onCommitRepeatsPerMeter, this);
|
||||
childSetCommitCallback("checkbox planar align",&LLPanelFace::onCommitPlanarAlign, this);
|
||||
childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this);
|
||||
childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this);
|
||||
childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureOffsetX, this);
|
||||
childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureOffsetY, this);
|
||||
|
||||
childSetCommitCallback("bumpyScaleU",&LLPanelFace::onCommitMaterialBumpyScaleX, this);
|
||||
childSetCommitCallback("bumpyScaleV",&LLPanelFace::onCommitMaterialBumpyScaleY, this);
|
||||
|
|
@ -691,6 +691,8 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
|
|||
}
|
||||
|
||||
getChildView("radio_material_type")->setEnabled(editable);
|
||||
getChildView("checkbox_sync_settings")->setEnabled(editable);
|
||||
childSetValue("checkbox_sync_settings", gSavedSettings.getBOOL("SyncMaterialSettings"));
|
||||
updateVisibility();
|
||||
|
||||
bool identical = true; // true because it is anded below
|
||||
|
|
@ -1862,12 +1864,39 @@ void LLPanelFace::onSelectNormalTexture(const LLSD& data)
|
|||
sendBump(nmap_id.isNull() ? 0 : BUMPY_TEXTURE);
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::syncOffsetX(LLPanelFace* self, F32 offsetU)
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalOffsetX(self,offsetU);
|
||||
LLSelectedTEMaterial::setSpecularOffsetX(self,offsetU);
|
||||
self->getChild<LLSpinCtrl>("TexOffsetU")->forceSetValue(offsetU);
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::syncOffsetY(LLPanelFace* self, F32 offsetV)
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalOffsetY(self,offsetV);
|
||||
LLSelectedTEMaterial::setSpecularOffsetY(self,offsetV);
|
||||
self->getChild<LLSpinCtrl>("TexOffsetV")->forceSetValue(offsetV);
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::onCommitMaterialBumpyOffsetX(LLUICtrl* ctrl, void* userdata)
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setNormalOffsetX(self,self->getCurrentBumpyOffsetU());
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetX(self,self->getCurrentBumpyOffsetU());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalOffsetX(self,self->getCurrentBumpyOffsetU());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1875,7 +1904,15 @@ void LLPanelFace::onCommitMaterialBumpyOffsetY(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setNormalOffsetY(self,self->getCurrentBumpyOffsetV());
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetY(self,self->getCurrentBumpyOffsetV());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalOffsetY(self,self->getCurrentBumpyOffsetV());
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1883,7 +1920,15 @@ void LLPanelFace::onCommitMaterialShinyOffsetX(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setSpecularOffsetX(self,self->getCurrentShinyOffsetU());
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetX(self, self->getCurrentShinyOffsetU());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setSpecularOffsetX(self,self->getCurrentShinyOffsetU());
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1891,7 +1936,31 @@ void LLPanelFace::onCommitMaterialShinyOffsetY(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setSpecularOffsetY(self,self->getCurrentShinyOffsetV());
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetY(self,self->getCurrentShinyOffsetV());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setSpecularOffsetY(self,self->getCurrentShinyOffsetV());
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::syncRepeatX(LLPanelFace* self, F32 scaleU)
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,scaleU);
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,scaleU);
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::syncRepeatY(LLPanelFace* self, F32 scaleV)
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,scaleV);
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,scaleV);
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1904,7 +1973,16 @@ void LLPanelFace::onCommitMaterialBumpyScaleX(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
bumpy_scale_u *= 0.5f;
|
||||
}
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,bumpy_scale_u);
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexScaleU")->forceSetValue(self->getCurrentBumpyScaleU());
|
||||
syncRepeatX(self, bumpy_scale_u);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,bumpy_scale_u);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1917,7 +1995,17 @@ void LLPanelFace::onCommitMaterialBumpyScaleY(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
bumpy_scale_v *= 0.5f;
|
||||
}
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,bumpy_scale_v);
|
||||
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexScaleV")->forceSetValue(self->getCurrentBumpyScaleV());
|
||||
syncRepeatY(self, bumpy_scale_v);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,bumpy_scale_v);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1930,7 +2018,16 @@ void LLPanelFace::onCommitMaterialShinyScaleX(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
shiny_scale_u *= 0.5f;
|
||||
}
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,shiny_scale_u);
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexScaleU")->forceSetValue(self->getCurrentShinyScaleU());
|
||||
syncRepeatX(self, shiny_scale_u);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,shiny_scale_u);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1943,7 +2040,24 @@ void LLPanelFace::onCommitMaterialShinyScaleY(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
shiny_scale_v *= 0.5f;
|
||||
}
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,shiny_scale_v);
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexScaleV")->forceSetValue(self->getCurrentShinyScaleV());
|
||||
syncRepeatY(self, shiny_scale_v);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,shiny_scale_v);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPanelFace::syncMaterialRot(LLPanelFace* self, F32 rot)
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRotation(self,rot * DEG_TO_RAD);
|
||||
LLSelectedTEMaterial::setSpecularRotation(self,rot * DEG_TO_RAD);
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1951,7 +2065,16 @@ void LLPanelFace::onCommitMaterialBumpyRot(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setNormalRotation(self,self->getCurrentBumpyRot() * DEG_TO_RAD);
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexRot")->forceSetValue(self->getCurrentBumpyRot());
|
||||
syncMaterialRot(self, self->getCurrentBumpyRot());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setNormalRotation(self,self->getCurrentBumpyRot() * DEG_TO_RAD);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1959,7 +2082,16 @@ void LLPanelFace::onCommitMaterialShinyRot(LLUICtrl* ctrl, void* userdata)
|
|||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
llassert_always(self);
|
||||
LLSelectedTEMaterial::setSpecularRotation(self,self->getCurrentShinyRot() * DEG_TO_RAD);
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
self->getChild<LLSpinCtrl>("TexRot")->forceSetValue(self->getCurrentShinyRot());
|
||||
syncMaterialRot(self, self->getCurrentShinyRot());
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSelectedTEMaterial::setSpecularRotation(self,self->getCurrentShinyRot() * DEG_TO_RAD);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -1994,6 +2126,92 @@ void LLPanelFace::onCommitTextureInfo( LLUICtrl* ctrl, void* userdata )
|
|||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelFace::onCommitTextureScaleX( LLUICtrl* ctrl, void* userdata )
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
F32 bumpy_scale_u = self->getChild<LLUICtrl>("TexScaleU")->getValue().asReal();
|
||||
if (self->isIdenticalPlanarTexgen())
|
||||
{
|
||||
bumpy_scale_u *= 0.5f;
|
||||
}
|
||||
syncRepeatX(self, bumpy_scale_u);
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelFace::onCommitTextureScaleY( LLUICtrl* ctrl, void* userdata )
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
F32 bumpy_scale_v = self->getChild<LLUICtrl>("TexScaleV")->getValue().asReal();
|
||||
if (self->isIdenticalPlanarTexgen())
|
||||
{
|
||||
bumpy_scale_v *= 0.5f;
|
||||
}
|
||||
syncRepeatY(self, bumpy_scale_v);
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelFace::onCommitTextureRot( LLUICtrl* ctrl, void* userdata )
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncMaterialRot(self, self->getChild<LLUICtrl>("TexRot")->getValue().asReal());
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelFace::onCommitTextureOffsetX( LLUICtrl* ctrl, void* userdata )
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetX(self, self->getChild<LLUICtrl>("TexOffsetU")->getValue().asReal());
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLPanelFace::onCommitTextureOffsetY( LLUICtrl* ctrl, void* userdata )
|
||||
{
|
||||
LLPanelFace* self = (LLPanelFace*) userdata;
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
syncOffsetY(self, self->getChild<LLUICtrl>("TexOffsetV")->getValue().asReal());
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendTextureInfo();
|
||||
}
|
||||
self->updateUI(true);
|
||||
}
|
||||
|
||||
// Commit the number of repeats per meter
|
||||
// static
|
||||
void LLPanelFace::onCommitRepeatsPerMeter(LLUICtrl* ctrl, void* userdata)
|
||||
|
|
@ -2017,44 +2235,62 @@ void LLPanelFace::onCommitRepeatsPerMeter(LLUICtrl* ctrl, void* userdata)
|
|||
|
||||
LLSelectedTE::getObjectScaleS(obj_scale_s, identical_scale_s);
|
||||
LLSelectedTE::getObjectScaleS(obj_scale_t, identical_scale_t);
|
||||
|
||||
LLUICtrl* bumpy_scale_u = self->getChild<LLUICtrl>("bumpyScaleU");
|
||||
LLUICtrl* bumpy_scale_v = self->getChild<LLUICtrl>("bumpyScaleV");
|
||||
LLUICtrl* shiny_scale_u = self->getChild<LLUICtrl>("shinyScaleU");
|
||||
LLUICtrl* shiny_scale_v = self->getChild<LLUICtrl>("shinyScaleV");
|
||||
|
||||
switch (material_type)
|
||||
if (gSavedSettings.getBOOL("SyncMaterialSettings"))
|
||||
{
|
||||
case MATTYPE_DIFFUSE:
|
||||
{
|
||||
LLSelectMgr::getInstance()->selectionTexScaleAutofit( repeats_per_meter );
|
||||
}
|
||||
break;
|
||||
LLSelectMgr::getInstance()->selectionTexScaleAutofit( repeats_per_meter );
|
||||
|
||||
case MATTYPE_NORMAL:
|
||||
{
|
||||
LLUICtrl* bumpy_scale_u = self->getChild<LLUICtrl>("bumpyScaleU");
|
||||
LLUICtrl* bumpy_scale_v = self->getChild<LLUICtrl>("bumpyScaleV");
|
||||
|
||||
bumpy_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
bumpy_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
bumpy_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
bumpy_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
|
||||
shiny_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
shiny_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (material_type)
|
||||
{
|
||||
case MATTYPE_DIFFUSE:
|
||||
{
|
||||
LLSelectMgr::getInstance()->selectionTexScaleAutofit( repeats_per_meter );
|
||||
}
|
||||
break;
|
||||
|
||||
case MATTYPE_NORMAL:
|
||||
{
|
||||
bumpy_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
bumpy_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
|
||||
LLSelectedTEMaterial::setNormalRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setNormalRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
}
|
||||
break;
|
||||
|
||||
case MATTYPE_SPECULAR:
|
||||
{
|
||||
shiny_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
shiny_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
llassert(false);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case MATTYPE_SPECULAR:
|
||||
{
|
||||
LLUICtrl* shiny_scale_u = self->getChild<LLUICtrl>("shinyScaleU");
|
||||
LLUICtrl* shiny_scale_v = self->getChild<LLUICtrl>("shinyScaleV");
|
||||
|
||||
shiny_scale_u->setValue(obj_scale_s * repeats_per_meter);
|
||||
shiny_scale_v->setValue(obj_scale_t * repeats_per_meter);
|
||||
|
||||
LLSelectedTEMaterial::setSpecularRepeatX(self,obj_scale_s * repeats_per_meter);
|
||||
LLSelectedTEMaterial::setSpecularRepeatY(self,obj_scale_t * repeats_per_meter);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
llassert(false);
|
||||
break;
|
||||
}
|
||||
// vertical scale and repeats per meter depends on each other, so force set on changes
|
||||
self->updateUI(true);
|
||||
|
|
|
|||
|
|
@ -162,7 +162,12 @@ protected:
|
|||
|
||||
// Callback funcs for individual controls
|
||||
//
|
||||
static void onCommitTextureInfo( LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureInfo(LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureScaleX(LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureScaleY(LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureRot(LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureOffsetX(LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitTextureOffsetY(LLUICtrl* ctrl, void* userdata);
|
||||
|
||||
static void onCommitMaterialBumpyScaleX( LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitMaterialBumpyScaleY( LLUICtrl* ctrl, void* userdata);
|
||||
|
|
@ -170,6 +175,12 @@ protected:
|
|||
static void onCommitMaterialBumpyOffsetX( LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitMaterialBumpyOffsetY( LLUICtrl* ctrl, void* userdata);
|
||||
|
||||
static void syncRepeatX(LLPanelFace* self, F32 scaleU);
|
||||
static void syncRepeatY(LLPanelFace* self, F32 scaleV);
|
||||
static void syncOffsetX(LLPanelFace* self, F32 offsetU);
|
||||
static void syncOffsetY(LLPanelFace* self, F32 offsetV);
|
||||
static void syncMaterialRot(LLPanelFace* self, F32 rot);
|
||||
|
||||
static void onCommitMaterialShinyScaleX( LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitMaterialShinyScaleY( LLUICtrl* ctrl, void* userdata);
|
||||
static void onCommitMaterialShinyRot( LLUICtrl* ctrl, void* userdata);
|
||||
|
|
|
|||
|
|
@ -148,6 +148,18 @@
|
|||
top_pad="1"
|
||||
value="2"/>
|
||||
</radio_group>
|
||||
<check_box
|
||||
control_name="SyncMaterialSettings"
|
||||
follows="top|left"
|
||||
height="20"
|
||||
initial_value="false"
|
||||
label="Lock repeat"
|
||||
layout="topleft"
|
||||
left="8"
|
||||
name="checkbox_sync_settings"
|
||||
tool_tip="Adjust all maps repeats simultaneously"
|
||||
top_pad="-16"
|
||||
width="160" />
|
||||
<texture_picker
|
||||
can_apply_immediately="true"
|
||||
default_image_name="Default"
|
||||
|
|
@ -159,7 +171,7 @@
|
|||
left="10"
|
||||
name="texture control"
|
||||
tool_tip="Click to choose a picture"
|
||||
top_pad="7"
|
||||
top_pad="5"
|
||||
width="64" />
|
||||
<text
|
||||
type="string"
|
||||
|
|
|
|||
Loading…
Reference in New Issue