Releases: brisklib/brisk
Releases · brisklib/brisk
Brisk v0.9.5
What's Changed
Full Changelog: v0.9.4...v0.9.5
Brisk v0.9.4
This is a bug-fix release that includes improvements to exception safety, memory alignment, and the resolution of several bugs.
Brisk v0.9.3
What's Changed
- Updated the showcase demo app with additional features
- Fixed screenshot capture issues caused by nested event loops
- Added
""_Text
UDL as an alias fornew Text{""}
- Introduced a
transform
function that accepts multipleValue
s and a lambda - Refactored package building process
- Reduced the size of release binaries
- Expanded and improved documentation
- Updated CxxDox to the latest version
- Enabled testing of demo app building in GitHub Actions
- Disabled inlining enforcement in debug mode
- Applied layout fixes
- Prevented letter spacing from disabling kerning
- Refactored
TextEditor
andPages
components - Added properties for
ScrollBox
- Various fixes and general improvements
Full Changelog: v0.9.2...v0.9.3
Brisk v0.9.2
What's Changed
Added
- New
BRISK_ICU
CMake option to control ICU inclusion - Added support for multiline text editors
- Added
wordWrap
property for theText
widget to control word breaking - Added
dynamicFocus
property for theItem
widget - Added support for *-windows-static vcpkg triplets
- New
fontFeatures
property - Enhanced OS dialogs (file and folder dialogs, message boxes)
- Updated vcpkg to 2024.09.23
- Wayland support for Linux
- Temporarily disabling style transitions
Changed
- Updated example projects
- Optimized dependency size
- Improved Linux support
- Major update to the font engine
- Improved text rendering
- Enhanced
.natvis
support - Stylesheet updates
- Documentation improvements
- Text widget: improved caching
- vcpkg: Use Clang if available
Fixed
- Fixed
trim
function - Fixed
drawImage
coordinates - Fixed WebP reading issues
- Fixed selected state behavior
- Improved keyboard focus behavior
- Various performance optimizations
Full Changelog: v0.9.1...v0.9.2
Brisk v0.9.1 (alpha)
See https://docs.brisklib.com/ for the documentation.
Key Features and Updates
Modular Components
-
Core Module:
- String Manipulation: UTF support for versatile string handling.
- Data Compression & Cryptography: Basic cryptographic functions and data compression support.
- Reflection and Serialization: Reflection support for runtime type inspection and JSON serialization.
- App-Global Settings & Threading: Manages global settings and threading with multi-thread-safe bindings.
-
Graphics Module:
- Color & Geometry Support: Native color spaces and geometry types for UI element positioning and transformations.
- SVG Rasterization & Image Processing: SVG rendering and basic image manipulation functions.
- Font Handling: Advanced text shaping using HarfBuzz and support for font caching, improving rendering speed.
-
Window Module:
- Clipboard & Native Dialogs: OS-level clipboard access and support for native file dialogs.
- Display Information: Access to monitor/display information for responsive design.
-
GUI Module:
- CSS-Like Flex Layout & Styling: Flexbox-inspired layout engine with support for stylesheets, enabling CSS-style inheritance of properties.
- Drag-and-Drop: Drag-and-drop support for interactivity.
- Binding Support: Supports data binding with transform functions for enhanced reactivity.
-
Widgets Module:
- UI Components: Initial set of widgets includes buttons, sliders, text editors, lists, toggles, combo boxes, progress bars, and more.
- Layouts: CSS flex-style layout support for responsive designs.
- Text Editor: LTR and RTL text support in text editors for multilingual editing capabilities.
Platform & Backend Support
- Platform Support:
- Windows, macOS, and Linux platforms with partial support for widgets and graphics, and alpha support for the window system.
- Graphics Backend Support:
- Windows: D3D11, D3D12, and WebGPU.
- macOS: Metal and WebGPU.
- Linux: Vulkan and OpenGL.
Development Requirements
- C++20 Compiler: Requires a C++20-compatible compiler (MSVC 2022, Clang, XCode, GCC).
- Dependency Management: Uses
vcpkg
for simplified dependency management across platforms.
Known Issues & Limitations
- Documentation: The documentation is in progress and may not reflect the latest updates; developers are encouraged to refer to the code examples provided.
- API Stability: API may experience breaking changes as we refine the design and improve functionality.
Example Projects
Refer to the examples
directory and the brisk-helloworld repository for a minimal demonstration of the Brisk library’s capabilities.
Licensing
- GPL v2.0 or Commercial License: Brisk is available under the GPL v2.0 license for open-source use. A commercial license is also available for proprietary applications.
For feedback, contributions, or commercial licensing inquiries, please contact us at [email protected].