Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts: # indra/llinventory/llsettingssky.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/skins/default/xui/en/floater_world_map.xmlmaster
commit
c4333e2222
|
|
@ -304,7 +304,7 @@ jobs:
|
|||
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
|
||||
needs: build
|
||||
runs-on: windows-large
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Sign and package Windows viewer
|
||||
if: env.AZURE_KEY_VAULT_URI && env.AZURE_CERT_NAME && env.AZURE_CLIENT_ID && env.AZURE_CLIENT_SECRET && env.AZURE_TENANT_ID
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
name: Check PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-description:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check PR description
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const description = context.payload.pull_request.body || '';
|
||||
if (description.trim().length < 20) {
|
||||
core.setFailed("❌ PR description is too short. Please provide at least 20 characters.");
|
||||
}
|
||||
|
|
@ -15,10 +15,6 @@ on:
|
|||
required: true
|
||||
default: '14806728332'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: false # Prevents cancellation of in-progress jobs
|
||||
|
||||
jobs:
|
||||
debug-workflow:
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -35,6 +31,10 @@ jobs:
|
|||
echo "GitHub Workflow Name: ${{ github.workflow }}"
|
||||
|
||||
install-viewer-and-run-tests:
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ matrix.runner }}
|
||||
cancel-in-progress: false # Prevents cancellation of in-progress jobs
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
install-path: 'C:\viewer-automation-main'
|
||||
# Commented out until mac runner is available
|
||||
# - os: mac
|
||||
# runner: qa-mac
|
||||
# runner: qa-mac-atlas
|
||||
# artifact: Mac-installer
|
||||
# install-path: '$HOME/Documents/viewer-automation'
|
||||
fail-fast: false
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ else()
|
|||
find_library(COCOA_LIBRARY Cocoa)
|
||||
find_library(IOKIT_LIBRARY IOKit)
|
||||
|
||||
find_library(AGL_LIBRARY AGL)
|
||||
find_library(APPKIT_LIBRARY AppKit)
|
||||
find_library(COREAUDIO_LIBRARY CoreAudio)
|
||||
|
||||
|
|
@ -81,7 +80,6 @@ else()
|
|||
${IOKIT_LIBRARY}
|
||||
${COREFOUNDATION_LIBRARY}
|
||||
${CARBON_LIBRARY}
|
||||
${AGL_LIBRARY}
|
||||
${APPKIT_LIBRARY}
|
||||
${COREAUDIO_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -661,7 +661,7 @@ void LLSettingsSky::blend(LLSettingsBase::ptr_t &end, F64 blendf)
|
|||
mHasLegacyHaze |= lerp_legacy_float(mHazeDensity, mLegacyHazeDensity, other->mHazeDensity, other->mLegacyHazeDensity, 0.7f, (F32)blendf);
|
||||
mHasLegacyHaze |= lerp_legacy_float(mDistanceMultiplier, mLegacyDistanceMultiplier, other->mDistanceMultiplier, other->mLegacyDistanceMultiplier, 0.8f, (F32)blendf);
|
||||
mHasLegacyHaze |= lerp_legacy_float(mDensityMultiplier, mLegacyDensityMultiplier, other->mDensityMultiplier, other->mLegacyDensityMultiplier, 0.0001f, (F32)blendf);
|
||||
mHasLegacyHaze |= lerp_legacy_color(mAmbientColor, mLegacyAmbientColor, other->mAmbientColor, other->mLegacyAmbientColor, LLColor3(0.25f, 0.25f, 0.25f), (F32)blendf); // <FS:Beq for Hecklezz/> import pending PR #4185 Fix sky ambient color not blending.
|
||||
mHasLegacyHaze |= lerp_legacy_color(mAmbientColor, mLegacyAmbientColor, other->mAmbientColor, other->mLegacyAmbientColor, LLColor3(0.25f, 0.25f, 0.25f), (F32)blendf);
|
||||
mHasLegacyHaze |= lerp_legacy_color(mBlueHorizon, mLegacyBlueHorizon, other->mBlueHorizon, other->mLegacyBlueHorizon, LLColor3(0.4954f, 0.4954f, 0.6399f), (F32)blendf);
|
||||
mHasLegacyHaze |= lerp_legacy_color(mBlueDensity, mLegacyBlueDensity, other->mBlueDensity, other->mLegacyBlueDensity, LLColor3(0.2447f, 0.4487f, 0.7599f), (F32)blendf);
|
||||
parammapping_t defaults = other->getParameterMap();
|
||||
|
|
|
|||
|
|
@ -594,7 +594,7 @@ void LLPluginProcessParent::idle(void)
|
|||
params.args.add("-e");
|
||||
params.args.add("tell application \"Terminal\"");
|
||||
params.args.add("-e");
|
||||
params.args.add(STRINGIZE("set win to do script \"lldb -pid "
|
||||
params.args.add(STRINGIZE("set win to do script \"lldb -p "
|
||||
<< mProcess->getProcessID() << "\""));
|
||||
params.args.add("-e");
|
||||
params.args.add("do script \"continue\" in win");
|
||||
|
|
|
|||
|
|
@ -667,7 +667,7 @@ attributedStringInfo getSegments(NSAttributedString *str)
|
|||
};
|
||||
|
||||
int string_length = [aString length];
|
||||
unichar text[string_length];
|
||||
unichar *text = new unichar[string_length];
|
||||
attributedStringInfo segments;
|
||||
// I used 'respondsToSelector:@selector(string)'
|
||||
// to judge aString is an attributed string or not.
|
||||
|
|
@ -695,6 +695,8 @@ attributedStringInfo getSegments(NSAttributedString *str)
|
|||
// we must clear the marked text when aString is null.
|
||||
[self unmarkText];
|
||||
}
|
||||
|
||||
delete [] text;
|
||||
} else {
|
||||
if (mHasMarkedText)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1088,7 +1088,9 @@ void LLFloaterUIPreview::getExecutablePath(const std::vector<std::string>& filen
|
|||
{
|
||||
CFStringRef executable_cfstr = (CFStringRef)CFDictionaryGetValue(bundleInfoDict, CFSTR("CFBundleExecutable")); // get the name of the actual executable (e.g. TextEdit or firefox-bin)
|
||||
int max_file_length = 256; // (max file name length is 255 in OSX)
|
||||
char executable_buf[max_file_length];
|
||||
|
||||
// Xcode 26: VLAs are a clang extension. Just create the buffer and delete it after.
|
||||
char *executable_buf = new char [max_file_length];
|
||||
if(CFStringGetCString(executable_cfstr, executable_buf, max_file_length, kCFStringEncodingMacRoman)) // convert CFStringRef to char*
|
||||
{
|
||||
executable_path += std::string("/Contents/MacOS/") + std::string(executable_buf); // append path to executable directory and then executable name to exec path
|
||||
|
|
@ -1098,6 +1100,7 @@ void LLFloaterUIPreview::getExecutablePath(const std::vector<std::string>& filen
|
|||
std::string warning = "Unable to get CString from CFString for executable path";
|
||||
popupAndPrintWarning(warning);
|
||||
}
|
||||
delete [] executable_buf;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2493,9 +2493,9 @@ bool can_move_to_my_outfits_as_outfit(LLInventoryModel* model, LLInventoryCatego
|
|||
return false;
|
||||
}
|
||||
|
||||
if (items->size() == 0)
|
||||
if (items->size() == 0 && inv_cat->getPreferredType() != LLFolderType::FT_OUTFIT)
|
||||
{
|
||||
// Nothing to move(create)
|
||||
// Nothing to create an outfit folder from
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1394,6 +1394,7 @@ void LLPanelPermissions::onCommitName(LLUICtrl*, void* data)
|
|||
{
|
||||
LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
|
||||
new_item->rename(tb->getText());
|
||||
new_item->setComplete(true); // to not err at updateServer
|
||||
new_item->updateServer(false);
|
||||
gInventory.updateItem(new_item);
|
||||
gInventory.notifyObservers();
|
||||
|
|
|
|||
|
|
@ -1500,10 +1500,8 @@ F32 LLViewerTextureList::updateImagesLoadingFastCache(F32 max_time)
|
|||
// <FS:Ansariel> Fast cache stats
|
||||
sNumFastCacheReads++;
|
||||
// </FS:Ansariel>
|
||||
// <FS:Ansariel> Fix fast cache
|
||||
if (timer.getElapsedTimeF32() > max_time)
|
||||
break;
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
mFastCacheList.erase(mFastCacheList.begin(), enditer);
|
||||
return timer.getElapsedTimeF32();
|
||||
|
|
@ -1615,8 +1613,6 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)
|
|||
LLTimer timer;
|
||||
|
||||
//loading from fast cache
|
||||
// <FS:Ansariel> Fix fast cache
|
||||
//updateImagesLoadingFastCache(max_time);
|
||||
max_time -= updateImagesLoadingFastCache(max_time);
|
||||
|
||||
// Update texture stats and priorities
|
||||
|
|
|
|||
|
|
@ -4004,7 +4004,12 @@ bool LLVOVolume::canBeAnimatedObject() const
|
|||
|
||||
bool LLVOVolume::isAnimatedObject() const
|
||||
{
|
||||
LLVOVolume *root_vol = (LLVOVolume*)getRootEdit();
|
||||
LLViewerObject *root_obj = getRootEdit();
|
||||
if (root_obj->getPCode() != LL_PCODE_VOLUME)
|
||||
{
|
||||
return false; // at the moment only volumes can be animated
|
||||
}
|
||||
LLVOVolume* root_vol = (LLVOVolume*)root_obj;
|
||||
mIsAnimatedObject = root_vol->getExtendedMeshFlags() & LLExtendedMeshParams::ANIMATED_MESH_ENABLED_FLAG;
|
||||
return mIsAnimatedObject;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue