Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
314 changes: 95 additions & 219 deletions examples/test_glass/Main.qml

Large diffs are not rendered by default.

54 changes: 17 additions & 37 deletions examples/test_glass/helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,10 @@
// Glass material parameters
Q_PROPERTY(qreal glassBezel READ glassBezel WRITE setGlassBezel NOTIFY glassBezelChanged)
Q_PROPERTY(qreal glassThickness READ glassThickness WRITE setGlassThickness NOTIFY glassThicknessChanged)
Q_PROPERTY(qreal glassDisplacementFactor READ glassDisplacementFactor WRITE setGlassDisplacementFactor NOTIFY glassDisplacementFactorChanged)
Q_PROPERTY(qreal glassIor READ glassIor WRITE setGlassIor NOTIFY glassIorChanged)
Q_PROPERTY(qreal glassDispersion READ glassDispersion WRITE setGlassDispersion NOTIFY glassDispersionChanged)
Q_PROPERTY(qreal glassBrightness READ glassBrightness WRITE setGlassBrightness NOTIFY glassBrightnessChanged)
Q_PROPERTY(qreal glassEdgeSaturation READ glassEdgeSaturation WRITE setGlassEdgeSaturation NOTIFY glassEdgeSaturationChanged)
Q_PROPERTY(qreal glassLightAngle READ glassLightAngle WRITE setGlassLightAngle NOTIFY glassLightAngleChanged)
Q_PROPERTY(qreal glassReflectionOffset READ glassReflectionOffset WRITE setGlassReflectionOffset NOTIFY glassReflectionOffsetChanged)
Q_PROPERTY(bool glassHighlightEnabled READ glassHighlightEnabled WRITE setGlassHighlightEnabled NOTIFY glassHighlightEnabledChanged)
Q_PROPERTY(qreal glassSpecularOpacity READ glassSpecularOpacity WRITE setGlassSpecularOpacity NOTIFY glassSpecularOpacityChanged)
Q_PROPERTY(qreal glassTintOpacity READ glassTintOpacity WRITE setGlassTintOpacity NOTIFY glassTintOpacityChanged)
Q_PROPERTY(qreal glassShadow READ glassShadow WRITE setGlassShadow NOTIFY glassShadowChanged)

public:
explicit GlassConfig(QObject *parent = nullptr);
Expand All @@ -50,25 +46,17 @@
qreal blurMultiplier() const { return m_blurMultiplier; }
void setBlurMultiplier(qreal v) { if (m_blurMultiplier != v) { m_blurMultiplier = v; emit blurMultiplierChanged(); } }
qreal glassBezel() const { return m_glassBezel; }
void setGlassBezel(qreal v) { if (m_glassBezel != v) { m_glassBezel = v; emit glassBezelChanged(); } }

Check warning on line 49 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'setGlassBezel' is never used.
qreal glassThickness() const { return m_glassThickness; }

Check warning on line 50 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'glassThickness' is never used.
void setGlassThickness(qreal v) { if (m_glassThickness != v) { m_glassThickness = v; emit glassThicknessChanged(); } }

Check warning on line 51 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'setGlassThickness' is never used.
qreal glassDisplacementFactor() const { return m_glassDisplacementFactor; }
void setGlassDisplacementFactor(qreal v) { if (m_glassDisplacementFactor != v) { m_glassDisplacementFactor = v; emit glassDisplacementFactorChanged(); } }
qreal glassIor() const { return m_glassIor; }

Check warning on line 52 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'glassIor' is never used.
void setGlassIor(qreal v) { if (m_glassIor != v) { m_glassIor = v; emit glassIorChanged(); } }

Check warning on line 53 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'setGlassIor' is never used.
qreal glassDispersion() const { return m_glassDispersion; }
void setGlassDispersion(qreal v) { if (m_glassDispersion != v) { m_glassDispersion = v; emit glassDispersionChanged(); } }
qreal glassBrightness() const { return m_glassBrightness; }
void setGlassBrightness(qreal v) { if (m_glassBrightness != v) { m_glassBrightness = v; emit glassBrightnessChanged(); } }
qreal glassEdgeSaturation() const { return m_glassEdgeSaturation; }
void setGlassEdgeSaturation(qreal v) { if (m_glassEdgeSaturation != v) { m_glassEdgeSaturation = v; emit glassEdgeSaturationChanged(); } }
qreal glassLightAngle() const { return m_glassLightAngle; }
void setGlassLightAngle(qreal v) { if (m_glassLightAngle != v) { m_glassLightAngle = v; emit glassLightAngleChanged(); } }
qreal glassReflectionOffset() const { return m_glassReflectionOffset; }
void setGlassReflectionOffset(qreal v) { if (m_glassReflectionOffset != v) { m_glassReflectionOffset = v; emit glassReflectionOffsetChanged(); } }
bool glassHighlightEnabled() const { return m_glassHighlightEnabled; }
void setGlassHighlightEnabled(bool v) { if (m_glassHighlightEnabled != v) { m_glassHighlightEnabled = v; emit glassHighlightEnabledChanged(); } }
qreal glassSpecularOpacity() const { return m_glassSpecularOpacity; }

