Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wangwenx190/qtacrylicmaterial
Cross-platform implementation of Microsoft's Acrylic material.
https://github.com/wangwenx190/qtacrylicmaterial
acrylic acrylic-material mica mica-material qt qt-quick qt-rhi
Last synced: about 1 month ago
JSON representation
Cross-platform implementation of Microsoft's Acrylic material.
- Host: GitHub
- URL: https://github.com/wangwenx190/qtacrylicmaterial
- Owner: wangwenx190
- License: mit
- Created: 2022-04-11T09:49:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-16T10:24:29.000Z (about 2 years ago)
- Last Synced: 2024-12-20T17:35:03.722Z (about 2 months ago)
- Topics: acrylic, acrylic-material, mica, mica-material, qt, qt-quick, qt-rhi
- Language: C++
- Homepage:
- Size: 43.1 MB
- Stars: 28
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QtAcrylicMaterial
This is a cross-platform implementation of [Microsoft's Acrylic material](https://docs.microsoft.com/en-us/windows/apps/design/style/acrylic), based on pure Qt Quick technology and supports Qt RHI as well.
## Screenshots
![Windows](./doc/win.png)
![Linux](./doc/linux.png)
![macOS](./doc/mac.png)
## Supported platforms
- Windows: D3D11, Vulkan, OpenGL
- Linux: Vulkan, OpenGL
- macOS: Metal, Vulkan, OpenGLNote: Please refer to [Qt's own supported platforms](https://doc.qt.io/qt-6/supported-platforms.html) to get the specific supported OS version.
## Requirements
- Qt version: at least Qt 6, the newer, the better. Tested on Qt 6.3.0.
- Qt modules: QtCore, QtGui, QtShaderTools, QtQuick.
- Compiler: supports C++17 at least, the newer, the better. Tested on MSVC 2022 (Windows), GCC 11 (Linux) and Clang 13 (macOS).
- Build system: the latest version of CMake and ninja. QMake is not tested.## Limitations
- This library uses the desktop wallpaper as the blur source instead of the visual content behind the window because to achieve the latter much platform-specific black magic will be needed and it also doesn't play well with Qt Quick and Qt RHI.
- The blurred wallpaper has a little latency to catch up with the host window's latest position.
- The host window's resizing performance will be affected much, especially on some old hardware.
- The gaussian blur's appearance is not exactly the same with Microsoft's one, not sure why.
- The CPU & memory usage and power consumption of your application will increase for quite some bit.
- The host window's overall performance will have some impact in some degree.
- This library can update the desktop wallpaper automatically, but only on Windows, because I don't know how to detect the corresponding event on Linux and macOS.## Acrylic material's definition
![MSAcrylicMaterial](./doc/acrylic-recipe-diagram.png)