# Conflicts:
#	indra/newview/llfloaterregioninfo.cpp
#	indra/newview/llversioninfo.cpp
#	indra/newview/llviewertexturelist.cpp
master
Ansariel 2024-07-30 10:45:11 +02:00
commit eaa5dc798c
22 changed files with 151 additions and 21 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

@ -23,4 +23,4 @@ Build instructions for each operating system can be found using the links below
## Contribute
Help make Firestorm better! You can get involved with improvements by filing bugs and suggesting enhancements via [JIRA](https://jira.firestormviewer.org) or [creating pull requests](FS_PR_GUIDELINES.md).
Help make Firestorm better! You can get involved with improvements by filing bugs and suggesting enhancements via [JIRA](https://jira.firestormviewer.org) or [creating pull requests](doc/FS_PR_GUIDELINES.md).

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

@ -914,8 +914,6 @@ void LLPanelRegionInfo::initCtrl(const std::string& name)
template<typename CTRL>
void LLPanelRegionInfo::initAndSetCtrl(CTRL*& ctrl, const std::string& name)
{
// <FS:Ansariel> Fix broken initialization
//initCtrl(name);
ctrl = findChild<CTRL>(name);
if (ctrl)
ctrl->setCommitCallback(boost::bind(&LLPanelRegionInfo::onChangeAnything, this));

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

@ -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

@ -212,6 +212,47 @@ LLVersionInfo::ViewerMaturity LLVersionInfo::getViewerMaturity() const
return maturity;
}
// <FS:Beq> Add FS specific maturity grading
LLVersionInfo::FSViewerMaturity LLVersionInfo::getFSViewerMaturity() const
{
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() const
{
return mReleaseNotes;

View File

@ -109,6 +109,20 @@ public:
} ViewerMaturity;
ViewerMaturity getViewerMaturity() const;
// <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() const;
// </FS:Beq>
/// get the release-notes URL, once it becomes available -- until then,
/// return empty string
std::string getReleaseNotes() const;

View File

@ -949,11 +949,12 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
if (face && face->getViewerObject())
{
onFace = true;
F32 vsize = face->getPixelArea(); // <FS> Particles do not rez properly
F32 radius;
F32 cos_angle_to_view_dir;
bool in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius);
static LLCachedControl<F32> bias_unimportant_threshold(gSavedSettings, "TextureBiasUnimportantFactor", 0.25f);
F32 vsize = face->getPixelArea();
//F32 vsize = face->getPixelArea(); // <FS> Particles do not rez properly
// Scale desired texture resolution higher or lower depending on texture scale
//

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

@ -70,7 +70,7 @@
<combo_box.item label="Alle Avatare und Objekte" name="3"/>
<combo_box.item label="Alles" name="4"/>
</combo_box>
<text name="local lights_label" tool_tip="Beeinflusst die Anzahl an dargestellten Lichtquellen, wenn Erweitertes Beleuchtungsmodell aktiviert ist (Neustart erforderlich).">
<text name="local lights_label" tool_tip="Beeinflusst die Anzahl an dargestellten Lichtquellen (Neustart erforderlich).">
Punkt. Beleucht. (Neustart erf.):
</text>
<combo_box name="LocalLightsDetail">

View File

@ -421,7 +421,7 @@
layout="topleft"
left_delta="-5"
name="local lights_label"
tool_tip="Affects the number of rendered light sources when Advanced Lighting Model is disabled. A restart is required to change mode.">
tool_tip="Affects the number of rendered. A restart is required to change mode.">
Point Lighting (restart required)
</text>
<combo_box

View File

@ -1430,6 +1430,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:
@ -1540,10 +1543,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
@ -1957,6 +1961,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)