Check warning on line 54 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'glassSpecularOpacity' is never used.
void setGlassSpecularOpacity(qreal v) { if (m_glassSpecularOpacity != v) { m_glassSpecularOpacity = v; emit glassSpecularOpacityChanged(); } }

Check warning on line 55 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'setGlassSpecularOpacity' is never used.
qreal glassTintOpacity() const { return m_glassTintOpacity; }

Check warning on line 56 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'glassTintOpacity' is never used.
void setGlassTintOpacity(qreal v) { if (m_glassTintOpacity != v) { m_glassTintOpacity = v; emit glassTintOpacityChanged(); } }

Check warning on line 57 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'setGlassTintOpacity' is never used.
qreal glassShadow() const { return m_glassShadow; }

Check warning on line 58 in examples/test_glass/helper.h

View workflow job for this annotation

GitHub Actions / cppcheck

The function 'glassShadow' is never used.
void setGlassShadow(qreal v) { if (m_glassShadow != v) { m_glassShadow = v; emit glassShadowChanged(); } }

Q_SIGNALS:
void glassEnabledChanged();
Expand All @@ -77,30 +65,22 @@
void blurMultiplierChanged();
void glassBezelChanged();
void glassThicknessChanged();
void glassDisplacementFactorChanged();
void glassIorChanged();
void glassDispersionChanged();
void glassBrightnessChanged();
void glassEdgeSaturationChanged();
void glassLightAngleChanged();
void glassReflectionOffsetChanged();
void glassHighlightEnabledChanged();
void glassSpecularOpacityChanged();
void glassTintOpacityChanged();
void glassShadowChanged();

private:
bool m_glassEnabled = true;
int m_blurStrength = 20;
qreal m_blurAmount = 1.0;
qreal m_blurMultiplier = 0.0;
qreal m_glassBezel = 30;
qreal m_glassBezel = 60;
qreal m_glassThickness = 50;
qreal m_glassDisplacementFactor = 1.0;
qreal m_glassIor = 1.2;
qreal m_glassDispersion = 0.0;
qreal m_glassBrightness = 0.0;
qreal m_glassEdgeSaturation = 0.4;
qreal m_glassLightAngle = -127;
qreal m_glassReflectionOffset = 12.0;
bool m_glassHighlightEnabled = false;
qreal m_glassIor = 3.0;
qreal m_glassSpecularOpacity = 0.55;
qreal m_glassTintOpacity = 0.08;
qreal m_glassShadow = 0.5;
};

