Ansariel 2024-07-30 10:21:48 +02:00
commit 4eab7c2b1c
20 changed files with 181 additions and 15 deletions

View File

@ -93,11 +93,11 @@ jobs:
with:
swap-storage: false
- name: Set gcc version on Linux
if: runner.os == 'Linux'
run: |
echo "CC=gcc-10" >> $GITHUB_ENV
echo "CXX=g++-10" >> $GITHUB_ENV
# - name: Set gcc version on Linux
# if: runner.os == 'Linux'
# run: |
# echo "CC=gcc-10" >> $GITHUB_ENV
# echo "CXX=g++-10" >> $GITHUB_ENV
- name: Setup rclone and download the folder

View File

@ -123,7 +123,18 @@ public:
static bool destroyInstance(const std::string& name, const LLSD& key = LLSD());
// Iterators
// <FS> ignore dangling reference false positives in gcc13
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference"
#endif
// </FS>
static const_instance_list_t& getFloaterList(const std::string& name);
// <FS> ignore dangling reference false positives in gcc13
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic pop
#endif
// </FS>
// Visibility Management
// [RLVa:KB] - Checked: 2012-02-07 (RLVa-1.4.5) | Added: RLVa-1.4.5

View File

@ -1656,7 +1656,7 @@ ECursorType LLWindowMacOSX::getCursor() const
// <FS:LO> Legacy cursor setting from main program
//void LLWindowMacOSX::initCursors()
void LLWindowMacOSX::initCursors(BOOL useLegacyCursors)
void LLWindowMacOSX::initCursors(bool useLegacyCursors)
{
initPixmapCursor(UI_CURSOR_NO, 8, 8);
initPixmapCursor(UI_CURSOR_WORKING, 1, 1);

View File

@ -159,7 +159,7 @@ protected:
~LLWindowMacOSX();
//void initCursors();
void initCursors(BOOL useLegacyCursors); // <FS:LO> Legacy cursor setting from main program
void initCursors(bool useLegacyCursors); // <FS:LO> Legacy cursor setting from main program
bool isValid() override;
void moveWindow(const LLCoordScreen& position,const LLCoordScreen& size);

View File

@ -471,13 +471,42 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type)
if (FSData::getInstance()->isTestingGroup(mSessionID))
{
if(chat_prefix_testing)
utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") "));
{
auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity();
if( viewer_maturity == LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER )
{
utf8_text.insert(insert_pos, "(Release) ");
}
else if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER )
{
utf8_text.insert(insert_pos, "(Unofficial) ");
}
else // In testing groups we'll allow all non-release recognised channels.
{
utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getBuildVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") "));
}
}
}
//For release support groups, only display the short version(Major.Minor.Patch) since chat can speed by. This makes it easier on Support's eyes.
else if(FSData::getInstance()->isSupportGroup(mSessionID))
{
if(chat_prefix_support)
utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") "));
{
auto viewer_maturity = LLVersionInfo::getInstance()->getFSViewerMaturity();
if( viewer_maturity == LLVersionInfo::FSViewerMaturity::UNOFFICIAL_VIEWER )
{
utf8_text.insert(insert_pos, "(Unofficial) ");
}
else if( viewer_maturity != LLVersionInfo::FSViewerMaturity::RELEASE_VIEWER )
{
utf8_text.insert(insert_pos, "(pre-Release) ");
}
else
{
utf8_text.insert(insert_pos, ("(" + str_address_size_tag + str_operating_system_tag + " " + LLVersionInfo::getInstance()->getShortVersion() + skin_indicator + str_viewer_mode + str_rlv_enabled + str_opensim_tag + ") "));
}
}
}
}

View File

