summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lltexlayer.cpp2
-rw-r--r--indra/newview/llviewermenu.cpp13
-rw-r--r--indra/newview/llviewerobject.cpp51
-rw-r--r--indra/newview/llviewerobject.h4
-rw-r--r--indra/newview/llvlcomposition.cpp48
-rw-r--r--indra/newview/llvlcomposition.h1
6 files changed, 54 insertions, 65 deletions
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index bc35b90086..33e191cc9c 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -468,7 +468,7 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
// static
void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* userdata, S32 result) // StoreAssetData callback (not fixed)
{
- LLBakedUploadData* baked_upload_data = (LLBakedUploadData*)(U32)userdata;
+ LLBakedUploadData* baked_upload_data = (LLBakedUploadData*)userdata;
LLVOAvatar* avatar = gAgent.getAvatarObject();
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index a899d3d3d2..5ce64156a0 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -1203,7 +1203,7 @@ void init_debug_rendering_menu(LLMenuGL* menu)
menu->append(item);
- item = new LLMenuItemCheckGL("Animate Textures", menu_toggle_control, NULL, menu_check_control, (void*)"AnimateTextures", 'A', MASK_CONTROL|MASK_ALT);
+ item = new LLMenuItemCheckGL("Animate Textures", menu_toggle_control, NULL, menu_check_control, (void*)"AnimateTextures");
menu->append(item);
item = new LLMenuItemCheckGL("Disable Textures", menu_toggle_variable, NULL, menu_check_variable, (void*)&LLViewerImage::sDontLoadVolumeTextures);
@@ -5006,7 +5006,7 @@ const char* upload_pick(void* data)
LLFilePicker::ELoadFilter type;
if(data)
{
- type = (LLFilePicker::ELoadFilter)((S32)data);
+ type = (LLFilePicker::ELoadFilter)((intptr_t)data);
}
else
{
@@ -5911,7 +5911,7 @@ void handle_export_selected( void * )
BOOL menu_check_build_tool( void* user_data )
{
- S32 index = (S32) user_data;
+ S32 index = (intptr_t) user_data;
return gCurrentToolset->isToolSelected( index );
}
@@ -6204,7 +6204,7 @@ class LLObjectEnableSitOrStand : public view_listener_t
{
bool new_value = false;
LLViewerObject* dest_object = NULL;
- if(dest_object = gObjectList.findObject(gLastHitObjectID))
+ if((dest_object = gObjectList.findObject(gLastHitObjectID)))
{
if(dest_object->getPCode() == LL_PCODE_VOLUME)
{
@@ -8056,7 +8056,7 @@ void handle_debug_avatar_textures(void*)
void handle_grab_texture(void* data)
{
- LLVOAvatar::ETextureIndex index = (LLVOAvatar::ETextureIndex) ((U32) data);
+ LLVOAvatar::ETextureIndex index = (LLVOAvatar::ETextureIndex)((intptr_t)data);
LLVOAvatar* avatar = gAgent.getAvatarObject();
if ( avatar )
{
@@ -8147,7 +8147,7 @@ void handle_grab_texture(void* data)
BOOL enable_grab_texture(void* data)
{
- LLVOAvatar::ETextureIndex index = (LLVOAvatar::ETextureIndex) ((U32) data);
+ LLVOAvatar::ETextureIndex index = (LLVOAvatar::ETextureIndex)((intptr_t)data);
LLVOAvatar* avatar = gAgent.getAvatarObject();
if ( avatar )
{
@@ -8246,6 +8246,7 @@ BOOL LLViewerMenuHolderGL::hideMenus()
}
gMenuBarView->clearHoverItem();
gMenuBarView->resetMenuTrigger();
+
return handled;
}
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 7db94eb972..0d1910429e 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -420,38 +420,25 @@ void LLViewerObject::cleanupVOClasses()
// Replaces all name value pairs with data from \n delimited list
// Does not update server
-void LLViewerObject::setNameValueList(char* name_value_list)
+void LLViewerObject::setNameValueList(const std::string& name_value_list)
{
// Clear out the old
for_each(mNameValuePairs.begin(), mNameValuePairs.end(), DeletePairedPointer()) ;
mNameValuePairs.clear();
-
- // Bring in the new
- char* token_start = name_value_list;
- char* scan = name_value_list;
-
- if (*scan == '\0') return;
- BOOL done = FALSE;
- while (!done)
+ // Bring in the new
+ std::string::size_type length = name_value_list.length();
+ std::string::size_type start = 0;
+ while (start < length)
{
- while ( (*scan != '\0') && (*scan != '\n') )
- {
- scan++;
- }
-
- if (*scan == '\n')
- {
- *scan = '\0';
- addNVPair(token_start);
- scan++;
- token_start = scan;
- }
- else
+ std::string::size_type end = name_value_list.find_first_of("\n", start);
+ if (end == std::string::npos) end = length;
+ if (end > start)
{
- addNVPair(token_start);
- done = TRUE;
+ std::string tok = name_value_list.substr(start, end - start);
+ addNVPair(tok.c_str());
}
+ start = end+1;
}
}
@@ -1367,7 +1354,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (value & 0x4)
{
- char temp_string[256]; // not MAX_STRING, must hold 255 chars + \0
+ std::string temp_string;
dp->unpackString(temp_string, "Text");
LLColor4U coloru;
dp->unpackBinaryDataFixed(coloru.mV, 4, "Color");
@@ -1385,12 +1372,8 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (value & 0x200)
{
- char media_url[MAX_STRING+1];
+ std::string media_url;
dp->unpackString(media_url, "MediaURL");
- //if (media_url[0])
- //{
- // llinfos << "WEBONPRIM media_url " << media_url << llendl;
- //}
if (!mMedia)
{
retval |= MEDIA_URL_ADDED;
@@ -1461,10 +1444,10 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (value & 0x100)
{
- char name_value_list[2048];
+ std::string name_value_list;
dp->unpackString(name_value_list, "NV");
- setNameValueList(name_value_list);
+ setNameValueList(name_value_list.c_str());
}
mTotalCRC = crc;
@@ -2811,10 +2794,10 @@ void LLViewerObject::decreaseArrowLength()
}
// Culled from newsim LLTask::addNVPair
-void LLViewerObject::addNVPair(const char* data)
+void LLViewerObject::addNVPair(const std::string& data)
{
// cout << "LLViewerObject::addNVPair() with ---" << data << "---" << endl;
- LLNameValue *nv = new LLNameValue(data);
+ LLNameValue *nv = new LLNameValue(data.c_str());
// char splat[MAX_STRING];
// temp->printNameValue(splat);
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index 959c44abaa..285d684dc6 100644
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -118,7 +118,7 @@ public:
static void initVOClasses();
static void cleanupVOClasses();
- void addNVPair(const char* data);
+ void addNVPair(const std::string& data);
BOOL removeNVPair(const char *name);
LLNameValue *getNVPair(const char *name) const; // null if no name value pair by that name
@@ -519,7 +519,7 @@ protected:
void unpackParticleSource(LLDataPacker &dp, const LLUUID& owner_id);
private:
- void setNameValueList(char* list); // clears nv pairs and then individually adds \n separated NV pairs from \0 terminated string
+ void setNameValueList(const std::string& list); // clears nv pairs and then individually adds \n separated NV pairs from \0 terminated string
void deleteTEImages(); // correctly deletes list of images
protected:
diff --git a/indra/newview/llvlcomposition.cpp b/indra/newview/llvlcomposition.cpp
index 841b2cbb47..2127b92c74 100644
--- a/indra/newview/llvlcomposition.cpp
+++ b/indra/newview/llvlcomposition.cpp
@@ -93,6 +93,7 @@ void LLVLComposition::setDetailTextureID(S32 corner, const LLUUID& id)
return;
}
mDetailTextures[corner] = gImageList.getImage(id);
+ mRawImages[corner] = NULL;
}
BOOL LLVLComposition::generateHeights(const F32 x, const F32 y,
@@ -248,34 +249,37 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
//
// These have already been validated by generateComposition.
- LLPointer<LLImageRaw> st_raw[4];
U8* st_data[4];
for (S32 i = 0; i < 4; i++)
{
- // Read back a raw image for this discard level, if it exists
- st_raw[i] = new LLImageRaw;
- S32 min_dim = llmin(mDetailTextures[i]->getWidth(0), mDetailTextures[i]->getHeight(0));
- S32 ddiscard = 0;
- while (min_dim > BASE_SIZE && ddiscard < MAX_DISCARD_LEVEL)
+ if (mRawImages[i].isNull())
{
- ddiscard++;
- min_dim /= 2;
- }
- if (!mDetailTextures[i]->readBackRaw(ddiscard, st_raw[i]))
- {
- llwarns << "Unable to read raw data for terrain detail texture: " << mDetailTextures[i]->getID() << llendl;
- return FALSE;
- }
- if (mDetailTextures[i]->getWidth(ddiscard) != BASE_SIZE ||
- mDetailTextures[i]->getHeight(ddiscard) != BASE_SIZE ||
- mDetailTextures[i]->getComponents() != 3)
- {
- LLPointer<LLImageRaw> newraw = new LLImageRaw(BASE_SIZE, BASE_SIZE, 3);
- newraw->composite(st_raw[i]);
- st_raw[i] = newraw; // deletes old
+ // Read back a raw image for this discard level, if it exists
+ mRawImages[i] = new LLImageRaw;
+ S32 min_dim = llmin(mDetailTextures[i]->getWidth(0), mDetailTextures[i]->getHeight(0));
+ S32 ddiscard = 0;
+ while (min_dim > BASE_SIZE && ddiscard < MAX_DISCARD_LEVEL)
+ {
+ ddiscard++;
+ min_dim /= 2;
+ }
+ if (!mDetailTextures[i]->readBackRaw(ddiscard, mRawImages[i]))
+ {
+ llwarns << "Unable to read raw data for terrain detail texture: " << mDetailTextures[i]->getID() << llendl;
+ mRawImages[i] = NULL;
+ return FALSE;
+ }
+ if (mDetailTextures[i]->getWidth(ddiscard) != BASE_SIZE ||
+ mDetailTextures[i]->getHeight(ddiscard) != BASE_SIZE ||
+ mDetailTextures[i]->getComponents() != 3)
+ {
+ LLPointer<LLImageRaw> newraw = new LLImageRaw(BASE_SIZE, BASE_SIZE, 3);
+ newraw->composite(mRawImages[i]);
+ mRawImages[i] = newraw; // deletes old
+ }
}
- st_data[i] = st_raw[i]->getData();
+ st_data[i] = mRawImages[i]->getData();
}
///////////////////////////////////////
diff --git a/indra/newview/llvlcomposition.h b/indra/newview/llvlcomposition.h
index 1e929f33dd..35f0ac5879 100644
--- a/indra/newview/llvlcomposition.h
+++ b/indra/newview/llvlcomposition.h
@@ -56,6 +56,7 @@ protected:
BOOL mTexturesLoaded;
LLPointer<LLViewerImage> mDetailTextures[CORNER_COUNT];
+ LLPointer<LLImageRaw> mRawImages[CORNER_COUNT];
F32 mStartHeight[CORNER_COUNT];
F32 mHeightRange[CORNER_COUNT];