summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llappearance/llavatarappearance.cpp8
-rw-r--r--indra/llappearance/llavatarappearancedefines.cpp89
-rw-r--r--indra/llappearance/llavatarappearancedefines.h18
-rw-r--r--indra/llcommon/indra_constants.cpp5
-rw-r--r--indra/llcommon/indra_constants.h5
-rw-r--r--indra/newview/character/avatar_lad.xml524
-rw-r--r--indra/newview/lllocalbitmaps.cpp40
-rw-r--r--indra/newview/llpaneleditwearable.cpp10
-rw-r--r--indra/newview/llpanelface.cpp3
-rw-r--r--indra/newview/lltexturectrl.cpp47
-rw-r--r--indra/newview/llvoavatar.cpp12
-rw-r--r--indra/newview/skins/default/xui/en/floater_texture_ctrl.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_tattoo.xml125
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_wearable.xml4
14 files changed, 894 insertions, 16 deletions
diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp
index e5089f028f..afc3274d64 100644
--- a/indra/llappearance/llavatarappearance.cpp
+++ b/indra/llappearance/llavatarappearance.cpp
@@ -1476,6 +1476,14 @@ BOOL LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
case TEX_HEAD_TATTOO:
case TEX_LOWER_TATTOO:
case TEX_UPPER_TATTOO:
+ case TEX_SKIRT_TATTOO:
+ case TEX_HAIR_TATTOO:
+ case TEX_EYES_TATTOO:
+ case TEX_LEFT_ARM_TATTOO:
+ case TEX_LEFT_LEG_TATTOO:
+ case TEX_AUX1_TATTOO:
+ case TEX_AUX2_TATTOO:
+ case TEX_AUX3_TATTOO:
param_name[0] = 1071; //"tattoo_red";
param_name[1] = 1072; //"tattoo_green";
param_name[2] = 1073; //"tattoo_blue";
diff --git a/indra/llappearance/llavatarappearancedefines.cpp b/indra/llappearance/llavatarappearancedefines.cpp
index c9b975a9cc..3e91b47c07 100644
--- a/indra/llappearance/llavatarappearancedefines.cpp
+++ b/indra/llappearance/llavatarappearancedefines.cpp
@@ -65,6 +65,15 @@ LLAvatarAppearanceDictionary::Textures::Textures()
addEntry(TEX_HEAD_TATTOO, new TextureEntry("head_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_SKIRT_TATTOO, new TextureEntry("skirt_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_HAIR_TATTOO, new TextureEntry("hair_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_EYES_TATTOO, new TextureEntry("eyes_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_LEFT_ARM_TATTOO, new TextureEntry("leftarm_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_LEFT_LEG_TATTOO, new TextureEntry("leftleg_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_AUX1_TATTOO, new TextureEntry("aux1_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_AUX2_TATTOO, new TextureEntry("aux2_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_AUX3_TATTOO, new TextureEntry("aux3_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+
addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", FALSE, BAKED_HEAD, "head"));
addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", FALSE, BAKED_UPPER, "upper"));
@@ -72,6 +81,11 @@ LLAvatarAppearanceDictionary::Textures::Textures()
addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", FALSE, BAKED_EYES, "eyes"));
addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", FALSE, BAKED_HAIR, "hair"));
addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", FALSE, BAKED_SKIRT, "skirt"));
+ addEntry(TEX_LEFT_ARM_BAKED, new TextureEntry("leftarm-baked", FALSE, BAKED_LEFT_ARM, "leftarm"));
+ addEntry(TEX_LEFT_LEG_BAKED, new TextureEntry("leftleg-baked", FALSE, BAKED_LEFT_LEG, "leftleg"));
+ addEntry(TEX_AUX1_BAKED, new TextureEntry("aux1-baked", FALSE, BAKED_AUX1, "aux1"));
+ addEntry(TEX_AUX2_BAKED, new TextureEntry("aux2-baked", FALSE, BAKED_AUX2, "aux2"));
+ addEntry(TEX_AUX3_BAKED, new TextureEntry("aux3-baked", FALSE, BAKED_AUX3, "aux3"));
}
LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
@@ -96,18 +110,43 @@ LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
addEntry(BAKED_EYES, new BakedEntry(TEX_EYES_BAKED,
"eyes", "27b1bc0f-979f-4b13-95fe-b981c2ba9788",
- 2, TEX_EYES_IRIS, TEX_EYES_ALPHA,
- 2, LLWearableType::WT_EYES, LLWearableType::WT_ALPHA));
+ 3, TEX_EYES_IRIS, TEX_EYES_TATTOO, TEX_EYES_ALPHA,
+ 3, LLWearableType::WT_EYES, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
addEntry(BAKED_SKIRT, new BakedEntry(TEX_SKIRT_BAKED,
"skirt", "03e7e8cb-1368-483b-b6f3-74850838ba63",
- 1, TEX_SKIRT,
- 1, LLWearableType::WT_SKIRT));
+ 2, TEX_SKIRT, TEX_SKIRT_TATTOO,
+ 2, LLWearableType::WT_SKIRT, LLWearableType::WT_TATTOO ));
addEntry(BAKED_HAIR, new BakedEntry(TEX_HAIR_BAKED,
"hair", "a60e85a9-74e8-48d8-8a2d-8129f28d9b61",
- 2, TEX_HAIR, TEX_HAIR_ALPHA,
- 2, LLWearableType::WT_HAIR, LLWearableType::WT_ALPHA));
+ 3, TEX_HAIR, TEX_HAIR_TATTOO, TEX_HAIR_ALPHA,
+ 3, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+
+ addEntry(BAKED_LEFT_ARM, new BakedEntry(TEX_LEFT_ARM_BAKED,
+ "leftarm", "9f39febf-22d7-0087-79d1-e9e8c6c9ed19",
+ 1, TEX_LEFT_ARM_TATTOO,
+ 1, LLWearableType::WT_TATTOO));
+
+ addEntry(BAKED_LEFT_LEG, new BakedEntry(TEX_LEFT_LEG_BAKED,
+ "leftleg", "054a7a58-8ed5-6386-0add-3b636fb28b78",
+ 1, TEX_LEFT_LEG_TATTOO,
+ 1, LLWearableType::WT_TATTOO));
+
+ addEntry(BAKED_AUX1, new BakedEntry(TEX_AUX1_BAKED,
+ "aux1", "790c11be-b25c-c17e-b4d2-6a4ad786b752",
+ 1, TEX_AUX1_TATTOO,
+ 1, LLWearableType::WT_TATTOO));
+
+ addEntry(BAKED_AUX2, new BakedEntry(TEX_AUX2_BAKED,
+ "aux2", "d78c478f-48c7-5928-5864-8d99fb1f521e",
+ 1, TEX_AUX2_TATTOO,
+ 1, LLWearableType::WT_TATTOO));
+
+ addEntry(BAKED_AUX3, new BakedEntry(TEX_AUX3_BAKED,
+ "aux3", "6a95dd53-edd9-aac8-f6d3-27ed99f3c3eb",
+ 1, TEX_AUX3_TATTOO,
+ 1, LLWearableType::WT_TATTOO));
}
LLAvatarAppearanceDictionary::MeshEntries::MeshEntries()
@@ -270,7 +309,8 @@ LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIn
// static
BOOL LLAvatarAppearanceDictionary::isBakedImageId(const LLUUID& id)
{
- if ((id == IMG_USE_BAKED_EYES) || (id == IMG_USE_BAKED_HAIR) || (id == IMG_USE_BAKED_HEAD) || (id == IMG_USE_BAKED_LOWER) || (id == IMG_USE_BAKED_SKIRT) || (id == IMG_USE_BAKED_UPPER))
+ if ((id == IMG_USE_BAKED_EYES) || (id == IMG_USE_BAKED_HAIR) || (id == IMG_USE_BAKED_HEAD) || (id == IMG_USE_BAKED_LOWER) || (id == IMG_USE_BAKED_SKIRT) || (id == IMG_USE_BAKED_UPPER)
+ || (id == IMG_USE_BAKED_LEFTARM) || (id == IMG_USE_BAKED_LEFTLEG) || (id == IMG_USE_BAKED_AUX1) || (id == IMG_USE_BAKED_AUX2) || (id == IMG_USE_BAKED_AUX3) )
{
return TRUE;
}
@@ -305,6 +345,26 @@ EBakedTextureIndex LLAvatarAppearanceDictionary::assetIdToBakedTextureIndex(cons
{
return BAKED_UPPER;
}
+ else if (id == IMG_USE_BAKED_LEFTARM)
+ {
+ return BAKED_LEFT_ARM;
+ }
+ else if (id == IMG_USE_BAKED_LEFTLEG)
+ {
+ return BAKED_LEFT_LEG;
+ }
+ else if (id == IMG_USE_BAKED_AUX1)
+ {
+ return BAKED_AUX1;
+ }
+ else if (id == IMG_USE_BAKED_AUX2)
+ {
+ return BAKED_AUX2;
+ }
+ else if (id == IMG_USE_BAKED_AUX3)
+ {
+ return BAKED_AUX3;
+ }
return BAKED_NUM_INDICES;
}
@@ -334,6 +394,21 @@ LLUUID LLAvatarAppearanceDictionary::localTextureIndexToMagicId(ETextureIndex t)
case LLAvatarAppearanceDefines::TEX_HAIR_BAKED:
id = IMG_USE_BAKED_HAIR;
break;
+ case LLAvatarAppearanceDefines::TEX_LEFT_ARM_BAKED:
+ id = IMG_USE_BAKED_LEFTARM;
+ break;
+ case LLAvatarAppearanceDefines::TEX_LEFT_LEG_BAKED:
+ id = IMG_USE_BAKED_LEFTLEG;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX1_BAKED:
+ id = IMG_USE_BAKED_AUX1;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX2_BAKED:
+ id = IMG_USE_BAKED_AUX2;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX3_BAKED:
+ id = IMG_USE_BAKED_AUX3;
+ break;
default:
break;
}
diff --git a/indra/llappearance/llavatarappearancedefines.h b/indra/llappearance/llavatarappearancedefines.h
index af94ea94f2..e55e4df10d 100644
--- a/indra/llappearance/llavatarappearancedefines.h
+++ b/indra/llappearance/llavatarappearancedefines.h
@@ -78,6 +78,19 @@ enum ETextureIndex
TEX_HEAD_TATTOO,
TEX_UPPER_TATTOO,
TEX_LOWER_TATTOO,
+ TEX_SKIRT_TATTOO,
+ TEX_HAIR_TATTOO,
+ TEX_EYES_TATTOO,
+ TEX_LEFT_ARM_TATTOO,
+ TEX_LEFT_LEG_TATTOO,
+ TEX_AUX1_TATTOO,
+ TEX_AUX2_TATTOO,
+ TEX_AUX3_TATTOO,
+ TEX_LEFT_ARM_BAKED, // Pre-composited
+ TEX_LEFT_LEG_BAKED, // Pre-composited
+ TEX_AUX1_BAKED, // Pre-composited
+ TEX_AUX2_BAKED, // Pre-composited
+ TEX_AUX3_BAKED, // Pre-composited
TEX_NUM_INDICES
};
@@ -89,6 +102,11 @@ enum EBakedTextureIndex
BAKED_EYES,
BAKED_SKIRT,
BAKED_HAIR,
+ BAKED_LEFT_ARM,
+ BAKED_LEFT_LEG,
+ BAKED_AUX1,
+ BAKED_AUX2,
+ BAKED_AUX3,
BAKED_NUM_INDICES
};
diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp
index a9bdab9f4e..d9000bb5ac 100644
--- a/indra/llcommon/indra_constants.cpp
+++ b/indra/llcommon/indra_constants.cpp
@@ -78,4 +78,9 @@ const LLUUID IMG_USE_BAKED_LOWER ("066d5659-0856-748e-a6de-495d896fe93b");
const LLUUID IMG_USE_BAKED_EYES ("136c0789-b42c-4c6c-134b-63669d981fcb");
const LLUUID IMG_USE_BAKED_SKIRT ("baf656f8-0b45-a85a-244e-f3bdb835f1a2");
const LLUUID IMG_USE_BAKED_HAIR ("1ba5b07f-2d59-21ed-066c-1e188f9a8cad");
+const LLUUID IMG_USE_BAKED_LEFTARM ("9f39febf-22d7-0087-79d1-e9e8c6c9ed19");
+const LLUUID IMG_USE_BAKED_LEFTLEG ("054a7a58-8ed5-6386-0add-3b636fb28b78");
+const LLUUID IMG_USE_BAKED_AUX1 ("790c11be-b25c-c17e-b4d2-6a4ad786b752");
+const LLUUID IMG_USE_BAKED_AUX2 ("d78c478f-48c7-5928-5864-8d99fb1f521e");
+const LLUUID IMG_USE_BAKED_AUX3 ("6a95dd53-edd9-aac8-f6d3-27ed99f3c3eb");
diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h
index 28e55b2091..dc518b8ab4 100644
--- a/indra/llcommon/indra_constants.h
+++ b/indra/llcommon/indra_constants.h
@@ -213,6 +213,11 @@ LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LOWER;
LL_COMMON_API extern const LLUUID IMG_USE_BAKED_EYES;
LL_COMMON_API extern const LLUUID IMG_USE_BAKED_SKIRT;
LL_COMMON_API extern const LLUUID IMG_USE_BAKED_HAIR;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LEFTARM;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LEFTLEG;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX1;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX2;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX3;
LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL;
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index df30f46002..6d49e22065 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -8947,6 +8947,66 @@
<texture
local_texture="hair_alpha" />
</layer>
+ <layer
+ name="hair_tattoo">
+ <texture
+ local_texture="hair_tattoo" />
+ <param
+ id="1211"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_hair_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1212"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_hair_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1213"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_hair_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -12235,6 +12295,66 @@ render_pass="bump">
<texture
local_texture="eyes_alpha" />
</layer>
+ <layer
+ name="eyes_tattoo">
+ <texture
+ local_texture="eyes_tattoo" />
+ <param
+ id="924"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_eyes_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="925"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_eyes_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="926"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_eyes_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
</layer_set>
@@ -12415,6 +12535,410 @@ render_pass="bump">
domain="0" />
</param>
</layer>
+ <layer
+ name="skirt_tattoo">
+ <texture
+ local_texture="skirt_tattoo" />
+ <param
+ id="1208"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_skirt_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1209"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_skirt_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1210"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_skirt_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
+ </layer_set>
+
+ <!-- =========================================================== -->
+ <layer_set
+ body_region="leftarm"
+ width="512"
+ height="512"
+ clear_alpha="false">
+
+ <layer
+ name="leftarm_tattoo">
+ <texture
+ local_texture="leftarm_tattoo" />
+ <param
+ id="1214"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftarm_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1215"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftarm_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1216"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftarm_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
+ </layer_set>
+
+ <!-- =========================================================== -->
+ <layer_set
+ body_region="leftleg"
+ width="512"
+ height="512"
+ clear_alpha="false">
+
+ <layer
+ name="leftleg_tattoo">
+ <texture
+ local_texture="leftleg_tattoo" />
+ <param
+ id="1217"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftleg_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1218"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftleg_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1219"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_leftleg_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
+ </layer_set>
+
+ <!-- =========================================================== -->
+ <layer_set
+ body_region="aux1"
+ width="512"
+ height="512"
+ clear_alpha="false">
+
+ <layer
+ name="aux1_tattoo">
+ <texture
+ local_texture="aux1_tattoo" />
+ <param
+ id="1220"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux1_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1221"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux1_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1222"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux1_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
+ </layer_set>
+
+ <!-- =========================================================== -->
+ <layer_set
+ body_region="aux2"
+ width="512"
+ height="512"
+ clear_alpha="false">
+
+ <layer
+ name="aux2_tattoo">
+ <texture
+ local_texture="aux2_tattoo" />
+ <param
+ id="1223"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux2_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1224"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux2_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1225"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux2_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
+
+ </layer_set>
+
+ <!-- =========================================================== -->
+ <layer_set
+ body_region="aux3"
+ width="512"
+ height="512"
+ clear_alpha="false">
+
+ <layer
+ name="aux3_tattoo">
+ <texture
+ local_texture="aux3_tattoo" />
+ <param
+ id="1226"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux3_red"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="255, 0, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1227"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux3_green"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 255, 0, 255" />
+ </param_color>
+ </param>
+
+ <param
+ id="1228"
+ group="1"
+ edit_group="colorpicker_driven"
+ wearable="tattoo"
+ name="tattoo_aux3_blue"
+ value_min="0"
+ value_max="1"
+ value_default="1">
+ <param_color>
+ <value
+ color="0, 0, 0, 255" />
+
+ <value
+ color="0, 0, 255, 255" />
+ </param_color>
+ </param>
+
+ </layer>
</layer_set>
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index a55938f334..29b374d411 100644
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -750,6 +750,46 @@ LLAvatarAppearanceDefines::ETextureIndex LLLocalBitmap::getTexIndex(
result = LLAvatarAppearanceDefines::TEX_UPPER_TATTOO;
break;
}
+ case LLAvatarAppearanceDefines::BAKED_SKIRT:
+ {
+ result = LLAvatarAppearanceDefines::TEX_SKIRT_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_EYES:
+ {
+ result = LLAvatarAppearanceDefines::TEX_EYES_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_HAIR:
+ {
+ result = LLAvatarAppearanceDefines::TEX_HAIR_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_LEFT_ARM:
+ {
+ result = LLAvatarAppearanceDefines::TEX_LEFT_ARM_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_LEFT_LEG:
+ {
+ result = LLAvatarAppearanceDefines::TEX_LEFT_LEG_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_AUX1:
+ {
+ result = LLAvatarAppearanceDefines::TEX_AUX1_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_AUX2:
+ {
+ result = LLAvatarAppearanceDefines::TEX_AUX2_TATTOO;
+ break;
+ }
+ case LLAvatarAppearanceDefines::BAKED_AUX3:
+ {
+ result = LLAvatarAppearanceDefines::TEX_AUX3_TATTOO;
+ break;
+ }
default:
{
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index a46fb3dfeb..bb8fadfdf4 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -240,7 +240,7 @@ LLEditWearableDictionary::Wearables::Wearables()
addEntry(LLWearableType::WT_UNDERPANTS, new WearableEntry(LLWearableType::WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text", texture_vec_t{TEX_LOWER_UNDERPANTS}, texture_vec_t{TEX_LOWER_UNDERPANTS}, subpart_vec_t{SUBPART_UNDERPANTS}));
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title","skirt_desc_text", texture_vec_t{TEX_SKIRT}, texture_vec_t{TEX_SKIRT}, subpart_vec_t{SUBPART_SKIRT}));
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title","alpha_desc_text", texture_vec_t(), texture_vec_t{TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA}, subpart_vec_t{SUBPART_ALPHA}));
- addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO}, subpart_vec_t{SUBPART_TATTOO}));
+ addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title","tattoo_desc_text", texture_vec_t{TEX_HEAD_TATTOO}, texture_vec_t{TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, TEX_SKIRT_TATTOO, TEX_HAIR_TATTOO, TEX_EYES_TATTOO, TEX_LEFT_ARM_TATTOO,TEX_LEFT_LEG_TATTOO,TEX_AUX1_TATTOO,TEX_AUX2_TATTOO,TEX_AUX3_TATTOO}, subpart_vec_t{SUBPART_TATTOO}));
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title","physics_desc_text", texture_vec_t(), texture_vec_t(), subpart_vec_t{SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED}));
}
@@ -362,6 +362,14 @@ LLEditWearableDictionary::TextureCtrls::TextureCtrls()
addEntry ( TEX_LOWER_TATTOO, new PickerControlEntry (TEX_LOWER_TATTOO, "Lower Tattoo", LLUUID::null, TRUE ));
addEntry ( TEX_UPPER_TATTOO, new PickerControlEntry (TEX_UPPER_TATTOO, "Upper Tattoo", LLUUID::null, TRUE ));
addEntry ( TEX_HEAD_TATTOO, new PickerControlEntry (TEX_HEAD_TATTOO, "Head Tattoo", LLUUID::null, TRUE ));
+ addEntry ( TEX_SKIRT_TATTOO, new PickerControlEntry(TEX_SKIRT_TATTOO, "Skirt Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_HAIR_TATTOO, new PickerControlEntry(TEX_HAIR_TATTOO, "Hair Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_EYES_TATTOO, new PickerControlEntry(TEX_EYES_TATTOO, "Eyes Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_LEFT_ARM_TATTOO, new PickerControlEntry(TEX_LEFT_ARM_TATTOO, "Left Arm Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_LEFT_LEG_TATTOO, new PickerControlEntry(TEX_LEFT_LEG_TATTOO, "Left Leg Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX1_TATTOO, new PickerControlEntry(TEX_AUX1_TATTOO, "Aux1 Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX2_TATTOO, new PickerControlEntry(TEX_AUX2_TATTOO, "Aux2 Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX3_BAKED, new PickerControlEntry(TEX_AUX3_TATTOO, "Aux3 Tattoo", LLUUID::null, TRUE));
}
LLEditWearableDictionary::PickerControlEntry::PickerControlEntry(ETextureIndex tex_index,
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 5689c44e21..fc2ef59f9f 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -2504,7 +2504,8 @@ void LLPanelFace::LLSelectedTE::getTexId(LLUUID& id, bool& identical)
LLTextureEntry *te = object->getTE(te_index);
if (te)
{
- if ((te->getID() == IMG_USE_BAKED_EYES) || (te->getID() == IMG_USE_BAKED_HAIR) || (te->getID() == IMG_USE_BAKED_HEAD) || (te->getID() == IMG_USE_BAKED_LOWER) || (te->getID() == IMG_USE_BAKED_SKIRT) || (te->getID() == IMG_USE_BAKED_UPPER))
+ if ((te->getID() == IMG_USE_BAKED_EYES) || (te->getID() == IMG_USE_BAKED_HAIR) || (te->getID() == IMG_USE_BAKED_HEAD) || (te->getID() == IMG_USE_BAKED_LOWER) || (te->getID() == IMG_USE_BAKED_SKIRT) || (te->getID() == IMG_USE_BAKED_UPPER)
+ || (te->getID() == IMG_USE_BAKED_LEFTARM) || (te->getID() == IMG_USE_BAKED_LEFTLEG) || (te->getID() == IMG_USE_BAKED_AUX1) || (te->getID() == IMG_USE_BAKED_AUX2) || (te->getID() == IMG_USE_BAKED_AUX3))
{
return te->getID();
}
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 0c823931c1..9c1dd0f1df 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -485,7 +485,8 @@ void LLFloaterTexturePicker::draw()
{
LLPointer<LLViewerFetchedTexture> texture = NULL;
- if ((mImageAssetID == IMG_USE_BAKED_EYES) || (mImageAssetID == IMG_USE_BAKED_HAIR) || (mImageAssetID == IMG_USE_BAKED_HEAD) || (mImageAssetID == IMG_USE_BAKED_LOWER) || (mImageAssetID == IMG_USE_BAKED_SKIRT) || (mImageAssetID == IMG_USE_BAKED_UPPER))
+ if ((mImageAssetID == IMG_USE_BAKED_EYES) || (mImageAssetID == IMG_USE_BAKED_HAIR) || (mImageAssetID == IMG_USE_BAKED_HEAD) || (mImageAssetID == IMG_USE_BAKED_LOWER) || (mImageAssetID == IMG_USE_BAKED_SKIRT) || (mImageAssetID == IMG_USE_BAKED_UPPER)
+ || (mImageAssetID == IMG_USE_BAKED_LEFTARM) || (mImageAssetID == IMG_USE_BAKED_LEFTLEG) || (mImageAssetID == IMG_USE_BAKED_AUX1) || (mImageAssetID == IMG_USE_BAKED_AUX2) || (mImageAssetID == IMG_USE_BAKED_AUX3))
{
LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
if (obj)
@@ -831,6 +832,27 @@ void LLFloaterTexturePicker::onModeSelect(LLUICtrl* ctrl, void *userdata)
{
val = 5;
}
+ else if (imageID == IMG_USE_BAKED_LEFTARM)
+ {
+ val = 6;
+ }
+ else if (imageID == IMG_USE_BAKED_LEFTLEG)
+ {
+ val = 7;
+ }
+ else if (imageID == IMG_USE_BAKED_AUX1)
+ {
+ val = 8;
+ }
+ else if (imageID == IMG_USE_BAKED_AUX2)
+ {
+ val = 9;
+ }
+ else if (imageID == IMG_USE_BAKED_AUX3)
+ {
+ val = 10;
+ }
+
self->getChild<LLComboBox>("l_bake_use_texture_combo_box")->setSelectedByValue(val, TRUE);
}
@@ -987,6 +1009,26 @@ void LLFloaterTexturePicker::onBakeTextureSelect(LLUICtrl* ctrl, void *user_data
{
imageID = IMG_USE_BAKED_HAIR;
}
+ else if (type == 6)
+ {
+ imageID = IMG_USE_BAKED_LEFTARM;
+ }
+ else if (type == 7)
+ {
+ imageID = IMG_USE_BAKED_LEFTLEG;
+ }
+ else if (type == 8)
+ {
+ imageID = IMG_USE_BAKED_AUX1;
+ }
+ else if (type == 9)
+ {
+ imageID = IMG_USE_BAKED_AUX2;
+ }
+ else if (type == 10)
+ {
+ imageID = IMG_USE_BAKED_AUX3;
+ }
self->setImageID(imageID);
self->mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here?
@@ -1556,7 +1598,8 @@ void LLTextureCtrl::draw()
{
LLPointer<LLViewerFetchedTexture> texture = NULL;
- if ((mImageAssetID == IMG_USE_BAKED_EYES) || (mImageAssetID == IMG_USE_BAKED_HAIR) || (mImageAssetID == IMG_USE_BAKED_HEAD) || (mImageAssetID == IMG_USE_BAKED_LOWER) || (mImageAssetID == IMG_USE_BAKED_SKIRT) || (mImageAssetID == IMG_USE_BAKED_UPPER))
+ if ((mImageAssetID == IMG_USE_BAKED_EYES) || (mImageAssetID == IMG_USE_BAKED_HAIR) || (mImageAssetID == IMG_USE_BAKED_HEAD) || (mImageAssetID == IMG_USE_BAKED_LOWER) || (mImageAssetID == IMG_USE_BAKED_SKIRT) || (mImageAssetID == IMG_USE_BAKED_UPPER)
+ || (mImageAssetID == IMG_USE_BAKED_LEFTARM) || (mImageAssetID == IMG_USE_BAKED_LEFTLEG) || (mImageAssetID == IMG_USE_BAKED_AUX1) || (mImageAssetID == IMG_USE_BAKED_AUX2) || (mImageAssetID == IMG_USE_BAKED_AUX3))
{
LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
if (obj)
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 5951733634..6a046534e3 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -7260,6 +7260,11 @@ void LLVOAvatar::updateMeshVisibility()
bake_flag[BAKED_LOWER] |= (tex_entry->getID() == IMG_USE_BAKED_LOWER);
bake_flag[BAKED_UPPER] |= (tex_entry->getID() == IMG_USE_BAKED_UPPER);
bake_flag[BAKED_SKIRT] |= (tex_entry->getID() == IMG_USE_BAKED_SKIRT);
+ bake_flag[BAKED_LEFT_ARM] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTARM);
+ bake_flag[BAKED_LEFT_LEG] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTLEG);
+ bake_flag[BAKED_AUX1] |= (tex_entry->getID() == IMG_USE_BAKED_AUX1);
+ bake_flag[BAKED_AUX2] |= (tex_entry->getID() == IMG_USE_BAKED_AUX2);
+ bake_flag[BAKED_AUX3] |= (tex_entry->getID() == IMG_USE_BAKED_AUX3);
}
}
@@ -7279,6 +7284,11 @@ void LLVOAvatar::updateMeshVisibility()
bake_flag[BAKED_LOWER] |= (tex_entry->getID() == IMG_USE_BAKED_LOWER);
bake_flag[BAKED_UPPER] |= (tex_entry->getID() == IMG_USE_BAKED_UPPER);
bake_flag[BAKED_SKIRT] |= (tex_entry->getID() == IMG_USE_BAKED_SKIRT);
+ bake_flag[BAKED_LEFT_ARM] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTARM);
+ bake_flag[BAKED_LEFT_LEG] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTLEG);
+ bake_flag[BAKED_AUX1] |= (tex_entry->getID() == IMG_USE_BAKED_AUX1);
+ bake_flag[BAKED_AUX2] |= (tex_entry->getID() == IMG_USE_BAKED_AUX2);
+ bake_flag[BAKED_AUX3] |= (tex_entry->getID() == IMG_USE_BAKED_AUX3);
}
}
}
@@ -7286,7 +7296,7 @@ void LLVOAvatar::updateMeshVisibility()
}
}
- LL_INFOS() << "head " << bake_flag[BAKED_HEAD] << "eyes " << bake_flag[BAKED_EYES] << "hair " << bake_flag[BAKED_HAIR] << "lower " << bake_flag[BAKED_LOWER] << "upper " << bake_flag[BAKED_UPPER] << "skirt " << bake_flag[BAKED_SKIRT] << LL_ENDL;
+ //LL_INFOS() << "head " << bake_flag[BAKED_HEAD] << "eyes " << bake_flag[BAKED_EYES] << "hair " << bake_flag[BAKED_HAIR] << "lower " << bake_flag[BAKED_LOWER] << "upper " << bake_flag[BAKED_UPPER] << "skirt " << bake_flag[BAKED_SKIRT] << LL_ENDL;
for (S32 i = 0; i < mMeshLOD.size(); i++)
{
diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
index 9bce037cba..549f4aca28 100644
--- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
@@ -275,6 +275,26 @@
label="BAKED_HAIR"
name="BAKED_HAIR"
value="5" />
+ <combo_box.item
+ label="BAKED_LEFTARM"
+ name="BAKED_LEFTARM"
+ value="6" />
+ <combo_box.item
+ label="BAKED_LEFTLEG"
+ name="BAKED_LEFTLEG"
+ value="7" />
+ <combo_box.item
+ label="BAKED_AUX1"
+ name="BAKED_AUX1"
+ value="8" />
+ <combo_box.item
+ label="BAKED_AUX2"
+ name="BAKED_AUX2"
+ value="9" />
+ <combo_box.item
+ label="BAKED_AUX3"
+ name="BAKED_AUX3"
+ value="10" />
</combo_box>
<check_box
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
index 97f1a1a658..2870dc4b48 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_tattoo.xml
@@ -2,7 +2,7 @@
<panel
background_visible="true"
follows="all"
- height="400"
+ height="900"
layout="topleft"
left="0"
name="edit_tattoo_panel"
@@ -15,7 +15,7 @@
background_visible="true"
background_opaque="true"
follows="all"
- height="400"
+ height="900"
left="10"
layout="topleft"
name="avatar_tattoo_color_panel"
@@ -66,6 +66,127 @@
<texture_picker.commit_callback
function="TexturePicker.Commit" />
</texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Skirt Tattoo"
+ layout="topleft"
+ left_pad="30"
+ name="Skirt Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Hair Tattoo"
+ layout="topleft"
+ left="20"
+ name="Hair Tattoo"
+ tool_tip="Click to choose a picture"
+ top_pad="10"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Eyes Tattoo"
+ layout="topleft"
+ left_pad="30"
+ name="Eyes Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Left Arm Tattoo"
+ layout="topleft"
+ left="20"
+ name="Left Arm Tattoo"
+ tool_tip="Click to choose a picture"
+ top_pad="10"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Left Leg Tattoo"
+ layout="topleft"
+ left_pad="30"
+ name="Left Leg Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Aux1 Tattoo"
+ layout="topleft"
+ left="20"
+ name="Aux1 Tattoo"
+ tool_tip="Click to choose a picture"
+ top_pad="10"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Aux2 Tattoo"
+ layout="topleft"
+ left_pad="30"
+ name="Aux2 Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="115"
+ label="Aux3 Tattoo"
+ layout="topleft"
+ left="20"
+ name="Aux3 Tattoo"
+ tool_tip="Click to choose a picture"
+ top_pad="10"
+ width="115" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+
<color_swatch
can_apply_immediately="true"
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index f34b913218..97c830a421 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -3,7 +3,7 @@
background_visible="true"
bevel_style="in"
follows="all"
- height="570"
+ height="700"
help_topic="edit_wearable"
label="Wearable"
layout="topleft"
@@ -411,7 +411,7 @@
<panel
filename="panel_edit_tattoo.xml"
follows="all"
- height="425"
+ height="900"
layout="topleft"
left="0"
name="edit_tattoo_panel"