summaryrefslogtreecommitdiff
path: root/indra/llprimitive/llprimitive.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2012-06-28 14:24:04 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2012-06-28 14:24:04 -0400
commite4a0dda457039b1a04c74024d9fbcf02e071b13d (patch)
treecf9048cddf2d0ad8d8e6c0f2bacfa659d6eb8681 /indra/llprimitive/llprimitive.cpp
parent1f234f8593cb556d6515b7bbf3ac99d19fa4c5c3 (diff)
SH-3228 WIP - always respond to processAppearance for self, convert baked textures to checkerboards
Diffstat (limited to 'indra/llprimitive/llprimitive.cpp')
-rwxr-xr-xindra/llprimitive/llprimitive.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 30532247ac..c766d8a43c 100755
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -39,6 +39,7 @@
#include "lldatapacker.h"
#include "llsdutil_math.h"
#include "llprimtexturelist.h"
+#include "imageids.h"
/**
* exported constants
@@ -1227,12 +1228,12 @@ BOOL LLPrimitive::packTEMessage(LLDataPacker &dp) const
return FALSE;
}
-S32 LLPrimitive::unpackTEMessage(LLMessageSystem* mesgsys, char const* block_name)
+S32 LLPrimitive::unpackTEMessage(LLMessageSystem* mesgsys, char const* block_name, bool fake_images)
{
- return(unpackTEMessage(mesgsys,block_name,-1));
+ return(unpackTEMessage(mesgsys,block_name,-1,fake_images));
}
-S32 LLPrimitive::unpackTEMessage(LLMessageSystem* mesgsys, char const* block_name, const S32 block_num)
+S32 LLPrimitive::unpackTEMessage(LLMessageSystem* mesgsys, char const* block_name, const S32 block_num, bool fake_images)
{
// use a negative block_num to indicate a single-block read (a non-variable block)
S32 retval = 0;
@@ -1307,7 +1308,15 @@ S32 LLPrimitive::unpackTEMessage(LLMessageSystem* mesgsys, char const* block_nam
LLColor4U coloru;
for (U32 i = 0; i < face_count; i++)
{
- retval |= setTETexture(i, ((LLUUID*)image_data)[i]);
+ LLUUID& req_id = ((LLUUID*)image_data)[i];
+ if (fake_images & (req_id != IMG_DEFAULT) && (req_id != IMG_DEFAULT_AVATAR) && (req_id != IMG_INVISIBLE))
+ {
+ retval |= setTETexture(i, IMG_CHECKERBOARD_RGBA);
+ }
+ else
+ {
+ retval |= setTETexture(i, req_id);
+ }
retval |= setTEScale(i, scale_s[i], scale_t[i]);
retval |= setTEOffset(i, (F32)offset_s[i] / (F32)0x7FFF, (F32) offset_t[i] / (F32) 0x7FFF);
retval |= setTERotation(i, ((F32)image_rot[i] / TEXTURE_ROTATION_PACK_FACTOR) * F_TWO_PI);