diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/lltexlayer.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llviewermenu.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llviewerobject.cpp | 51 | ||||
-rw-r--r-- | indra/newview/llviewerobject.h | 4 | ||||
-rw-r--r-- | indra/newview/llvlcomposition.cpp | 48 | ||||
-rw-r--r-- | indra/newview/llvlcomposition.h | 1 |
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]; |