@ -134,6 +134,13 @@ struct MikktMesh
idx[1] = tri_idx + 1;
idx[2] = tri_idx + 2;
}
// <FS:Beq> unknown mode leaves idx uninitialised
else
{
LL_WARNS("GLTF") << "Unsupported primitive mode for conversion to triangles: " << (S32) prim->mMode << LL_ENDL;
return false;
}
// </FS:Beq>
if (indexed)
{

View File

@ -43,7 +43,7 @@ private:
LLMediaCtrl* mAvatarPicker;
// <FS:Ansariel> Avatar chooser does not change between OpenSim grids
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onOpen(const LLSD& key) override;
void handleUrlChanged(const std::string& url);
boost::signals2::connection mAvatarPickerUrlChangedSignal;

View File

@ -49,7 +49,7 @@ public:
void onOpen(const LLSD& key) override;
// <FS:Ansariel> Instant bump list floater update
/*virtual*/ void draw();
/*virtual*/ void draw() override;
void setDirty() { mDirty = true; }
static LLFloaterBump* getInstance();

View File

@ -36,12 +36,18 @@
#include "llfloaterreg.h"
#include "llfloaterpathfindingobjects.h"
#include "llhandle.h"
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathfindingcharacter.h"
#include "llpathfindingcharacterlist.h"
#include "llpathfindingmanager.h"
#include "llpathfindingobject.h"
#include "llpathfindingobjectlist.h"
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "llquaternion.h"
#include "llsd.h"
#include "lluicolortable.h"

View File

@ -33,9 +33,15 @@
#include "llfloater.h"
#include "llhandle.h"
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathfindingnavmeshzone.h"
#include "llpathfindingpathtool.h"
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "v4color.h"
class LLButton;

View File

@ -41,6 +41,11 @@
#include "llagent.h"
#include "llhttpnode.h"
#include "llnotificationsutil.h"
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathfindingcharacterlist.h"
#include "llpathfindinglinkset.h"
#include "llpathfindinglinksetlist.h"
@ -48,6 +53,7 @@
#include "llpathfindingnavmeshstatus.h"
#include "llpathfindingobject.h"
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "llsingleton.h"
#include "llsd.h"
#include "lltrans.h"

View File

@ -139,7 +139,18 @@ void LLPathfindingNavMesh::handleNavMeshResult(const LLSD &pContent, U32 pNavMes
ENavMeshRequestStatus status;
if ( pContent.has(NAVMESH_DATA_FIELD) )
{
// <FS> ignore dangling reference false positives in gcc13
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference"
#endif
// </FS>
const LLSD::Binary &value = pContent.get(NAVMESH_DATA_FIELD).asBinary();
// <FS> ignore dangling reference false positives in gcc13
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic pop
#endif
// </FS>
auto binSize = value.size();
std::string newStr(reinterpret_cast<const char *>(&value[0]), binSize);
std::istringstream streamdecomp( newStr );

View File

@ -38,10 +38,16 @@
#include <boost/signals2.hpp>
#include "llagent.h"
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathfindingmanager.h"
#include "llpathfindingnavmesh.h"
#include "llpathfindingnavmeshstatus.h"
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "llsd.h"
#include "lluuid.h"
#include "llviewercontrol.h"

View File

@ -29,8 +29,13 @@
#include <boost/function.hpp>
#include <boost/signals2.hpp>
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "llsingleton.h"
#include "lltool.h"

View File

@ -211,7 +211,47 @@ LLVersionInfo::ViewerMaturity LLVersionInfo::getViewerMaturity()
}
return maturity;
}
// <FS:Beq> Add FS specific maturity grading
LLVersionInfo::FSViewerMaturity LLVersionInfo::getFSViewerMaturity()
{
FSViewerMaturity maturity;
std::string channel = getChannel();
static const boost::regex is_manual_channel("\\bManualx64\\b");
static const boost::regex is_beta_channel("\\bBetax64\\b");
static const boost::regex is_alpha_channel("\\bAlphax64\\b");
static const boost::regex is_release_channel("\\bReleasex64\\b");
static const boost::regex is_nightly_channel("\\bNightlyx64\\b");
if (ll_regex_search(channel, is_release_channel))
{
maturity = FSViewerMaturity::RELEASE_VIEWER;
}
else if (ll_regex_search(channel, is_beta_channel))
{
maturity = FSViewerMaturity::BETA_VIEWER;
}
else if (ll_regex_search(channel, is_alpha_channel))
{
maturity = FSViewerMaturity::ALPHA_VIEWER;
}
else if (ll_regex_search(channel, is_manual_channel))
{
maturity = FSViewerMaturity::MANUAL_VIEWER;
}
else if (ll_regex_search(channel, is_nightly_channel))
{
maturity = FSViewerMaturity::NIGHTLY_VIEWER;
}
else
{
maturity = FSViewerMaturity::UNOFFICIAL_VIEWER;
}
return maturity;
}
// </FS:Beq>
std::string LLVersionInfo::getReleaseNotes()
{
return mReleaseNotes;

View File

@ -109,6 +109,20 @@ public:
} ViewerMaturity;
ViewerMaturity getViewerMaturity();
// <FS:Beq> Add an FS specific viewer maturity enum
using FSViewerMaturity =
enum class FSViewerMaturityEnum
{
UNOFFICIAL_VIEWER=0,
ALPHA_VIEWER,
MANUAL_VIEWER,
BETA_VIEWER,
NIGHTLY_VIEWER,
RELEASE_VIEWER,
};
FSViewerMaturity getFSViewerMaturity();
// </FS:Beq>
/// get the release-notes URL, once it becomes available -- until then,
/// return empty string
std::string getReleaseNotes();

View File

@ -103,7 +103,13 @@
#include "llmutelist.h"
#include "lltoolpie.h"
#include "llnotifications.h"
// <FS:Beq> hacky BOOL workaround
#ifndef BOOL
#define BOOL bool
#endif
// </FS:Beq>
#include "llpathinglib.h"
#undef BOOL // <FS:Beq/> hacky BOOL workaround
#include "llfloaterpathfindingconsole.h"
#include "llfloaterpathfindingcharacters.h"
#include "llfloatertools.h"

View File

@ -490,7 +490,14 @@ void RlvUtil::filterLocation(std::string& strUTF8Text)
{
// Filter any mention of the surrounding region names
LLWorld::region_list_t regions = LLWorld::getInstance()->getRegionList();
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference"
#endif
const std::string& strHiddenRegion = RlvStrings::getString(RlvStringKeys::Hidden::Region);
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic pop
#endif
for (LLWorld::region_list_t::const_iterator itRegion = regions.begin(); itRegion != regions.end(); ++itRegion)
boost::replace_all_regex(strUTF8Text, boost::regex("\\b" + escape_for_regex((*itRegion)->getName()) + "\\b", boost::regex::icase), strHiddenRegion);

View File

@ -374,7 +374,14 @@ void RlvHandler::getAttachmentResourcesCoro(const std::string& strUrl)
for (LLSD::array_const_iterator itAttachObj = sdAttachObjects.beginArray(), endAttachObj = sdAttachObjects.endArray(); itAttachObj != endAttachObj; ++itAttachObj)
{
const LLUUID idObj = itAttachObj->get("id").asUUID();
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference"
#endif
const std::string& strObjName = itAttachObj->get("name").asStringRef();
#if defined(__GNUC__) && (__GNUC__ >= 13)
#pragma GCC diagnostic pop
#endif
// If it's an attachment, it should be a temporary one (NOTE: we might catch it before it's had a chance to attach)
const LLViewerObject* pObj = gObjectList.findObject(idObj);

View File

@ -1425,6 +1425,9 @@ class Darwin_x86_64_Manifest(ViewerManifest):
idnadir = os.path.join(pkgdir, "lib", "python", "idna")
with self.prefix(src="", dst="Contents"): # everything goes in Contents
with self.prefix(dst="MacOS"):
executable = self.dst_path_of("Firestorm") # locate the executable within the bundle.
bugsplat_db = self.args.get('bugsplat')
print(f"debug: bugsplat_db={bugsplat_db}")
if bugsplat_db:
@ -1535,10 +1538,11 @@ class Darwin_x86_64_Manifest(ViewerManifest):
self.path(libfile)
oldpath = os.path.join("@rpath", libfile)
print(f"debug: oldpath={oldpath} executable={executable} libfile={libfile}")
self.run_command(
['install_name_tool', '-change', oldpath,
'@executable_path/../Resources/%s' % libfile,
executable])
['install_name_tool', '-change',
oldpath,
'@executable_path/../Resources/%s' % libfile, executable])
# dylibs is a list of all the .dylib files we expect to need
# in our bundled sub-apps. For each of these we'll create a
@ -1952,6 +1956,7 @@ class Darwin_x86_64_Manifest(ViewerManifest):
for tries in range(10):
try:
self.run_command(['hdiutil', 'detach', '-force', devfile])
break # Exit loop if detach worked
except ManifestError as err:
print(f"detach failed on attempt {tries}")
time.sleep(1)