feat(modals): fixed modal-backdrop blur, independent of the acrylic slider
The modal backdrop blur was params.blurRadius (96) scaled by the user's global acrylic blur-strength slider (blurRadiusMultiplier), so lowering the slider also weakened every modal's backdrop. Make the modal blur a fixed hardcoded value. Add AcrylicParams::absoluteBlurRadius: when set, applyBlur() uses the radius as-is and skips the multiplier (threaded through both the GL and DX11 blur paths + the no-op stub). DrawFullWindowBlurBackdrop sets it, so the modal backdrop is always a 96px blur regardless of the slider. Panels/other acrylic still scale with the slider as before. Verified: rendering a modal at blur_multiplier 0.1 vs 2.0 now produces an identical backdrop (max pixel diff 1/255) — previously those were ~9.6px vs ~192px of blur. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -39,7 +39,12 @@ struct AcrylicParams {
|
||||
|
||||
// Blur radius in pixels (typical: 20-60)
|
||||
float blurRadius = 30.0f;
|
||||
|
||||
|
||||
// When true, blurRadius is used AS-IS — NOT scaled by the user's blur-strength slider
|
||||
// (blurRadiusMultiplier). The modal backdrop sets this so its blur is a fixed value, independent
|
||||
// of the global acrylic slider.
|
||||
bool absoluteBlurRadius = false;
|
||||
|
||||
// Noise texture opacity (typical: 0.02-0.04)
|
||||
float noiseOpacity = 0.02f;
|
||||
|
||||
@@ -341,7 +346,7 @@ private:
|
||||
/**
|
||||
* @brief Apply blur passes to captured content
|
||||
*/
|
||||
void applyBlur(float radius);
|
||||
void applyBlur(float radius, bool ignoreMultiplier = false);
|
||||
|
||||
/**
|
||||
* @brief Composite final acrylic appearance
|
||||
|
||||
Reference in New Issue
Block a user