[DRTVWR-476] - add universal head,upper,lower tattoos

master
Anchor Linden 2018-06-13 01:09:27 +05:30
parent 56fc3222dc
commit 7abb0c99be
9 changed files with 304 additions and 37 deletions

View File

@ -1476,6 +1476,9 @@ BOOL LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
case TEX_HEAD_TATTOO:
case TEX_LOWER_TATTOO:
case TEX_UPPER_TATTOO:
case TEX_HEAD_UNIVERSAL_TATTOO:
case TEX_UPPER_UNIVERSAL_TATTOO:
case TEX_LOWER_UNIVERSAL_TATTOO:
case TEX_SKIRT_TATTOO:
case TEX_HAIR_TATTOO:
case TEX_EYES_TATTOO:

View File

@ -65,6 +65,10 @@ 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_HEAD_UNIVERSAL_TATTOO, new TextureEntry("head_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
addEntry(TEX_UPPER_UNIVERSAL_TATTOO, new TextureEntry("upper_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
addEntry(TEX_LOWER_UNIVERSAL_TATTOO, new TextureEntry("lower_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
addEntry(TEX_SKIRT_TATTOO, new TextureEntry("skirt_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
addEntry(TEX_HAIR_TATTOO, new TextureEntry("hair_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
addEntry(TEX_EYES_TATTOO, new TextureEntry("eyes_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
@ -93,20 +97,20 @@ LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
// Baked textures
addEntry(BAKED_HEAD, new BakedEntry(TEX_HEAD_BAKED,
"head", "a4b9dc38-e13b-4df9-b284-751efb0566ff",
3, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA,
5, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
4, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA, TEX_HEAD_UNIVERSAL_TATTOO,
6, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_UPPER, new BakedEntry(TEX_UPPER_BAKED,
"upper_body", "5943ff64-d26c-4a90-a8c0-d61f56bd98d4",
7, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA,
8, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_SHIRT, LLWearableType::WT_JACKET, LLWearableType::WT_GLOVES, LLWearableType::WT_UNDERSHIRT, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
8, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA, TEX_UPPER_UNIVERSAL_TATTOO,
9, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_SHIRT, LLWearableType::WT_JACKET, LLWearableType::WT_GLOVES, LLWearableType::WT_UNDERSHIRT, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_LOWER, new BakedEntry(TEX_LOWER_BAKED,
"lower_body", "2944ee70-90a7-425d-a5fb-d749c782ed7d",
8, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA,
9, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_PANTS, LLWearableType::WT_SHOES, LLWearableType::WT_SOCKS, LLWearableType::WT_JACKET, LLWearableType::WT_UNDERPANTS, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
9, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA, TEX_LOWER_UNIVERSAL_TATTOO,
10, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_PANTS, LLWearableType::WT_SHOES, LLWearableType::WT_SOCKS, LLWearableType::WT_JACKET, LLWearableType::WT_UNDERPANTS, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_EYES, new BakedEntry(TEX_EYES_BAKED,
"eyes", "27b1bc0f-979f-4b13-95fe-b981c2ba9788",

View File

@ -78,6 +78,9 @@ enum ETextureIndex
TEX_HEAD_TATTOO,
TEX_UPPER_TATTOO,
TEX_LOWER_TATTOO,
TEX_HEAD_UNIVERSAL_TATTOO,
TEX_UPPER_UNIVERSAL_TATTOO,
TEX_LOWER_UNIVERSAL_TATTOO,
TEX_SKIRT_TATTOO,
TEX_HAIR_TATTOO,
TEX_EYES_TATTOO,

View File

@ -1052,6 +1052,10 @@ S32 LLPrimitive::packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_fa
{
if (exception_faces >= ((U64)0x1 << 42))
{
if (exception_faces >= ((U64)0x1 << 49))
{
*cur_ptr++ = (U8)(((exception_faces >> 49) & 0x7F) | 0x80);
}
*cur_ptr++ = (U8)(((exception_faces >> 42) & 0x7F) | 0x80);
}
*cur_ptr++ = (U8)(((exception_faces >> 35) & 0x7F) | 0x80);
@ -1124,7 +1128,7 @@ S32 LLPrimitive::unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 dat
// Includes information about image ID, color, scale S,T, offset S,T and rotation
BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys) const
{
const U32 MAX_TES = 42;
const U32 MAX_TES = 45;
U8 image_ids[MAX_TES*16];
U8 colors[MAX_TES*4];
@ -1209,7 +1213,7 @@ BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys) const
BOOL LLPrimitive::packTEMessage(LLDataPacker &dp) const
{
const U32 MAX_TES = 42;
const U32 MAX_TES = 45;
U8 image_ids[MAX_TES*16];
U8 colors[MAX_TES*4];
@ -1416,7 +1420,7 @@ S32 LLPrimitive::unpackTEMessage(LLDataPacker &dp)
{
// use a negative block_num to indicate a single-block read (a non-variable block)
S32 retval = 0;
const U32 MAX_TES = 42;
const U32 MAX_TES = 45;
// Avoid construction of 32 UUIDs per call
static LLUUID image_ids[MAX_TES];

View File

@ -297,7 +297,7 @@ public:
// - Vir
struct LLTEContents
{
static const U32 MAX_TES = 42;
static const U32 MAX_TES = 45;
U8 image_data[MAX_TES*16];
U8 colors[MAX_TES*4];

View File

@ -10084,7 +10084,65 @@ render_pass="bump">
</param>
</layer>
<layer
name="head_universal_tattoo">
<texture
local_texture="head_universal_tattoo" />
<param
id="1229"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_head_universal_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="1230"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_head_universal_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="1231"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_head_universal_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>
@ -10261,7 +10319,65 @@ render_pass="bump">
</param>
</layer>
<layer
name="upper_universal_tattoo">
<texture
local_texture="upper_universal_tattoo" />
<param
id="1232"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_upper_universal_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="1233"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_upper_universal_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="1234"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_upper_universal_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
name="upper_undershirt bump"
@ -11513,7 +11629,65 @@ render_pass="bump">
</param>
</layer>
<layer
name="lower_universal_tattoo">
<texture
local_texture="lower_universal_tattoo" />
<param
id="1235"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_lower_universal_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="1236"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_lower_universal_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="1237"
group="1"
edit_group="colorpicker_driven"
wearable="universal"
name="tattoo_lower_universal_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
name="lower_underpants bump"
render_pass="bump"

View File

@ -818,6 +818,22 @@ LLAvatarAppearanceDefines::ETextureIndex LLLocalBitmap::getTexIndex(
result = LLAvatarAppearanceDefines::TEX_AUX3_TATTOO;
break;
}
case LLAvatarAppearanceDefines::BAKED_UPPER:
{
result = LLAvatarAppearanceDefines::TEX_UPPER_UNIVERSAL_TATTOO;
break;
}
case LLAvatarAppearanceDefines::BAKED_LOWER:
{
result = LLAvatarAppearanceDefines::TEX_LOWER_UNIVERSAL_TATTOO;
break;
}
case LLAvatarAppearanceDefines::BAKED_HEAD:
{
result = LLAvatarAppearanceDefines::TEX_HEAD_UNIVERSAL_TATTOO;
break;
}
default:
{

View File

@ -242,7 +242,7 @@ LLEditWearableDictionary::Wearables::Wearables()
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_UNIVERSAL, new WearableEntry(LLWearableType::WT_UNIVERSAL, "edit_universal_title", "universal_desc_text", texture_vec_t{ TEX_SKIRT_TATTOO }, texture_vec_t{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_UNIVERSAL }));
addEntry(LLWearableType::WT_UNIVERSAL, new WearableEntry(LLWearableType::WT_UNIVERSAL, "edit_universal_title", "universal_desc_text", texture_vec_t{ TEX_HEAD_UNIVERSAL_TATTOO }, texture_vec_t{ TEX_HEAD_UNIVERSAL_TATTOO, TEX_UPPER_UNIVERSAL_TATTOO, TEX_LOWER_UNIVERSAL_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_UNIVERSAL }));
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}));
}
@ -366,6 +366,9 @@ 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_LOWER_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_LOWER_UNIVERSAL_TATTOO, "Lower Universal Tattoo", LLUUID::null, TRUE));
addEntry ( TEX_UPPER_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_UPPER_UNIVERSAL_TATTOO, "Upper Universal Tattoo", LLUUID::null, TRUE));
addEntry ( TEX_HEAD_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_HEAD_UNIVERSAL_TATTOO, "Head Universal 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));

View File

@ -31,6 +31,72 @@
name="avatar_universal_color_panel"
top="0"
width="313" >
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
height="115"
label="Head Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Head Universal Tattoo"
tool_tip="Click to choose a picture"
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="Upper Tattoo"
layout="topleft"
left_pad="30"
top_delta="0"
name="Upper Universal Tattoo"
tool_tip="Click to choose a picture"
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="Lower Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Lower Universal Tattoo"
tool_tip="Click to choose a picture"
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="Skirt Tattoo"
layout="topleft"
left_pad="30"
top_delta="0"
name="Skirt Tattoo"
tool_tip="Click to choose a picture"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
</texture_picker>
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
@ -39,9 +105,10 @@
label="Hair Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Hair Tattoo"
tool_tip="Click to choose a picture"
top_pad="10"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -54,9 +121,10 @@
label="Eyes Tattoo"
layout="topleft"
left_pad="30"
top_delta="0"
name="Eyes Tattoo"
tool_tip="Click to choose a picture"
top_delta="0"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -69,9 +137,10 @@
label="Left Arm Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Left Arm Tattoo"
tool_tip="Click to choose a picture"
top_pad="10"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -84,9 +153,10 @@
label="Left Leg Tattoo"
layout="topleft"
left_pad="30"
top_delta="0"
name="Left Leg Tattoo"
tool_tip="Click to choose a picture"
top_delta="0"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -99,9 +169,10 @@
label="Aux1 Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Aux1 Tattoo"
tool_tip="Click to choose a picture"
top_pad="10"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -114,9 +185,10 @@
label="Aux2 Tattoo"
layout="topleft"
left_pad="30"
top_delta="0"
name="Aux2 Tattoo"
tool_tip="Click to choose a picture"
top_delta="0"
width="115" >
<texture_picker.commit_callback
function="TexturePicker.Commit" />
@ -129,38 +201,26 @@
label="Aux3 Tattoo"
layout="topleft"
left="20"
top_pad="10"
name="Aux3 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="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>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="115"
label="Color/Tint"
layout="topleft"
left="30"
left_pad="30"
top_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
top_pad="10"
width="115" >
<color_swatch.commit_callback
function="ColorSwatch.Commit" />