WAYLIB_SERVER_BEGIN_NAMESPACE
Expand Down
98 changes: 27 additions & 71 deletions misc/dconfig/org.deepin.dde.treeland.user.json
Original file line number Diff line number Diff line change
Expand Up @@ -476,24 +476,24 @@
"visibility": "public"
},
"glassBezel": {
"value": 30,
"value": 60,
"serial": 0,
"flags": [],
"name": "Glass Bezel Width",
"name[zh_CN]": "玻璃边缘厚度",
"description": "The width of the rounded edge bevel for the Liquid Glass effect. Controls how much light bends around the border.",
"description[zh_CN]": "液态玻璃效果的边缘倒角厚度,控制光线在边界处的折射强度。",
"description": "The width of the rounded edge bevel for the Liquid Glass effect. Controls how much light bends around the border. Range: 2-60.",
"description[zh_CN]": "液态玻璃效果的边缘倒角厚度,控制光线在边界处的折射强度。范围:2-60。",
"permissions": "readwrite",
"visibility": "public"
},
"glassThickness": {
"value": 20,
"value": 50,
"serial": 0,
"flags": [],
"name": "Glass Base Thickness",
"name[zh_CN]": "玻璃基础厚度",
"description": "The base thickness of the Liquid Glass effect. Controls the overall strength of background image distortion/refraction.",
"description[zh_CN]": "液态玻璃效果的基础厚度,控制整体对背景图像的畸变/折射强度。",
"description": "The base thickness of the Liquid Glass effect. Controls the overall strength of background image distortion/refraction. Range: 10-200.",
"description[zh_CN]": "液态玻璃效果的基础厚度,控制整体对背景图像的畸变/折射强度。范围:10-200。",
"permissions": "readwrite",
"visibility": "public"
},
Expand All @@ -519,91 +519,47 @@
"permissions": "readwrite",
"visibility": "public"
},
"glassDisplacementFactor": {
"value": 1.0,
"serial": 0,
"flags": [],
"name": "Glass Displacement Factor",
"name[zh_CN]": "玻璃位移强度",
"description": "Scalar applied to Liquid Glass refraction displacement. Higher values bend the sampled backdrop more strongly. Range: 0.0-4.0.",
"description[zh_CN]": "液态玻璃折射位移的缩放系数。值越大,背景采样弯曲越明显。范围:0.0-4.0。",
"permissions": "readwrite",
"visibility": "public"
},
"glassIor": {
"value": 1.5,
"value": 3.0,
"serial": 0,
"flags": [],
"name": "Glass Refraction Index",
"name[zh_CN]": "玻璃折射率",
"description": "Refraction index used by the Liquid Glass material. Values near 1 reduce refraction; larger values bend light more. Range: 1.0-2.5.",
"description[zh_CN]": "液态玻璃材质使用的折射率。接近 1 时折射较弱,值越大光线弯折越明显。范围:1.0-2.5。",
"permissions": "readwrite",
"visibility": "public"
},
"glassDispersion": {
"value": 0.0,
"serial": 0,
"flags": [],
"name": "Glass Dispersion",
"name[zh_CN]": "玻璃色散",
"description": "Chromatic dispersion amount for the Liquid Glass refraction. 0 disables RGB channel separation. Range: 0.0-0.1.",
"description[zh_CN]": "液态玻璃折射的色散强度。0 表示关闭 RGB 通道分离。范围:0.0-0.1。",
"permissions": "readwrite",
"visibility": "public"
},
"glassBrightness": {
"value": 0.0,
"serial": 0,
"flags": [],
"name": "Glass Brightness",
"name[zh_CN]": "玻璃亮度",
"description": "Brightness adjustment applied to the Liquid Glass backdrop before refraction. 0 keeps the sampled backdrop unchanged. Range: -1.0-1.0.",
"description[zh_CN]": "液态玻璃折射前应用于背景采样的亮度调节。0 表示保持采样背景不变。范围:-1.0-1.0。",
"description": "Refraction index used by the Liquid Glass material. Values near 1 reduce refraction; larger values bend light more. Range: 1.0-3.0.",
"description[zh_CN]": "液态玻璃材质使用的折射率。接近 1 时折射较弱,值越大光线弯折越明显。范围:1.0-3.0。",
"permissions": "readwrite",
"visibility": "public"
},
"glassEdgeSaturation": {
"value": 0.4,
"glassSpecularOpacity": {
"value": 0.55,
"serial": 0,
"flags": [],
"name": "Glass Edge Saturation",
"name[zh_CN]": "玻璃边缘饱和度",
"description": "Additional saturation applied only inside the Liquid Glass bevel/edge zone. 0 keeps the sampled backdrop unchanged. Range: 0.0-1.0.",
"description[zh_CN]": "仅应用在液态玻璃倒角/边缘区域的额外饱和度。0 表示保持采样背景不变。范围:0.0-1.0。",
"name": "Glass Specular Opacity",
"name[zh_CN]": "玻璃高光强度",
"description": "Strength of the specular edge highlight on the Liquid Glass surface. Range: 0.0-1.0.",
"description[zh_CN]": "液态玻璃表面边缘高光的强度。范围:0.0-1.0。",
"permissions": "readwrite",
"visibility": "public"
},
"glassLightAngle": {
"value": -127,
"glassTintOpacity": {
"value": 0.08,
"serial": 0,
"flags": [],
"name": "Glass Light Angle",
"name[zh_CN]": "玻璃光线角度",
"description": "Light direction angle in degrees for Liquid Glass optical modulation. 0 points right, -90 points up, 90 points down. Range: -180.0-180.0.",
"description[zh_CN]": "液态玻璃光学调制使用的光线方向角度(度)。0 向右,-90 向上,90 向下。范围:-180.0-180.0。",
"name": "Glass Tint Opacity",
"name[zh_CN]": "玻璃着色强度",
"description": "Amount of white tint mixed into the Liquid Glass surface. The tint blends the glass color toward white. Range: 0.0-1.0.",
"description[zh_CN]": "混合到液态玻璃表面的白色着色量。着色将玻璃颜色向白色混合。范围:0.0-1.0。",
"permissions": "readwrite",
"visibility": "public"
},
"glassReflectionOffset": {
"value": 12.0,
"serial": 0,
"flags": [],
"name": "Glass Reflection Offset",
"name[zh_CN]": "玻璃反射偏移",
"description": "Backdrop sampling offset in pixels for Liquid Glass reflection/rim tint. 0 samples from the current pixel. Range: 0.0-60.0.",
"description[zh_CN]": "液态玻璃反射/边缘染色使用的背景采样偏移(像素)。0 表示从当前像素采样。范围:0.0-60.0。",
"permissions": "readwrite",
"visibility": "public"
},
"glassHighlightEnabled": {
"value": false,
"glassShadow": {
"value": 0.5,
"serial": 0,
"flags": [],
"name": "Glass Highlight Enabled",
"name[zh_CN]": "玻璃高光开关",
"description": "Enable directional specular rim highlights on the Liquid Glass edge. When disabled, the glass shows only refraction and reflection without bright rim light.",
"description[zh_CN]": "在液态玻璃边缘启用方向性镜面高光。关闭时玻璃仅显示折射和反射,无明亮边缘高光。",
"name": "Glass Shadow",
"name[zh_CN]": "玻璃阴影",
"description": "Outer shadow strength around the Liquid Glass item, rendered via MultiEffect. Range: 0.0-1.0.",
"description[zh_CN]": "液态玻璃项目周围的外阴影强度,通过 MultiEffect 渲染。范围:0.0-1.0。",
"permissions": "readwrite",
"visibility": "public"
}
Expand Down
Loading
Loading