Merge Firestorm LGPL
commit
25d83975f4
1
.hgtags
1
.hgtags
|
|
@ -590,3 +590,4 @@ a3143db58a0f6b005232bf9018e7fef17ff9ec90 6.1.0-release
|
|||
82a89165e5929a6c3073d6cd60a543cb395f147b 6.2.0-release
|
||||
706bdc7e25c6e6b8fb56f4a13fcce2936e70a79c 6.2.1-release
|
||||
ec09daf1899c1c01c4ba0ba950fae572f2a612a8 6.2.2-release
|
||||
ab2ec5c5423b277d23fd0511ce50c15123ff2e03 6.2.3-release
|
||||
|
|
|
|||
|
|
@ -1330,6 +1330,7 @@ Sovereign Engineer
|
|||
STORM-2143
|
||||
STORM-2148
|
||||
MAINT-7343
|
||||
SL-11079
|
||||
SpacedOut Frye
|
||||
VWR-34
|
||||
VWR-45
|
||||
|
|
|
|||
|
|
@ -3046,6 +3046,7 @@ BOOL LLWindowWin32::restoreGamma()
|
|||
{
|
||||
if (mCustomGammaSet != FALSE)
|
||||
{
|
||||
LL_DEBUGS("Window") << "Restoring gamma" << LL_ENDL;
|
||||
mCustomGammaSet = FALSE;
|
||||
return SetDeviceGammaRamp(mhDC, mPrevGammaRamp);
|
||||
}
|
||||
|
|
@ -3059,8 +3060,15 @@ BOOL LLWindowWin32::setGamma(const F32 gamma)
|
|||
//Get the previous gamma ramp to restore later.
|
||||
if (mCustomGammaSet == FALSE)
|
||||
{
|
||||
if (GetDeviceGammaRamp(mhDC, mPrevGammaRamp) == FALSE)
|
||||
return FALSE;
|
||||
if (!gGLManager.mIsIntel) // skip for Intel GPUs (see SL-11341)
|
||||
{
|
||||
LL_DEBUGS("Window") << "Getting the previous gamma ramp to restore later" << LL_ENDL;
|
||||
if(GetDeviceGammaRamp(mhDC, mPrevGammaRamp) == FALSE)
|
||||
{
|
||||
LL_WARNS("Window") << "Failed to get the previous gamma ramp" << LL_ENDL;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
mCustomGammaSet = TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.2.3
|
||||
6.2.4
|
||||
|
|
|
|||
|
|
@ -919,7 +919,7 @@ BOOL FSFloaterIM::postBuild()
|
|||
bool isFSSupportGroup = FSData::getInstance()->isFirestormGroup(mSessionID);
|
||||
|
||||
childSetVisible("testing_panel", FSData::getInstance()->isTestingGroup(mSessionID));
|
||||
childSetVisible("support_panel", FSData::getInstance()->isSupportGroup(mSessionID));
|
||||
childSetVisible("support_panel", isFSSupportGroup);
|
||||
|
||||
// <FS:Zi> Viewer version popup
|
||||
if (isFSSupportGroup)
|
||||
|
|
|
|||
|
|
@ -2992,7 +2992,7 @@ bool LLAgentCamera::isfollowCamLocked()
|
|||
|
||||
BOOL LLAgentCamera::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position)
|
||||
{
|
||||
// Ansariel: Remember the current object point pointed at - we might need it later
|
||||
// <FS:Ansariel> Remember the current object point pointed at - we might need it later
|
||||
mPointAtObject = object;
|
||||
|
||||
// disallow pointing at attachments and avatars
|
||||
|
|
@ -3000,6 +3000,14 @@ BOOL LLAgentCamera::setPointAt(EPointAtType target_type, LLViewerObject *object,
|
|||
static LLCachedControl<bool> private_pointat(gSavedSettings, "PrivatePointAtTarget", false);
|
||||
if (object && (object->isAttachment() || object->isAvatar() || private_pointat))
|
||||
{
|
||||
// <FS:Ansariel> Remove HUD effect if it still exists
|
||||
if (mPointAt && !mPointAt->isDead())
|
||||
{
|
||||
mPointAt->clearPointAtTarget();
|
||||
mPointAt->markDead();
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
if (!mPointAt || mPointAt->isDead())
|
||||
|
|
|
|||
|
|
@ -6925,6 +6925,37 @@ void handle_attachment_touch(const LLUUID& idItem)
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// <FS:Zi> Texture Refresh on worn attachments
|
||||
void handle_attachment_texture_refresh(const LLUUID& idItem)
|
||||
{
|
||||
// get the associated worn attachment's UUID
|
||||
const LLInventoryItem* pItem = gInventory.getItem(idItem);
|
||||
if ( (!isAgentAvatarValid()) || (!pItem) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LLViewerObject* pAttachObj = gAgentAvatarp->getWornAttachment(pItem->getLinkedUUID());
|
||||
if (!pAttachObj)
|
||||
return;
|
||||
|
||||
// iterate through the list of child prims, call texture refresh on each one of them
|
||||
LLViewerObject::const_child_list_t& children = pAttachObj->getChildren();
|
||||
for (LLViewerObject::child_list_t::const_iterator iter = children.begin();
|
||||
iter != children.end(); iter++)
|
||||
{
|
||||
LLViewerObject* child = *iter;
|
||||
|
||||
// NULL means, we don't have individual texture faces selected,
|
||||
// so refresh them all
|
||||
handle_object_tex_refresh(child, NULL);
|
||||
}
|
||||
|
||||
// texture refresh the root prim, too
|
||||
handle_object_tex_refresh(pAttachObj, NULL);
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
||||
// virtual
|
||||
void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
|
||||
{
|
||||
|
|
@ -6971,6 +7002,12 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
|
|||
handle_attachment_touch(mUUID);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
// <FS:Zi> Texture Refresh on worn attachments
|
||||
else if ("texture_refresh_attachment" == action)
|
||||
{
|
||||
handle_attachment_texture_refresh(mUUID);
|
||||
}
|
||||
// </FS:Zi>
|
||||
else if (isRemoveAction(action))
|
||||
{
|
||||
LLAppearanceMgr::instance().removeItemFromAvatar(mUUID);
|
||||
|
|
@ -7161,6 +7198,13 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
if ( ((flags & FIRST_SELECTED_ITEM) == 0) || (!enable_attachment_touch(mUUID)) )
|
||||
disabled_items.push_back(std::string("Touch Attachment"));
|
||||
|
||||
// <FS:Zi> Texture Refresh on worn attachments
|
||||
if (item->getType() == LLAssetType::AT_OBJECT)
|
||||
{
|
||||
items.push_back(std::string("Texture Refresh Attachment"));
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
||||
items.push_back(std::string("Detach From Yourself"));
|
||||
// [RLVa:KB] - Checked: 2010-02-27 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a
|
||||
if ( (rlv_handler_t::isEnabled()) && (!gRlvAttachmentLocks.canDetach(item)) )
|
||||
|
|
|
|||
|
|
@ -3119,6 +3119,67 @@ void destroy_texture(const LLUUID& id) // will be used by the texture refresh f
|
|||
LLAppViewer::getTextureCache()->removeFromCache(id);
|
||||
}
|
||||
|
||||
void handle_object_tex_refresh(LLViewerObject* object, LLSelectNode* node)
|
||||
{
|
||||
U8 te_count = object->getNumTEs();
|
||||
// map from texture ID to list of faces using it
|
||||
typedef std::map< LLUUID, std::vector<U8> > map_t;
|
||||
map_t faces_per_texture;
|
||||
for (U8 i = 0; i < te_count; ++i)
|
||||
{
|
||||
// "node" will be NULL when invoked from inventory menu,
|
||||
// otherwise it will hold the root node of the selection and we
|
||||
// need to make sure only to refresh the selected faces
|
||||
if (node && !node->isTESelected(i)) continue;
|
||||
|
||||
LLViewerTexture* img = object->getTEImage(i);
|
||||
faces_per_texture[img->getID()].push_back(i);
|
||||
|
||||
if (object->getTE(i)->getMaterialParams().notNull())
|
||||
{
|
||||
LLViewerTexture* norm_img = object->getTENormalMap(i);
|
||||
faces_per_texture[norm_img->getID()].push_back(i);
|
||||
|
||||
LLViewerTexture* spec_img = object->getTESpecularMap(i);
|
||||
faces_per_texture[spec_img->getID()].push_back(i);
|
||||
}
|
||||
}
|
||||
|
||||
map_t::iterator it;
|
||||
for (it = faces_per_texture.begin(); it != faces_per_texture.end(); ++it)
|
||||
{
|
||||
destroy_texture(it->first);
|
||||
}
|
||||
|
||||
// Refresh sculpt texture
|
||||
if (object->isSculpted())
|
||||
{
|
||||
LLSculptParams *sculpt_params = (LLSculptParams *)object->getParameterEntry(LLNetworkData::PARAMS_SCULPT);
|
||||
if (sculpt_params)
|
||||
{
|
||||
LLUUID sculpt_uuid = sculpt_params->getSculptTexture();
|
||||
|
||||
LLViewerFetchedTexture* tx = LLViewerTextureManager::getFetchedTexture(sculpt_uuid);
|
||||
if (tx)
|
||||
{
|
||||
S32 num_volumes = tx->getNumVolumes(LLRender::SCULPT_TEX);
|
||||
const LLViewerTexture::ll_volume_list_t* pVolumeList = tx->getVolumeList(LLRender::SCULPT_TEX);
|
||||
|
||||
destroy_texture(sculpt_uuid);
|
||||
|
||||
for (S32 idxVolume = 0; idxVolume < num_volumes; ++idxVolume)
|
||||
{
|
||||
LLVOVolume* pVolume = pVolumeList->at(idxVolume);
|
||||
if (pVolume)
|
||||
{
|
||||
pVolume->notifyMeshLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class LLObjectTexRefresh : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
|
|
@ -3128,61 +3189,7 @@ class LLObjectTexRefresh : public view_listener_t
|
|||
iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++)
|
||||
{
|
||||
LLSelectNode* node = *iter;
|
||||
|
||||
U8 te_count = node->getObject()->getNumTEs();
|
||||
// map from texture ID to list of faces using it
|
||||
typedef std::map< LLUUID, std::vector<U8> > map_t;
|
||||
map_t faces_per_texture;
|
||||
for (U8 i = 0; i < te_count; ++i)
|
||||
{
|
||||
if (!node->isTESelected(i)) continue;
|
||||
|
||||
LLViewerTexture* img = node->getObject()->getTEImage(i);
|
||||
faces_per_texture[img->getID()].push_back(i);
|
||||
|
||||
if (node->getObject()->getTE(i)->getMaterialParams().notNull())
|
||||
{
|
||||
LLViewerTexture* norm_img = node->getObject()->getTENormalMap(i);
|
||||
faces_per_texture[norm_img->getID()].push_back(i);
|
||||
|
||||
LLViewerTexture* spec_img = node->getObject()->getTESpecularMap(i);
|
||||
faces_per_texture[spec_img->getID()].push_back(i);
|
||||
}
|
||||
}
|
||||
|
||||
map_t::iterator it;
|
||||
for (it = faces_per_texture.begin(); it != faces_per_texture.end(); ++it)
|
||||
{
|
||||
destroy_texture(it->first);
|
||||
}
|
||||
|
||||
// Refresh sculpt texture
|
||||
if (node->getObject()->isSculpted())
|
||||
{
|
||||
LLSculptParams *sculpt_params = (LLSculptParams *)node->getObject()->getParameterEntry(LLNetworkData::PARAMS_SCULPT);
|
||||
if (sculpt_params)
|
||||
{
|
||||
LLUUID sculpt_uuid = sculpt_params->getSculptTexture();
|
||||
|
||||
LLViewerFetchedTexture* tx = LLViewerTextureManager::getFetchedTexture(sculpt_uuid);
|
||||
if (tx)
|
||||
{
|
||||
S32 num_volumes = tx->getNumVolumes(LLRender::SCULPT_TEX);
|
||||
const LLViewerTexture::ll_volume_list_t* pVolumeList = tx->getVolumeList(LLRender::SCULPT_TEX);
|
||||
|
||||
destroy_texture(sculpt_uuid);
|
||||
|
||||
for (S32 idxVolume = 0; idxVolume < num_volumes; ++idxVolume)
|
||||
{
|
||||
LLVOVolume* pVolume = pVolumeList->at(idxVolume);
|
||||
if (pVolume)
|
||||
{
|
||||
pVolume->notifyMeshLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
handle_object_tex_refresh(node->getObject(),node);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class LLView;
|
|||
class LLParcelSelection;
|
||||
class LLObjectSelection;
|
||||
class LLSelectNode;
|
||||
class LLViewerObject;
|
||||
|
||||
// [RLVa:KB] - Checked: RLVa-2.0.0
|
||||
void set_use_wireframe(bool useWireframe);
|
||||
|
|
@ -103,6 +104,7 @@ void handle_object_build(void*);
|
|||
void handle_object_touch();
|
||||
bool enable_object_open();
|
||||
void handle_object_open();
|
||||
void handle_object_tex_refresh(LLViewerObject* object, LLSelectNode* node);
|
||||
|
||||
bool visible_take_object();
|
||||
bool tools_visible_take_object();
|
||||
|
|
|
|||
|
|
@ -71,5 +71,18 @@ void SanityCheck::onSanity(LLControlVariable* controlp)
|
|||
args["SANITY_MESSAGE"] = LLTrans::getString(checkType, map);
|
||||
args["SANITY_COMMENT"] = controlp->getSanityComment();
|
||||
args["CURRENT_VALUE"] = controlp->getValue().asString();
|
||||
LLNotificationsUtil::add("SanityCheck", args);
|
||||
LLNotificationsUtil::add("SanityCheck", args, LLSD(), boost::bind(SanityCheck::onFixIt, _1, _2, controlp));
|
||||
}
|
||||
|
||||
void SanityCheck::onFixIt(const LLSD& notification, const LLSD& response, LLControlVariable* controlp)
|
||||
{
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
if (option == 0) // Fix it
|
||||
{
|
||||
if (controlp)
|
||||
{
|
||||
controlp->resetToDefault(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ public:
|
|||
void init();
|
||||
|
||||
static void onSanity(LLControlVariable* controlp);
|
||||
static void onFixIt(const LLSD& notification, const LLSD& response, LLControlVariable* controlp);
|
||||
};
|
||||
|
||||
#endif // SANITYCHECK_H
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@
|
|||
<menu_item_call label="Berühren" name="Touch Attachment"/>
|
||||
<menu_item_call label="In Gesamtansicht anzeigen" name="Show in Main Panel"/>
|
||||
<menu_item_call label="Hinzufügen" name="Wearable Add"/>
|
||||
<menu_item_call label="Texturen aktualisieren" name="Texture Refresh Attachment"/>
|
||||
<menu_item_call label="Ausziehen" name="Take Off"/>
|
||||
<menu_item_call label="In Marktplatz-Auflistungen kopieren" name="Marketplace Copy"/>
|
||||
<menu_item_call label="In Marktplatz-Auflistungen verschieben" name="Marketplace Move"/>
|
||||
|
|
|
|||
|
|
@ -4854,6 +4854,14 @@ Grund: [SANITY_COMMENT]
|
|||
|
||||
Aktueller Wert: [CURRENT_VALUE]
|
||||
<form name="form">
|
||||
<button
|
||||
index="0"
|
||||
name="OK"
|
||||
text="Beheben"/>
|
||||
<button
|
||||
index="1"
|
||||
name="Cancel"
|
||||
text="Beibehalten"/>
|
||||
<ignore name="ignore"
|
||||
text="Eine Einstellung hat die Prüfung auf einen sinnvollen Wert nicht bestanden."/>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@
|
|||
<button name="BeamColor_new" label="Erstellen" tool_tip="Eine neue Farbeinstellung erstellen."/>
|
||||
<button name="BeamColor_refresh" label="Aktualisieren" tool_tip="Aktualisiert die Liste mit Farbeinstellungen."/>
|
||||
<slider name="FSMaxBeamsPerSecond" label="Updates/Sek:" tool_tip="Definiert wie viele Updates pro Sekunden gesendet werden sollen. [Standard: 40]"/>
|
||||
<check_box label="Auswahlstrahl aktivieren" name="SLPartBeam"/>
|
||||
<check_box label="Auswahlstrahl aktivieren" name="SLPartBeam" tool_tip="Das Deaktivieren dieser Einstellung verhindert die lokale Darstellung von Auswahlstrahlen. Das Senden der Auswahlinformationen an andere Avatare wird hierdurch nicht verhinden. Um keine Auswahlinformationen zu übertragen, können Sie diese unter Einstellungen -> Privatsphäre -> Kamerafokus -> Eigene Bearbeitungsauswahl nicht an andere senden deaktivieren"/>
|
||||
<check_box label="Auswahlinformationen an Chat senden" name="FSParticleChat" tool_tip="Sendet Informationen über die Auswahl (Start/Stop sowie globale Position) an Chat-Kanal 9000."/>
|
||||
|
||||
<combo_box name="FSBeamShape_combo" tool_tip="Erlaubt die Auswahl der Form für den Auswahlstrahl."/>
|
||||
|
|
|
|||
|
|
@ -855,6 +855,14 @@
|
|||
function="Inventory.DoToSelected"
|
||||
parameter="touch" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Texture Refresh"
|
||||
layout="topleft"
|
||||
name="Texture Refresh Attachment">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="texture_refresh_attachment" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Take Off"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -10449,6 +10449,14 @@ Reason: [SANITY_COMMENT]
|
|||
|
||||
Current setting: [CURRENT_VALUE]
|
||||
<form name="form">
|
||||
<button
|
||||
index="0"
|
||||
name="OK"
|
||||
text="Fix it"/>
|
||||
<button
|
||||
index="1"
|
||||
name="Cancel"
|
||||
text="Keep it"/>
|
||||
<ignore name="ignore"
|
||||
text="A settings control has failed the sanity check."/>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -685,6 +685,7 @@
|
|||
left="15"
|
||||
name="SLPartBeam"
|
||||
width="250"
|
||||
tool_tip="Disabling this setting will prevent selection beams from being rendered locally. It does not prevent selection beams being sent to other avatars. If you do not wish to show your selection, you can disable that via Preferences -> Privacy -> LookAt -> Don't send my selection target hints."
|
||||
control_name="ShowSelectionBeam" />
|
||||
|
||||
<check_box
|
||||
|
|
|
|||
|
|
@ -45,6 +45,9 @@
|
|||
<layout_panel name="support_panel">
|
||||
<check_box label="Dodawaj wersję" name="FSSupportGroupChatPrefix_toggle" tool_tip="Dodaje aktualną wersję przeglądarki oraz informację o skórce przed wiadomościami wysyłanymi przez Ciebie w tej grupie, co będzie pomagać członkom załogi wsparcia w prawidłowym diagnozowaniu Twoich problemów i poprawi dokładność odpowiedzi na Twoje pytania"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="testing_panel">
|
||||
<check_box label="Dodawaj kompilację" name="FSSupportGroupChatPrefixTesting_toggle" tool_tip="Dodaje aktualną kompilację przeglądarki oraz informację o skórce przed wiadomościami wysyłanymi przez Ciebie w tej grupie, co będzie pomagać członkom załogi wsparcia w prawidłowym diagnozowaniu Twoich problemów i poprawi dokładność odpowiedzi na Twoje pytania (to oddzielne od grup wsparcia)" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<layout_stack name="chat_stack">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@
|
|||
<menu label="Dołącz do HUD-a" name="Attach To HUD"/>
|
||||
<menu_item_call label="Edytuj" name="Wearable Edit"/>
|
||||
<menu_item_call label="Dotknij" name="Touch Attachment"/>
|
||||
<menu_item_call label="Odśwież tekstury" name="Texture Refresh Attachment" />
|
||||
<menu_item_call label="Zdejmij" name="Take Off"/>
|
||||
<menu_item_call label="Odłącz od siebie" name="Detach From Yourself"/>
|
||||
<menu_item_call label="Kopiuj do rzeczy Marketplace" name="Marketplace Copy"/>
|
||||
|
|
|
|||
|
|
@ -3911,6 +3911,8 @@ Powód: [SANITY_COMMENT]
|
|||
|
||||
Obecne ustawienie: [CURRENT_VALUE]
|
||||
<form name="form">
|
||||
<button name="OK" text="Napraw"/>
|
||||
<button name="Cancel" text="Zostaw"/>
|
||||
<ignore name="ignore" text="Jakieś ustawienie nie przeszło kontroli spójności."/>
|
||||
</form>
|
||||
</notification>
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
<button name="BeamColor_new" label="Utwórz nowe" tool_tip="Utwórz nowe Ustawienie" />
|
||||
<button name="BeamColor_refresh" label="Odśwież listę" tool_tip="Odśwież listę Ustawień" />
|
||||
<slider name="FSMaxBeamsPerSecond" label="Aktualizacje/sek:" tool_tip="Ile aktualizacji wiązki wysyłać w ciągu sekundy. Domyślnie 40" />
|
||||
<check_box label="Włącz wiązkę wyboru" name="SLPartBeam" />
|
||||
<check_box label="Włącz wiązkę wyboru" name="SLPartBeam" tool_tip="Wyłączenie tego ustawienia spowoduje, że wiązki wyboru nie będą renderowane lokalnie. Nie zapobiega to wysyłaniu wiązek wyboru do innych awatarów. Jeśli nie chcesz pokazywać swojego wyboru, to możesz temu zapobiec w Ustawienia -> Prywatność -> Śledzenie spojrzeń -> Nie pokazuj innym celów moich wskazań." />
|
||||
<check_box label="Wysyłaj dane selekcji na czat" name="FSParticleChat" tool_tip="Wysyła dane selekcji (rozpoczęcie jej lub zakończenie plus pozycję globalną) na kanał czatu 9000" />
|
||||
<combo_box name="FSBeamShape_combo" tool_tip="Wybierz kształt wiązki cząsteczek" />
|
||||
<button name="delete_beam" label="Usuń" tool_tip="Usuń tą wiązkę" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue