fix: optimize brush stroke handling and improve cursor preview
- Changed default VISION_BACKEND from CPU to GPU for better performance. - Made `map_brush_style` public to allow external access. - Updated `Engine` struct to use pooled buffers for stroke snapshots, reducing memory allocations during brush strokes. - Introduced `CompositeSnapshot` for efficient background compositing without blocking the UI thread. - Implemented `SendPtr` for safe raw pointer handling across threads. - Enhanced `commit_pending_history` to recycle buffers and improve performance. - Fixed cursor preview issues for procedural brushes by removing unnecessary preset synchronization. - Added tests and documentation for new features and performance improvements.
This commit is contained in:
@@ -7,9 +7,9 @@ use libloading::Library;
|
||||
|
||||
/// Global vision backend preference mirrored into the dynamic `hcie-vision` plugin.
|
||||
/// 0 = CPU, 1 = GPU. Stored here so it can be set before the plugin is loaded.
|
||||
static VISION_BACKEND: AtomicU8 = AtomicU8::new(0);
|
||||
static VISION_BACKEND: AtomicU8 = AtomicU8::new(1);
|
||||
|
||||
fn map_brush_style(style: hcie_protocol::BrushStyle) -> hcie_brush_engine::BrushStyle {
|
||||
pub fn map_brush_style(style: hcie_protocol::BrushStyle) -> hcie_brush_engine::BrushStyle {
|
||||
match style {
|
||||
hcie_protocol::BrushStyle::Round => hcie_brush_engine::BrushStyle::Round,
|
||||
hcie_protocol::BrushStyle::Square => hcie_brush_engine::BrushStyle::Square,
|
||||
|
||||
Reference in New Issue
Block a user