Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts: # indra/newview/lldrawpooltree.cpp # indra/newview/lllocalbitmaps.cpp # indra/newview/lltextureview.cpp # indra/newview/llviewertexture.cpp # indra/newview/skins/default/colors.xmlmaster
commit
62e5fffd8e
|
|
@ -42,8 +42,8 @@ jobs:
|
|||
needs: setup
|
||||
strategy:
|
||||
matrix:
|
||||
runner: [windows-large, macos-15-xlarge]
|
||||
configuration: ${{ fromJSON(needs.setup.outputs.configurations) }}
|
||||
runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge"]' || '["windows-latest","macos-15"]') }}
|
||||
configuration: ${{ fromJson(needs.setup.outputs.configurations) }}
|
||||
runs-on: ${{ matrix.runner }}
|
||||
outputs:
|
||||
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
|
||||
|
|
|
|||
|
|
@ -901,7 +901,7 @@ void LLButton::draw()
|
|||
|
||||
// Highlight if needed
|
||||
if( ll::ui::SearchableControl::getHighlighted() )
|
||||
label_color = ll::ui::SearchableControl::getHighlightColor();
|
||||
label_color = ll::ui::SearchableControl::getHighlightFontColor();
|
||||
|
||||
// overlay with keyboard focus border
|
||||
if (hasFocus())
|
||||
|
|
|
|||
|
|
@ -529,7 +529,7 @@ void LLMenuItemGL::draw( void )
|
|||
|
||||
// Highlight if needed
|
||||
if( ll::ui::SearchableControl::getHighlighted() )
|
||||
color = ll::ui::SearchableControl::getHighlightColor();
|
||||
color = ll::ui::SearchableControl::getHighlightFontColor();
|
||||
|
||||
// Draw the text on top.
|
||||
if (mBriefItem)
|
||||
|
|
|
|||
|
|
@ -3861,7 +3861,7 @@ bool LLScrollListCtrl::highlightMatchingItems(const std::string& filter_str)
|
|||
|
||||
bool res = false;
|
||||
|
||||
setHighlightedColor(LLUIColorTable::instance().getColor("SearchableControlHighlightColor", LLColor4::red4));
|
||||
setHighlightedColor(LLUIColorTable::instance().getColor("SearchableControlHighlightBgColor", LLColor4::red4));
|
||||
|
||||
std::string filter_str_lc(filter_str);
|
||||
LLStringUtil::toLower(filter_str_lc);
|
||||
|
|
|
|||
|
|
@ -43,9 +43,15 @@ namespace ll
|
|||
virtual ~SearchableControl()
|
||||
{ }
|
||||
|
||||
const LLColor4& getHighlightColor( ) const
|
||||
const LLColor4& getHighlightBgColor( ) const
|
||||
{
|
||||
static LLUIColor highlight_color = LLUIColorTable::instance().getColor("SearchableControlHighlightColor", LLColor4::red4);
|
||||
static LLUIColor highlight_color = LLUIColorTable::instance().getColor("SearchableControlHighlightBgColor", LLColor4::red4);
|
||||
return highlight_color.get();
|
||||
}
|
||||
|
||||
const LLColor4& getHighlightFontColor() const
|
||||
{
|
||||
static LLUIColor highlight_color = LLUIColorTable::instance().getColor("SearchableControlHighlightFontColor", LLColor4::red4);
|
||||
return highlight_color.get();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1524,7 +1524,7 @@ void LLTextBase::draw()
|
|||
// Draw highlighted if needed
|
||||
if( ll::ui::SearchableControl::getHighlighted() )
|
||||
{
|
||||
const LLColor4& bg_color = ll::ui::SearchableControl::getHighlightColor();
|
||||
const LLColor4& bg_color = ll::ui::SearchableControl::getHighlightBgColor();
|
||||
LLRect bg_rect = mVisibleTextRect;
|
||||
if( mScroller )
|
||||
bg_rect.intersectWith( text_rect );
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, ou
|
|||
if (classic_mode < 1)
|
||||
{
|
||||
amblit = srgb_to_linear(amblit);
|
||||
amblit = vec3(dot(amblit, vec3(0.2126, 0.7152, 0.0722)));
|
||||
sunlit = srgb_to_linear(sunlit);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 1
|
||||
RenderDisableVintageMode 1 1
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -129,7 +128,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
RenderReflectionProbeCount 1 1
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -172,7 +170,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
RenderReflectionProbeCount 1 16
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -214,7 +211,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 32
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -245,7 +241,7 @@ RenderFSAASamples 1 1
|
|||
RenderReflectionsEnabled 1 1
|
||||
RenderReflectionProbeDetail 1 1
|
||||
RenderScreenSpaceReflections 1 0
|
||||
RenderReflectionProbeLevel 1 2
|
||||
RenderReflectionProbeLevel 1 1
|
||||
RenderMirrors 1 0
|
||||
RenderHeroProbeResolution 1 512
|
||||
RenderHeroProbeDistance 1 6
|
||||
|
|
@ -256,7 +252,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 64
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -287,7 +282,7 @@ RenderFSAASamples 1 2
|
|||
RenderReflectionsEnabled 1 1
|
||||
RenderReflectionProbeDetail 1 1
|
||||
RenderScreenSpaceReflections 1 0
|
||||
RenderReflectionProbeLevel 1 3
|
||||
RenderReflectionProbeLevel 1 2
|
||||
RenderMirrors 1 0
|
||||
RenderHeroProbeResolution 1 512
|
||||
RenderHeroProbeDistance 1 8
|
||||
|
|
@ -298,7 +293,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 128
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (deferred + SSAO + all shadows)
|
||||
|
|
@ -340,7 +334,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -382,7 +375,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -416,7 +408,6 @@ RenderReflectionProbeDetail 0 -1
|
|||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list Intel
|
||||
RenderAnisotropic 1 0
|
||||
|
|
@ -438,7 +429,6 @@ RenderMirrors 0 0
|
|||
RenderGLMultiThreadedTextures 0 0
|
||||
RenderGLMultiThreadedMedia 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list TexUnit16orLess
|
||||
RenderTerrainPBRDetail 1 -1
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 1
|
||||
RenderDisableVintageMode 1 1
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -129,7 +128,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
RenderReflectionProbeCount 1 1
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -172,7 +170,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
RenderReflectionProbeCount 1 16
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -214,7 +211,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 32
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -245,7 +241,7 @@ RenderFSAASamples 1 1
|
|||
RenderReflectionsEnabled 1 1
|
||||
RenderReflectionProbeDetail 1 1
|
||||
RenderScreenSpaceReflections 1 0
|
||||
RenderReflectionProbeLevel 1 2
|
||||
RenderReflectionProbeLevel 1 1
|
||||
RenderMirrors 1 0
|
||||
RenderHeroProbeResolution 1 512
|
||||
RenderHeroProbeDistance 1 6
|
||||
|
|
@ -256,7 +252,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 64
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -287,7 +282,7 @@ RenderFSAASamples 1 2
|
|||
RenderReflectionsEnabled 1 1
|
||||
RenderReflectionProbeDetail 1 1
|
||||
RenderScreenSpaceReflections 1 0
|
||||
RenderReflectionProbeLevel 1 3
|
||||
RenderReflectionProbeLevel 1 2
|
||||
RenderMirrors 1 0
|
||||
RenderHeroProbeResolution 1 512
|
||||
RenderHeroProbeDistance 1 8
|
||||
|
|
@ -298,7 +293,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 128
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (deferred + SSAO + all shadows)
|
||||
|
|
@ -340,7 +334,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -382,7 +375,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -416,7 +408,6 @@ RenderReflectionProbeDetail 0 -1
|
|||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list Intel
|
||||
RenderAnisotropic 1 0
|
||||
|
|
@ -440,7 +431,6 @@ RenderMirrors 0 0
|
|||
RenderGLMultiThreadedTextures 0 0
|
||||
RenderGLMultiThreadedMedia 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list TexUnit16orLess
|
||||
RenderTerrainPBRDetail 1 -1
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ RenderTonemapMix 1 1
|
|||
RenderDisableVintageMode 1 1
|
||||
RenderDownScaleMethod 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -129,7 +128,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
RenderReflectionProbeCount 1 1
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -172,7 +170,6 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
RenderReflectionProbeCount 1 16
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -214,7 +211,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 32
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -256,7 +252,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 64
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -298,7 +293,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 128
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (SSAO + all shadows)
|
||||
|
|
@ -340,7 +334,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -382,7 +375,6 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 1 256
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -415,7 +407,6 @@ RenderShadowDetail 0 0
|
|||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list TexUnit8orLess
|
||||
RenderDeferredSSAO 0 0
|
||||
|
|
@ -456,7 +447,6 @@ RenderReflectionProbeDetail 0 0
|
|||
RenderReflectionsEnabled 0 0
|
||||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderReflectionProbeCount 0 0
|
||||
|
||||
list VaryingVectors16orLess
|
||||
RenderTerrainPBRPlanarSampleCount 1 1
|
||||
|
|
|
|||
|
|
@ -114,13 +114,9 @@ void LLDrawPoolTree::beginShadowPass(S32 pass)
|
|||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
|
||||
// <FS:PP> Attempt to speed up things a little
|
||||
// glPolygonOffset(gSavedSettings.getF32("RenderDeferredTreeShadowOffset"),
|
||||
// gSavedSettings.getF32("RenderDeferredTreeShadowBias"));
|
||||
static LLCachedControl<F32> RenderDeferredTreeShadowOffset(gSavedSettings, "RenderDeferredTreeShadowOffset");
|
||||
static LLCachedControl<F32> RenderDeferredTreeShadowBias(gSavedSettings, "RenderDeferredTreeShadowBias");
|
||||
glPolygonOffset(RenderDeferredTreeShadowOffset, RenderDeferredTreeShadowBias);
|
||||
// </FS:PP>
|
||||
static LLCachedControl<F32> shadow_offset(gSavedSettings, "RenderDeferredTreeShadowOffset");
|
||||
static LLCachedControl<F32> shadow_bias(gSavedSettings, "RenderDeferredTreeShadowBias");
|
||||
glPolygonOffset(shadow_offset(), shadow_bias());
|
||||
|
||||
LLEnvironment& environment = LLEnvironment::instance();
|
||||
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ bool LLFetchedGLTFMaterial::replaceLocalTexture(const LLUUID& tracking_id, const
|
|||
{
|
||||
mTrackingIdToLocalTexture.erase(tracking_id);
|
||||
}
|
||||
updateLocalTexDataDigest();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,8 +293,9 @@ void LLLocalBitmap::addGLTFMaterial(LLGLTFMaterial* mat)
|
|||
return;
|
||||
}
|
||||
|
||||
mat_list_t::iterator end = mGLTFMaterialWithLocalTextures.end();
|
||||
for (mat_list_t::iterator it = mGLTFMaterialWithLocalTextures.begin(); it != end;)
|
||||
mat->addLocalTextureTracking(getTrackingID(), getWorldID());
|
||||
|
||||
for (mat_list_t::iterator it = mGLTFMaterialWithLocalTextures.begin(); it != mGLTFMaterialWithLocalTextures.end();)
|
||||
{
|
||||
if (it->get() == mat)
|
||||
{
|
||||
|
|
@ -304,15 +305,12 @@ void LLLocalBitmap::addGLTFMaterial(LLGLTFMaterial* mat)
|
|||
if ((*it)->getNumRefs() == 1)
|
||||
{
|
||||
it = mGLTFMaterialWithLocalTextures.erase(it);
|
||||
end = mGLTFMaterialWithLocalTextures.end();
|
||||
}
|
||||
else
|
||||
{
|
||||
it++;
|
||||
}
|
||||
}
|
||||
|
||||
mat->addLocalTextureTracking(getTrackingID(), getWorldID());
|
||||
mGLTFMaterialWithLocalTextures.push_back(mat);
|
||||
}
|
||||
|
||||
|
|
@ -637,16 +635,16 @@ void LLLocalBitmap::updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableTyp
|
|||
void LLLocalBitmap::updateGLTFMaterials(LLUUID old_id, LLUUID new_id)
|
||||
{
|
||||
// Might be a better idea to hold this in LLGLTFMaterialList
|
||||
mat_list_t::iterator end = mGLTFMaterialWithLocalTextures.end();
|
||||
for (mat_list_t::iterator it = mGLTFMaterialWithLocalTextures.begin(); it != end;)
|
||||
for (mat_list_t::iterator it = mGLTFMaterialWithLocalTextures.begin(); it != mGLTFMaterialWithLocalTextures.end();)
|
||||
{
|
||||
if ((*it)->getNumRefs() == 1)
|
||||
{
|
||||
// render and override materials are often recreated,
|
||||
// clean up any remains
|
||||
it = mGLTFMaterialWithLocalTextures.erase(it);
|
||||
end = mGLTFMaterialWithLocalTextures.end();
|
||||
}
|
||||
// Render material consists of base and override materials, make sure replaceLocalTexture
|
||||
// gets called for base and override before applyOverride
|
||||
else if ((*it)->replaceLocalTexture(mTrackingID, old_id, new_id))
|
||||
{
|
||||
it++;
|
||||
|
|
@ -656,43 +654,47 @@ void LLLocalBitmap::updateGLTFMaterials(LLUUID old_id, LLUUID new_id)
|
|||
// Matching id not found, no longer in use
|
||||
// material would clean itself, remove from the list
|
||||
it = mGLTFMaterialWithLocalTextures.erase(it);
|
||||
end = mGLTFMaterialWithLocalTextures.end();
|
||||
}
|
||||
}
|
||||
|
||||
// Render material consists of base and override materials, make sure replaceLocalTexture
|
||||
// gets called for base and override before applyOverride
|
||||
end = mGLTFMaterialWithLocalTextures.end();
|
||||
for (mat_list_t::iterator it = mGLTFMaterialWithLocalTextures.begin(); it != end;)
|
||||
// Updating render materials calls updateTextureTracking which can modify
|
||||
// mGLTFMaterialWithLocalTextures, so precollect all entries that need to be updated
|
||||
std::set<LLTextureEntry*> update_entries;
|
||||
for (LLGLTFMaterial* mat : mGLTFMaterialWithLocalTextures)
|
||||
{
|
||||
LLFetchedGLTFMaterial* fetched_mat = dynamic_cast<LLFetchedGLTFMaterial*>((*it).get());
|
||||
// mGLTFMaterialWithLocalTextures includes overrides that are not 'fetched'
|
||||
// and don't have texture entries (they don't need to since render material does).
|
||||
LLFetchedGLTFMaterial* fetched_mat = dynamic_cast<LLFetchedGLTFMaterial*>(mat);
|
||||
if (fetched_mat)
|
||||
{
|
||||
for (LLTextureEntry* entry : fetched_mat->mTextureEntires)
|
||||
{
|
||||
// Normally a change in applied material id is supposed to
|
||||
// drop overrides thus reset material, but local materials
|
||||
// currently reuse their existing asset id, and purpose is
|
||||
// to preview how material will work in-world, overrides
|
||||
// included, so do an override to render update instead.
|
||||
LLGLTFMaterial* override_mat = entry->getGLTFMaterialOverride();
|
||||
if (override_mat)
|
||||
{
|
||||
// do not create a new material, reuse existing pointer
|
||||
LLFetchedGLTFMaterial* render_mat = dynamic_cast<LLFetchedGLTFMaterial*>(entry->getGLTFRenderMaterial());
|
||||
if (render_mat)
|
||||
{
|
||||
*render_mat = *fetched_mat;
|
||||
render_mat->applyOverride(*override_mat);
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS_ONCE() << "Failed to apply local material override, render material not found" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
update_entries.insert(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (LLTextureEntry* entry : update_entries)
|
||||
{
|
||||
// Normally a change in applied material id is supposed to
|
||||
// drop overrides thus reset material, but local materials
|
||||
// currently reuse their existing asset id, and purpose is
|
||||
// to preview how material will work in-world, overrides
|
||||
// included, so do an override to render update instead.
|
||||
LLGLTFMaterial* override_mat = entry->getGLTFMaterialOverride();
|
||||
LLGLTFMaterial* mat = entry->getGLTFMaterial();
|
||||
if (override_mat && mat)
|
||||
{
|
||||
// do not create a new material, reuse existing pointer
|
||||
// so that mTextureEntires remains untouched
|
||||
LLGLTFMaterial* render_mat = entry->getGLTFRenderMaterial();
|
||||
if (render_mat)
|
||||
{
|
||||
*render_mat = *mat;
|
||||
render_mat->applyOverride(*override_mat); // can update mGLTFMaterialWithLocalTextures
|
||||
}
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ class LLLocalBitmap
|
|||
|
||||
// Store a list of accosiated materials
|
||||
// Might be a better idea to hold this in LLGLTFMaterialList
|
||||
typedef std::vector<LLPointer<LLGLTFMaterial> > mat_list_t;
|
||||
typedef std::list<LLPointer<LLGLTFMaterial> > mat_list_t;
|
||||
mat_list_t mGLTFMaterialWithLocalTextures;
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4751,6 +4751,8 @@ void LLMeshRepository::notifyLoadedMeshes()
|
|||
std::partial_sort(mPendingRequests.begin(), mPendingRequests.begin() + push_count,
|
||||
mPendingRequests.end(), PendingRequestBase::CompareScoreGreater());
|
||||
}
|
||||
LLMutexTrylock lock3(mThread->mHeaderMutex);
|
||||
LLMutexTrylock lock4(mThread->mPendingMutex);
|
||||
while (!mPendingRequests.empty() && push_count > 0)
|
||||
{
|
||||
std::unique_ptr<PendingRequestBase>& req_p = mPendingRequests.front();
|
||||
|
|
|
|||
|
|
@ -3185,6 +3185,8 @@ void LLPanelFace::onCommitHideWater()
|
|||
{
|
||||
// reset texture to default plywood
|
||||
LLSelectMgr::getInstance()->selectionSetImage(DEFAULT_OBJECT_TEXTURE);
|
||||
// reset texture repeats, that might be altered by invisiprim script from wiki
|
||||
LLSelectMgr::getInstance()->selectionTexScaleAutofit(2.f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ LLReflectionMap::~LLReflectionMap()
|
|||
void LLReflectionMap::update(U32 resolution, U32 face, bool force_dynamic, F32 near_clip, bool useClipPlane, LLPlane clipPlane)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_DISPLAY;
|
||||
if (!mCubeArray.notNull())
|
||||
return;
|
||||
|
||||
mLastUpdateTime = gFrameTimeSeconds;
|
||||
llassert(mCubeArray.notNull());
|
||||
llassert(mCubeIndex != -1);
|
||||
|
|
|
|||
|
|
@ -144,13 +144,14 @@ static void touch_default_probe(LLReflectionMap* probe)
|
|||
|
||||
LLReflectionMapManager::LLReflectionMapManager()
|
||||
{
|
||||
mDynamicProbeCount = LL_MAX_REFLECTION_PROBE_COUNT;
|
||||
initCubeFree();
|
||||
}
|
||||
|
||||
void LLReflectionMapManager::initCubeFree()
|
||||
{
|
||||
// start at 1 because index 0 is reserved for mDefaultProbe
|
||||
for (int i = 1; i < LL_MAX_REFLECTION_PROBE_COUNT; ++i)
|
||||
for (U32 i = 1; i < mDynamicProbeCount; ++i)
|
||||
{
|
||||
mCubeFree.push_back(i);
|
||||
}
|
||||
|
|
@ -221,15 +222,50 @@ void LLReflectionMapManager::update()
|
|||
resume();
|
||||
}
|
||||
|
||||
static LLCachedControl<U32> probe_count(gSavedSettings, "RenderReflectionProbeCount", 256U);
|
||||
bool countReset = mReflectionProbeCount != probe_count;
|
||||
static LLCachedControl<S32> sDetail(gSavedSettings, "RenderReflectionProbeDetail", -1);
|
||||
static LLCachedControl<S32> sLevel(gSavedSettings, "RenderReflectionProbeLevel", 3);
|
||||
|
||||
if (countReset)
|
||||
// Once every 20 frames, update the dynamic probe count.
|
||||
if (gFrameCount % 20)
|
||||
{
|
||||
mResetFade = -0.5f;
|
||||
U32 probe_count_temp = mDynamicProbeCount;
|
||||
if (sLevel == 0)
|
||||
{
|
||||
mDynamicProbeCount = 1;
|
||||
}
|
||||
else if (sLevel == 1)
|
||||
{
|
||||
mDynamicProbeCount = (U32)mProbes.size();
|
||||
|
||||
}
|
||||
else if (sLevel == 2)
|
||||
{
|
||||
mDynamicProbeCount = llmax((U32)mProbes.size(), 128);
|
||||
}
|
||||
else
|
||||
{
|
||||
mDynamicProbeCount = 256;
|
||||
}
|
||||
|
||||
// Round mDynamicProbeCount to the nearest increment of 32
|
||||
mDynamicProbeCount = ((mDynamicProbeCount + 16) / 32) * 32;
|
||||
mDynamicProbeCount = llclamp(mDynamicProbeCount, 1, LL_MAX_REFLECTION_PROBE_COUNT);
|
||||
|
||||
if (mDynamicProbeCount < probe_count_temp * 1.1 && mDynamicProbeCount > probe_count_temp * 0.9)
|
||||
mDynamicProbeCount = probe_count_temp;
|
||||
else
|
||||
mGlobalFadeTarget = 0.f;
|
||||
}
|
||||
|
||||
initReflectionMaps();
|
||||
if (mGlobalFadeTarget < mResetFade)
|
||||
mResetFade = llmax(mGlobalFadeTarget, mResetFade - (F32)gFrameIntervalSeconds * 2);
|
||||
else
|
||||
mResetFade = llmin(mGlobalFadeTarget, mResetFade + (F32)gFrameIntervalSeconds * 2);
|
||||
|
||||
if (mResetFade == mGlobalFadeTarget)
|
||||
{
|
||||
initReflectionMaps();
|
||||
}
|
||||
|
||||
static LLCachedControl<bool> render_hdr(gSavedSettings, "RenderHDREnabled", true);
|
||||
|
||||
|
|
@ -286,9 +322,6 @@ void LLReflectionMapManager::update()
|
|||
|
||||
bool did_update = false;
|
||||
|
||||
static LLCachedControl<S32> sDetail(gSavedSettings, "RenderReflectionProbeDetail", -1);
|
||||
static LLCachedControl<S32> sLevel(gSavedSettings, "RenderReflectionProbeLevel", 3);
|
||||
|
||||
bool realtime = sDetail >= (S32)LLReflectionMapManager::DetailLevel::REALTIME;
|
||||
|
||||
LLReflectionMap* closestDynamic = nullptr;
|
||||
|
|
@ -343,12 +376,7 @@ void LLReflectionMapManager::update()
|
|||
}
|
||||
}
|
||||
|
||||
if (countReset)
|
||||
{
|
||||
mResetFade = -0.5f;
|
||||
}
|
||||
|
||||
mResetFade = llmin((F32)(mResetFade + gFrameIntervalSeconds), 1.f);
|
||||
mResetFade = llmin((F32)(mResetFade + gFrameIntervalSeconds * 2.f), 1.f);
|
||||
|
||||
for (unsigned int i = 0; i < mProbes.size(); ++i)
|
||||
{
|
||||
|
|
@ -520,6 +548,16 @@ LLReflectionMap* LLReflectionMapManager::addProbe(LLSpatialGroup* group)
|
|||
return probe;
|
||||
}
|
||||
|
||||
U32 LLReflectionMapManager::probeCount()
|
||||
{
|
||||
return mDynamicProbeCount;
|
||||
}
|
||||
|
||||
U32 LLReflectionMapManager::probeMemory()
|
||||
{
|
||||
return (mDynamicProbeCount * 6 * (mProbeResolution * mProbeResolution) * 4) / 1024 / 1024 + (mDynamicProbeCount * 6 * (LL_IRRADIANCE_MAP_RESOLUTION * LL_IRRADIANCE_MAP_RESOLUTION) * 4) / 1024 / 1024;
|
||||
}
|
||||
|
||||
struct CompareProbeDepth
|
||||
{
|
||||
bool operator()(const LLReflectionMap* lhs, const LLReflectionMap* rhs)
|
||||
|
|
@ -1058,7 +1096,11 @@ void LLReflectionMapManager::updateUniforms()
|
|||
|
||||
bool is_ambiance_pass = gCubeSnapshot && !isRadiancePass();
|
||||
F32 ambscale = is_ambiance_pass ? 0.f : 1.f;
|
||||
ambscale *= mResetFade;
|
||||
ambscale = llmax(0, ambscale);
|
||||
F32 radscale = is_ambiance_pass ? 0.5f : 1.f;
|
||||
radscale *= mResetFade;
|
||||
radscale = llmax(0, radscale);
|
||||
|
||||
for (auto* refmap : mReflectionMaps)
|
||||
{
|
||||
|
|
@ -1129,8 +1171,8 @@ void LLReflectionMapManager::updateUniforms()
|
|||
}
|
||||
|
||||
mProbeData.refParams[count].set(
|
||||
llmax(minimum_ambiance, refmap->getAmbiance())*ambscale * llmax(mResetFade, 0.f), // ambiance scale
|
||||
radscale * llmax(mResetFade, 0.f), // radiance scale
|
||||
llmax(minimum_ambiance, refmap->getAmbiance())*ambscale, // ambiance scale
|
||||
radscale, // radiance scale
|
||||
refmap->mFadeIn, // fade in weight
|
||||
oa.getF32ptr()[2] - refmap->mRadius); // z near
|
||||
|
||||
|
|
@ -1365,12 +1407,9 @@ void LLReflectionMapManager::renderDebug()
|
|||
|
||||
void LLReflectionMapManager::initReflectionMaps()
|
||||
{
|
||||
static LLCachedControl<U32> probe_count(gSavedSettings, "RenderReflectionProbeCount", 256U);
|
||||
U32 count = probe_count();
|
||||
|
||||
static LLCachedControl<U32> ref_probe_res(gSavedSettings, "RenderReflectionProbeResolution", 128U);
|
||||
U32 probe_resolution = nhpo2(llclamp(ref_probe_res(), (U32)64, (U32)512));
|
||||
if (mTexture.isNull() || mReflectionProbeCount != count || mProbeResolution != probe_resolution || mReset)
|
||||
if (mTexture.isNull() || mReflectionProbeCount != mDynamicProbeCount || mProbeResolution != probe_resolution || mReset)
|
||||
{
|
||||
if(mProbeResolution != probe_resolution)
|
||||
{
|
||||
|
|
@ -1379,9 +1418,10 @@ void LLReflectionMapManager::initReflectionMaps()
|
|||
}
|
||||
|
||||
gEXRImage = nullptr;
|
||||
|
||||
mGlobalFadeTarget = 1.f;
|
||||
mResetFade = -0.125f;
|
||||
mReset = false;
|
||||
mReflectionProbeCount = count;
|
||||
mReflectionProbeCount = mDynamicProbeCount;
|
||||
mProbeResolution = probe_resolution;
|
||||
mMaxProbeLOD = log2f((F32)mProbeResolution) - 1.f; // number of mips - 1
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class LLViewerObject;
|
|||
#define LL_MAX_REFLECTION_PROBE_COUNT 256
|
||||
|
||||
// reflection probe resolution
|
||||
#define LL_IRRADIANCE_MAP_RESOLUTION 64
|
||||
#define LL_IRRADIANCE_MAP_RESOLUTION 16
|
||||
|
||||
// reflection probe mininum scale
|
||||
#define LL_REFLECTION_PROBE_MINIMUM_SCALE 1.f;
|
||||
|
|
@ -159,6 +159,9 @@ public:
|
|||
// with false when done.
|
||||
void forceDefaultProbeAndUpdateUniforms(bool force = true);
|
||||
|
||||
U32 probeCount();
|
||||
U32 probeMemory();
|
||||
|
||||
private:
|
||||
friend class LLPipeline;
|
||||
friend class LLHeroProbeManager;
|
||||
|
|
@ -166,6 +169,9 @@ private:
|
|||
// initialize mCubeFree array to default values
|
||||
void initCubeFree();
|
||||
|
||||
// Just does a bulk clear of all of the cubemaps.
|
||||
void clearCubeMaps();
|
||||
|
||||
// delete the probe with the given index in mProbes
|
||||
void deleteProbe(U32 i);
|
||||
|
||||
|
|
@ -240,6 +246,8 @@ private:
|
|||
// number of reflection probes to use for rendering
|
||||
U32 mReflectionProbeCount;
|
||||
|
||||
U32 mDynamicProbeCount;
|
||||
|
||||
// resolution of reflection probes
|
||||
U32 mProbeResolution = 128;
|
||||
|
||||
|
|
@ -253,6 +261,7 @@ private:
|
|||
bool mReset = false;
|
||||
|
||||
float mResetFade = 1.f;
|
||||
float mGlobalFadeTarget = 1.f;
|
||||
|
||||
// if true, only update the default probe
|
||||
bool mPaused = false;
|
||||
|
|
|
|||
|
|
@ -584,11 +584,13 @@ void LLGLTexMemBar::draw()
|
|||
gGL.color4f(0.f, 0.f, 0.f, 0.25f);
|
||||
gl_rect_2d(-10, getRect().getHeight() + line_height*2 + 1, getRect().getWidth()+2, getRect().getHeight()+2);
|
||||
|
||||
text = llformat("Est. Free: %d MB Sys Free: %d MB GL Tex: %d MB FBO: %d MB Bias: %.2f Cache: %.1f/%.1f MB",
|
||||
text = llformat("Est. Free: %d MB Sys Free: %d MB GL Tex: %d MB FBO: %d MB Probe#: %d Probe Mem: %d MB Bias: %.2f Cache: %.1f/%.1f MB",
|
||||
(S32)LLViewerTexture::sFreeVRAMMegabytes,
|
||||
LLMemory::getAvailableMemKB()/1024,
|
||||
LLImageGL::getTextureBytesAllocated() / 1024 / 1024,
|
||||
LLRenderTarget::sBytesAllocated/(1024*1024),
|
||||
gPipeline.mReflectionMapManager.probeCount(),
|
||||
gPipeline.mReflectionMapManager.probeMemory(),
|
||||
discard_bias,
|
||||
cache_usage,
|
||||
cache_max_usage);
|
||||
|
|
|
|||
|
|
@ -5001,6 +5001,18 @@ void LLViewerObject::setPositionParent(const LLVector3 &pos_parent, bool damped)
|
|||
else
|
||||
{
|
||||
setPositionRegion(pos_parent, damped);
|
||||
|
||||
// #1964 mark reflection probe in the linkset to update position after moving via script
|
||||
for (LLViewerObject* child : mChildList)
|
||||
{
|
||||
if (child && child->isReflectionProbe())
|
||||
{
|
||||
if (LLDrawable* drawablep = child->mDrawable)
|
||||
{
|
||||
gPipeline.markMoved(drawablep);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -593,7 +593,7 @@ void LLViewerParcelOverlay::addPropertyLine(F32 start_x, F32 start_y, F32 dx, F3
|
|||
outside_y += dy * (dy - LINE_WIDTH);
|
||||
|
||||
// Middle part, full width
|
||||
const S32 GRID_STEP = S32( PARCEL_GRID_STEP_METERS );
|
||||
const S32 GRID_STEP = (S32)PARCEL_GRID_STEP_METERS;
|
||||
for (S32 i = 1; i < GRID_STEP; i++)
|
||||
{
|
||||
inside_z = land.resolveHeightRegion( inside_x, inside_y );
|
||||
|
|
@ -682,7 +682,9 @@ void LLViewerParcelOverlay::renderPropertyLines()
|
|||
return;
|
||||
|
||||
LLSurface& land = mRegion->getLand();
|
||||
F32 water_z = land.getWaterHeight() + 0.01f;
|
||||
|
||||
bool render_water = gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_WATER);
|
||||
F32 water_z = render_water ? land.getWaterHeight() + 0.01f : 0;
|
||||
|
||||
LLGLSUIDefault gls_ui; // called from pipeline
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
|
|
|
|||
|
|
@ -524,9 +524,11 @@ void LLViewerTexture::updateClass()
|
|||
F32 used = (F32)ll_round(texture_bytes_alloc + vertex_bytes_alloc);
|
||||
|
||||
// <FS:Ansariel> Expose max texture VRAM setting
|
||||
//F32 budget = max_vram_budget == 0 ? (F32)gGLManager.mVRAM : (F32)max_vram_budget;
|
||||
F32 budget = !max_vram_budget_enabled ? (F32)gGLManager.mVRAM : (F32)max_vram_budget;
|
||||
budget /= tex_vram_divisor;
|
||||
// But when manual control is not enabled, use the VRAM divisor.
|
||||
// While we're at it, assume we have 1024 to play with at minimum when the divisor is in use. Works more elegantly with the logic below this.
|
||||
// -Geenz 2025-03-21
|
||||
// F32 budget = max_vram_budget == 0 ? llmax(1024, (F32)gGLManager.mVRAM / tex_vram_divisor) : (F32)max_vram_budget;
|
||||
F32 budget = !max_vram_budget_enabled ? llmax(1024, (F32)gGLManager.mVRAM / (tex_vram_divisor() > 0.f ? tex_vram_divisor() : 1.f)) : (F32)max_vram_budget;
|
||||
|
||||
// Try to leave at least half a GB for everyone else and for bias,
|
||||
// but keep at least 768MB for ourselves
|
||||
|
|
@ -540,7 +542,6 @@ void LLViewerTexture::updateClass()
|
|||
|
||||
bool is_sys_low = isSystemMemoryLow();
|
||||
bool is_low = is_sys_low || over_pct > 0.f;
|
||||
F32 discard_bias = sDesiredDiscardBias;
|
||||
|
||||
static bool was_low = false;
|
||||
static bool was_sys_low = false;
|
||||
|
|
@ -595,6 +596,7 @@ void LLViewerTexture::updateClass()
|
|||
|
||||
// set to max discard bias if the window has been backgrounded for a while
|
||||
static F32 last_desired_discard_bias = 1.f;
|
||||
static F32 last_texture_update_count_bias = 1.f;
|
||||
static bool was_backgrounded = false;
|
||||
static LLFrameTimer backgrounded_timer;
|
||||
static LLCachedControl<F32> minimized_discard_time(gSavedSettings, "TextureDiscardMinimizedTime", 1.f);
|
||||
|
|
@ -630,12 +632,21 @@ void LLViewerTexture::updateClass()
|
|||
}
|
||||
|
||||
sDesiredDiscardBias = llclamp(sDesiredDiscardBias, 1.f, 4.f);
|
||||
if (discard_bias != sDesiredDiscardBias)
|
||||
if (last_texture_update_count_bias < sDesiredDiscardBias)
|
||||
{
|
||||
// bias changed, reset texture update counter to
|
||||
// bias increased, reset texture update counter to
|
||||
// let updates happen at an increased rate.
|
||||
last_texture_update_count_bias = sDesiredDiscardBias;
|
||||
sBiasTexturesUpdated = 0;
|
||||
}
|
||||
else if (last_texture_update_count_bias > sDesiredDiscardBias + 0.1f)
|
||||
{
|
||||
// bias decreased, 0.1f is there to filter out small fluctuations
|
||||
// and not reset sBiasTexturesUpdated too often.
|
||||
// Bias jumps to 1.5 at low memory, so getting stuck at 1.1 is not
|
||||
// a problem.
|
||||
last_texture_update_count_bias = sDesiredDiscardBias;
|
||||
}
|
||||
|
||||
LLViewerTexture::sFreezeImageUpdates = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1073,7 +1073,8 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
|
|||
vsize /= min_scale;
|
||||
|
||||
// apply bias to offscreen faces all the time, but only to onscreen faces when bias is large
|
||||
if (!face->mInFrustum || LLViewerTexture::sDesiredDiscardBias > 2.f)
|
||||
// use mImportanceToCamera to make bias switch a bit more gradual
|
||||
if (!face->mInFrustum || LLViewerTexture::sDesiredDiscardBias > 1.9f + face->mImportanceToCamera / 2.f)
|
||||
{
|
||||
vsize /= bias;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1085,7 +1085,13 @@
|
|||
<color
|
||||
name="SelectedOutfitTextColor"
|
||||
reference="EmphasisColor" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SearchableControlHighlightFontColor"
|
||||
value="0.036 0.349 1 1" />
|
||||
<color
|
||||
name="SearchableControlHighlightBgColor"
|
||||
value="0.036 0.349 0.651 1" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SilhouetteChildColor"
|
||||
reference="SL-MidBlue" />
|
||||
|
|
@ -1374,9 +1380,6 @@
|
|||
<color
|
||||
name="MapPickRadiusColor"
|
||||
reference="EmphasisColor_35" />
|
||||
<color
|
||||
name="SearchableControlHighlightColor"
|
||||
value="0.036 0.349 0.651 1" />
|
||||
<color
|
||||
name="Slidermark"
|
||||
reference="EmphasisColor" />
|
||||
|
|
|
|||
|
|
@ -1032,6 +1032,12 @@
|
|||
<color
|
||||
name="SelectedOutfitTextColor"
|
||||
reference="EmphasisColor" />
|
||||
<color
|
||||
name="SearchableControlHighlightFontColor"
|
||||
reference="Red" />
|
||||
<color
|
||||
name="SearchableControlHighlightBgColor"
|
||||
reference="Red" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SilhouetteChildColor"
|
||||
|
|
@ -1163,9 +1169,6 @@
|
|||
<color
|
||||
name="MapPickRadiusColor"
|
||||
reference="EmphasisColor_35" />
|
||||
<color
|
||||
name="SearchableControlHighlightColor"
|
||||
reference="Red" />
|
||||
<color
|
||||
name="OutfitGalleryItemSelected"
|
||||
reference="EmphasisColor" />
|
||||
|
|
|
|||
|
|
@ -1082,6 +1082,12 @@
|
|||
<color
|
||||
name="SelectedOutfitTextColor"
|
||||
reference="EmphasisColor" />
|
||||
<color
|
||||
name="SearchableControlHighlightFontColor"
|
||||
value="0.799 0.491 0.131 1" />
|
||||
<color
|
||||
name="SearchableControlHighlightBgColor"
|
||||
value="0.799 0.491 0.131 1" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SilhouetteChildColor"
|
||||
|
|
@ -1367,9 +1373,6 @@
|
|||
<color
|
||||
name="MapPickRadiusColor"
|
||||
reference="EmphasisColor_35" />
|
||||
<color
|
||||
name="SearchableControlHighlightColor"
|
||||
value="0.799 0.491 0.131 1" />
|
||||
<color
|
||||
name="Slidermark"
|
||||
reference="EmphasisColor" />
|
||||
|
|
|
|||
|
|
@ -1020,6 +1020,12 @@
|
|||
<color
|
||||
name="SelectedOutfitTextColor"
|
||||
reference="EmphasisColor" />
|
||||
<color
|
||||
name="SearchableControlHighlightFontColor"
|
||||
value="0.168 0.684 0.224 1" />
|
||||
<color
|
||||
name="SearchableControlHighlightBgColor"
|
||||
value="0.168 0.684 0.224 1" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SilhouetteChildColor"
|
||||
|
|
@ -1151,9 +1157,6 @@
|
|||
<color
|
||||
name="MapPickRadiusColor"
|
||||
reference="EmphasisColor_35" />
|
||||
<color
|
||||
name="SearchableControlHighlightColor"
|
||||
value="0.168 0.684 0.224 1" />
|
||||
<color
|
||||
name="OutfitGalleryItemSelected"
|
||||
reference="EmphasisColor" />
|
||||
|
|
|
|||
|
|
@ -1028,6 +1028,12 @@
|
|||
<color
|
||||
name="SelectedOutfitTextColor"
|
||||
reference="EmphasisColor" />
|
||||
<color
|
||||
name="SearchableControlHighlightFontColor"
|
||||
reference="Red" />
|
||||
<color
|
||||
name="SearchableControlHighlightBgColor"
|
||||
reference="Red" />
|
||||
<!-- Color Changed -->
|
||||
<color
|
||||
name="SilhouetteChildColor"
|
||||
|
|
@ -1334,9 +1340,6 @@
|
|||
<color
|
||||
name="MapPickRadiusColor"
|
||||
reference="MapFrustumColor" />
|
||||
<color
|
||||
name="SearchableControlHighlightColor"
|
||||
reference="Red" />
|
||||
<color
|
||||
name="Slidermark"
|
||||
reference="DkGray" />
|
||||
|
|
|
|||
|
|
@ -236,7 +236,6 @@
|
|||
<slider label="Schattenqualität" tool_tip="Qualität der Schattendarstellung (Standard: 1)" name="ShadowResolution"/>
|
||||
<slider label="Skalierung der Bodentexturen (Erfordert Neustart)" name="RenderTerrainScale" tool_tip="Setzt die Skalierung der Bodentexturen - niedriger bedeutet höhere Kompression"/>
|
||||
<slider label="Schärfung" name="RenderSharpness"/>
|
||||
<slider label="Max. Anzahl Reflexionsproben" name="MaxProbes"/>
|
||||
<text name="TonemapTypeText">
|
||||
Tone Mapper:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -858,23 +858,6 @@
|
|||
value="3"/>
|
||||
</combo_box>
|
||||
|
||||
<slider
|
||||
control_name="RenderReflectionProbeCount"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
increment="1"
|
||||
initial_value="256"
|
||||
label="Max. Reflection Probes:"
|
||||
label_width="145"
|
||||
layout="topleft"
|
||||
left="420"
|
||||
min_val="1"
|
||||
max_val="256"
|
||||
name="MaxProbes"
|
||||
top_delta="24"
|
||||
width="260" />
|
||||
|
||||
<slider
|
||||
control_name="RenderExposure"
|
||||
decimal_digits="1"
|
||||
|
|
|
|||
|
|
@ -179,7 +179,6 @@
|
|||
control_name="RememberPassword"
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="EmphasisColor"
|
||||
height="24"
|
||||
left="262"
|
||||
bottom_delta="0"
|
||||
|
|
|
|||
|
|
@ -1599,22 +1599,6 @@ If you do not understand the distinction then leave this control alone."
|
|||
width="405">
|
||||
</slider>
|
||||
<!-- End of Sharpening Settings-->
|
||||
<slider
|
||||
control_name="RenderReflectionProbeCount"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
increment="1"
|
||||
initial_value="256"
|
||||
label="Max. Reflection Probes:"
|
||||
label_width="300"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
min_val="1"
|
||||
max_val="256"
|
||||
name="MaxProbes"
|
||||
top_pad="0"
|
||||
width="405" />
|
||||
<!-- Tone Mapping Settings -->
|
||||
<text
|
||||
type="string"
|
||||
|
|
|
|||
Loading…
Reference in New Issue