Commit Graph
100 Commits
Author SHA1 Message Date
Timon 4c911f6aa0 Desktop: Stop compiling the editor into the wasm wrapper (#4348)
* Make wasm wrapper not depend on editor on native

* Introduce pkg-native

* Fix tests

* Fix fmt

* Correct span and make cargo fmt work inside editor_commands block

* Review

* Fix lint
2026-09-15 14:35:57 +02:00
Timon eb50be844b Remove now obsolete disable-registration special case from node macro (#4375) 2026-07-25 13:54:46 +00:00
Timon f5b1fee85f Fix node insertion crash caused by mismatched DefinitionIdentifier serialization (#4353) 2026-07-22 09:38:07 +00:00
Timon 6f8c4b2adb Desktop: Stop compiling the editor into the wasm wrapper (#4348)
* Make wasm wrapper not depend on editor on native

* Introduce pkg-native

* Fix tests

* Fix fmt

* Correct span and make cargo fmt work inside editor_commands block

* Review

* Fix lint
2026-07-18 10:33:38 +00:00
Timon a040362d4a Change footprint to always be in physical instead of logical space (#4280)
* Fix footprint scale

* Footprint in physical pixels

* Move scale conversion to `create_context`

* Remove scale from render cache

* Review
2026-07-15 13:37:46 +00:00
Timon dc813e35fc More consistent document crate names (#4323)
* More consistent document crate names

* Fix fmt

* Fix ASCII art diagrams

* rename document-graph to document-graph-storage
2026-07-15 12:25:12 +00:00
Timon f0bb2edb3d Desktop: Handle keyboard shortcuts that are skipped by CEF on Mac (#4322)
* Fix text selection on Mac

* Review
2026-07-15 10:57:48 +00:00
Timon 7e29fe9a31 Fix lifetime of cached textures (#4333)
* Fix in-use textures being destroyed

* Remove ImageTexture refs

* Review
2026-07-14 14:51:33 -07:00
Timon ba0a97aefe Desktop: Isolate CEF-rendered UI into separate crate and process (#4321)
* Extract CEF rendered UI into a separate process and crate

* Review

* Review

* Review

* Review

* Remove necessary workarounds

* Block on frame copy ack

* Crop and resample frames correctly

* Skip blank frames

* Fix deps

* Fix fmt

* Fix clippy warning

* Review

* Fix todo
2026-07-14 14:51:20 -07:00
Timon 97f8113fe4 Desktop: Fix crash caused by submitting work mid surface-reconfigure (#4317)
Implement wgpu-sync
2026-07-09 12:09:01 +00:00
Timon 294952e152 Desktop: Use dirty rects for UI texture uploads (#4305) 2026-07-04 16:25:16 +00:00
TimonandKeavon Chambers 8a38af5be7 Rework clipboard handling to carry embedded resources across documents (#4296)
* Move clipboard code to its dedicated handler

* Adapt clipboard format to work with resources

* Restore visibility, lock, and collapse state when pasting layers

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-07-01 09:31:55 +00:00
TimonandKeavon Chambers 0882637801 Auto-recover from corrupt Wasm builds that emit undefined env imports (#4287)
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-06-30 22:07:17 +00:00
Timon 9626c047a4 Fix CI builds by pinning cargo-about for Windows and Mac 2026-06-30 21:40:18 +00:00
Timon 6ee0239b96 Desktop: Update CEF to 149 (#4286) 2026-06-29 15:25:30 +00:00
Timon 21bf290013 Hide node parameters connected to a NodeInput::Scope in the Properties panel (#4284)
Hide inputs connected to a scope in properties panel
2026-06-26 09:48:14 +00:00
TimonandJames Lindsay 684496109a Fix a previewed node's dashed output wire appearing at the wrong position (#4282)
* Fix node graph connection to export in wrong place

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>

* Review

---------

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
2026-06-26 09:43:00 +00:00
Timon f3faefd460 Snap overlays to device instead of UI pixels on web (#4281)
Snap overlays to physical instead of logical pixels on web
2026-06-25 09:04:36 +00:00
Timon 6fb6e83d68 Desktop: Prefer Vulkan as the WGPU backend on Linux (#4270)
* Manual wgpu adapter selection

* Fall back to remaining adapters when the preferred one fails to initialize
2026-06-25 00:09:39 +00:00
TimonandKeavon Chambers f798b48b83 Move branding and package install into cargo-run (#4266)
* Move branding asset fetch into cargo-run

* Move frontend npm install into cargo-run

* Rename branding::ensure to branding::setup

* Wording nits

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-06-22 20:21:46 +00:00
Timon d753ce26f7 Make the cargo-run tool auto-install its wasm-opt build dependency (#4256)
* Allow auto downloading wasm-opt

* Fix for mac

* Review
2026-06-21 20:17:54 +00:00
TimonandKeavon Chambers a72ac39059 Replace the dev server's wasm-pack, cargo-watch, and concurrently tools with custom cargo-run tooling (#4254)
Replace wasm-pack, cargo-watch and concurrently with custom build tooling

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-06-21 12:48:31 -07:00
Timon 674b3a213f Extract pipelines from WgpuExecutor into scope-provided pipeline nodes (#4210)
* Implement generic pipeline caching

* Fix WIP

* Fix

* Fix

* Fix

* Fix bench

* Migrations

* Review
2026-06-19 21:20:25 +00:00
Timon 236ab7a11c Move TaggedValue::ResourceHash to macro definition site (#4232) 2026-06-19 01:36:45 +00:00
Timon 077d11bdba Resolve scopes before flattening network (#4235)
* Compiler changes

* Run preprocessor on wrapping network

* Remove test nodes

* FIx

* move generate_node_paths call to compiler

* Make it more obvious what input is set to
2026-06-15 11:19:21 -07:00
TimonandDennis Kobert e524dff1a7 Add node macro support for injecting nodes into global scope (#4221)
* Macro support

* Preprocessor support

* Allow Cow str as scope name

* Use Passthrough node to work around compiler auto wrapping the producer node and invalidating the node id

* Stable NodeIds

* Less hacky but with bad performace

* Remove Cow from RegistryValueSource::Scope

* Connect scope injections to the inner network export

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2026-06-11 18:14:58 +00:00
Timon 05d3d66587 Desktop: Block network requests in CEF that are not explicitly allowlisted (#4225) 2026-06-11 15:32:53 +00:00
Timon 9d2071ce6a Desktop: Disable UI acceleration by default on Linux (#4201) 2026-06-05 22:16:37 +00:00
Timon 08c6d02e5b Introduce network request handler (#4194)
* Impl NetworkMessageHandler

* Repalce Frontend fetch like messages with NetworkMessage

* Reimpl resource loading with NetworkMessage

* Fix wasm

* dedublicate resource requests

* Embedd font resources created by migration

* Fixup

* Fix tests

* Fix font catalog not loading

* Cleanup

* Fix layouts not updating when font catalog is loaded

* Review

* Review

* Cleanup
2026-06-05 13:27:45 -04:00
Timon cd8ea1f554 Migrate fonts to be stored as resources (#4165)
* Good start

* Impl

* allow responses.add(async { Message::NoOp });

* Fix

* Cache font blob in text node

* Refactor font handling to use Font struct direcly

* Fix fmt

* Embedd Font Resources by default

* Review

* Review

* Cache font info based on ResourceHash
2026-06-05 13:27:25 -04:00
Timon e32ff4b7f0 Make Resource aware of its own hash (#4187)
* Fix future message handler field name

* Add Resource::hash()

* Move all remaining resource types from core-types to graphene-resources

* Review
2026-05-31 23:08:01 +00:00
Timon 51427bef5f Fix CI profiling compile failure (#4184) 2026-05-31 20:32:34 +00:00
Timon a40e0d2887 Use ResourceId for referring to Resources (#4176)
* Use ResourceId for referring to Resources

* Use Doc

* use error for preprocessor ResourceId replacement failure

* Keep hashes in DocumentInfo

* Migrate with less mem copy

* Global ResourceMessage -> ResourceStorageMessage

* Add document ResourceMessage

* Move embedding logic

* Fix

* Cleanup

* Review

* Fix
2026-05-29 10:56:32 +00:00
TimonandDennis Kobert bbbe04903f Define data types for ID-based resource handling (#4168)
* Add resource lib

* rename ResourceSource to ResourceInput

* Rename ResourceInput -> DataSource and improve API

* Review

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2026-05-25 10:50:57 +00:00
Timon c3b0c87cfe Antialias checkered artboard background edges (#4163)
* Antialias checkered artboard background edges

* Review
2026-05-22 16:48:05 +00:00
Timon 2770df7567 Implement content-addressed resource storage for raster images (#4148)
* Implement content-addressed resource storage

* Implement OPFS resource storage

* Remove ResourceStorage::read

* Review
2026-05-21 19:31:07 +00:00
Timon d5f0140f26 Upgrade WGPU and Linebender dependencies (#4154) 2026-05-17 15:36:59 +00:00
Timon 98daa75c26 Desktop: Add support for opening files through the already-running instance via a local socket (#4123)
* Desktop: Forward file-open args from a second launch to the running instance

Also adds socket infrastructure that can be used in the future to allow dispatching actions from another process

* Use socket instead of ipc terminologie

* Fix

* Fix

* Better pipe name on windows
2026-05-09 18:11:44 +00:00
Timon d97fe835b5 Desktop: Focus app window when loading a document (#4124) 2026-05-08 15:00:20 +00:00
Timon 1c2ac19b16 Desktop: Register the Graphite app as a file handler on Mac (#4106)
* Desktop: Implement native file open handler

* Desktop: Register file types on Mac

* Review
2026-05-06 13:05:30 +00:00
Timon 8ae8c47fe1 Fix the Fix > Close All action not resulting in the welcome screen being shown (#4107)
Fix missing welcome panel after closing all documents

Closing all documents left the Welcome panel as the only tab, but the old active document index could still point to a tab that no longer existed. The fix is to reset it to 0 when the document list becomes empty.
2026-05-06 12:03:14 +00:00
Timon 29f6e686ee Reimplement checkered background rendering (#4034)
* Reimplement background checkerboard rendering
2026-05-01 17:02:10 +00:00
Timon 324b9e664c Desktop: Update CEF (#4048)
* Update CEF to version 147

* Fix fmt

* Move CEF package

* Fix nix package

* Improve

* Cleanup

* Fix
2026-04-28 02:25:39 +02:00
Timon 6c5e3c97f8 Refactor persistence to combine document handling and workspace layout (#4031)
* Unify editor state persistence

* Review

* Fix

* Remove redundant DocumentDetails

* LoadDocumentContent indirection
2026-04-19 09:31:21 +00:00
Timon 2a2a60883d Desktop: Use the OS temp directory for CEF caches (#4030)
* Desktop: Use the OS temp dir

* Review
2026-04-15 10:47:45 +00:00
Timon 661e8bc569 Remove surface and window from ApplicationIo (#3941)
* Remove surface and window from ApplicationIo

* Seperate Wasm and Native ApplicationIo

* Fix warnings

* Fix tests

* Remove redundant PlatformApplicationIo::new_offscreen

* Fixup

* Remove unused From implementaitions for ApplicationIo
2026-04-09 20:12:53 +00:00
Timon 0eb440db14 Desktop: Improve Nix build times with more caching (#4007) 2026-04-08 01:46:38 +02:00
Timon 211111a01f Desktop: Fix document tab reorder not being persisted (#4002)
* Desktop: Fix reorder not beeing persisted

* Desktop: Use rfd fork to support starting_directory with zenity dialog backend
2026-04-08 01:13:30 +02:00
Timon bf269d7693 Introduce development Nix binary cache (#3911)
* Desktop: Introduce development Nix binary cache

* Configure caches in CI

* Cache nix shell

* Fix
2026-04-04 11:12:57 +00:00
Timon 9727e14fe9 Add the re-labeled node display name to its Properties panel section header (#3930)
* Show nodes display name in properties panel if set

* Review
2026-03-22 20:20:32 -07:00
Timon 9a23b9908e Add missing 'Copy to Points' migration (#3922)
Add Copy to Points migration
2026-03-23 01:48:39 +00:00
Timon 4a37ce4576 Desktop: Open file dialogs in the folder containing the document (#3934)
Desktop: Open save file dialogs in document parent folder
2026-03-23 01:36:25 +00:00
Timon 5b1e1cb2fb Fix artboards not exporting with transparency using Vello (#3921)
* Fix hide artboard for raster render mode

* Desktop: Fix transparent viewport blending

* Fix vello render using wrong color space conversion for background

* Review
2026-03-23 01:20:54 +00:00
TimonandJames Lindsay 0c7b5cd534 Desktop: Fix broken resizing affecting some Linux systems (#3917)
Desktop: Fix resizeing being broken on some Linux systems

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
2026-03-20 01:28:22 +00:00
TimonandKeavon Chambers 2e842cb425 Desktop: fix Mac restart dialog to show all changes to preferences requiring restart (#3903)
* Desktop: Fix restart dialog on Mac

* Fix

* Fix

* Fix

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-19 02:51:26 +00:00
Timon 4c45c88034 Desktop: Remove CEF CREDITS.html from Windows bundle (#3889) 2026-03-14 16:44:38 +00:00
TimonandKeavon Chambers a18b7ff79d Desktop: Add an 'Enable V-Sync' preference on Mac (#3887)
* add vsync pref

* account for physical scale in pixel preview passthru check

* change allow to expect attr

* Update user-facing v-sync text

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-11 21:32:37 +00:00
TimonandKeavon Chambers 095c2a6d47 Add the Pixel Preview render mode (#3881)
* Add pixel preview render mode

* Fix fmt

* Remove unused sampler

* Remove unnecessary mutex

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-11 02:44:00 +00:00
Timon 35b812ccfe Desktop: Fix SVG Preview render mode (#3877)
Desktop: Fix svg preview mode
2026-03-10 12:16:34 +00:00
Timon 4300a885dc Fix raster export scale factor (#3870)
* fix export scale factor

* export scale increment step 0.5

* fix svg to raster export on web
2026-03-10 01:23:42 +00:00
Timon 5d22292072 Replace npm build script with new cargo run tool (#3832)
* move nix flake to root

* cargo run tool

* use thiserror in third-party-licenses tool

* prefere panic over exit

* Add automatic dependency check to cargo run tool

* Skip dependecies that are not needed for the current task

* Fixup

* Fixup

* fix windows

* Fixup

* improve usage text

* Fix linux bundle

* add graphen-cli

* fix build profile

* fix

* release profile should not include debug infos

* Review

* remove profiling profile

was redundent with release

* rename to cargo-run tool

* improve consistency

* rename deps to requirements

* fix

* return success when showing usage
2026-03-07 13:26:19 +00:00
Timon da7437c023 Reimplement notice file generation for third-party licenses through Rust, now with CEF credits (#3808) 2026-02-26 11:12:28 +00:00
Timon a2d3b3f410 Desktop: Make shutdown more robust and fix panic caused by invalid viewport scale (#3783)
* Fix panic caused by invalid viewport scale

* Make shutdown more robust
2026-02-22 17:28:35 +00:00
TimonandKeavon Chambers 3f999bf231 Desktop: Add "Disable UI Acceleration" to preferences (#3774)
* Deskltop: Add Disable UI Accelaration preference

* Fixup

* Fix typo

* Code review and update strings

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-19 01:54:01 +00:00
Timon 3571c0d577 Fix Vello canvas on web not being transparent by using premultiplied alpha mode (#3770)
Fix canvas not being transparent by using Premultiplied alpha mode
2026-02-17 20:48:16 +00:00
Timon 8b67840f0c Desktop: Fix Eyedropper tool (#3764) 2026-02-14 16:44:52 +00:00
Timon d2eaa03498 Desktop: Disable more CEF optional features (#3747) 2026-02-11 23:36:34 +00:00
Timon 4cdfbb22e8 Desktop: Fix new document offset on first startup (#3738)
Desktop: Fix new document offset
2026-02-11 13:08:17 -08:00
Timon 9633de5929 Desktop: Push builds to Nix binary cache in CI (#3740)
Desktop: Add Nix Cache
2026-02-09 19:17:14 +00:00
Timon 0f10c242e2 Desktop: Enable manual trigger for Mac and Windows builds (#3736) 2026-02-08 23:39:23 +00:00
Timon 2f5ccad5ea Desktop: Reduce Nix package closure size (#3737) 2026-02-08 21:31:38 +00:00
Timon acab171bc5 Desktop: Build and Sign Mac and Windows Bundles in CI (#3728)
* Desktop: Build and Sign Mac and Windows Bundles in CI

* Desktop: Remove unnecessary CEF files from Windows Bundle

* Desktop: Use a temp file for license generation on Windows to avoid PowerShell modifying stdout
2026-02-06 13:37:07 +00:00
Timon 9c56c852ca Desktop: Snap overlays to physical instead of logical pixels (#3493)
WIP
2026-02-04 07:24:16 +00:00
Timon c7e3d01e2b Improve font loading (#3705)
Fix fonts not loading
2026-02-04 07:23:50 +00:00
Timon d04def886d Ensure non-negative lengths for stroke dash pattern (#3710)
Caused Vello rendering to fail
2026-02-03 17:19:31 +00:00
Timon 910fb54c15 Add quantize time nodes (#3703)
add quantize time nodes
2026-02-02 12:55:53 +00:00
Timon 5ace2c9660 Desktop: Use tokio async runtime (#3704)
Use tokio because hyper needs it
2026-02-02 12:49:15 +01:00
5fd1a24f16 Desktop: Add Eyedropper tool support with native Vello (#3684)
* mostly done

* fix

* kinda works but tilt and flip broken

* fix footprint

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>

* Code review

* fix cursor hiding

* Remove console.log

---------

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-27 01:24:09 +00:00
Timon 5e61d59e50 Desktop: Restart without UI acceleration when it fails on Linux (#3668)
* Desktop: Restart without UI Acceleration when it fails on Linux

* fix spelling
2026-01-26 14:33:09 +00:00
Timon b4e9d7b9eb Desktop: Fix bitmap file export not preserving alpha (#3673)
Fix Export not preserving alpha
2026-01-26 13:51:48 +00:00
Timon 7a5790744f Add focus document toggle (#3672) 2026-01-23 15:28:02 +00:00
TimonandKeavon Chambers 2be7790d4d Improve UX of importing vs. opening files (#3661)
* wip

* fix drag and drop

* fix

* fix tests

* fix tests

* fix warning

* Partial code review

* add dialog

* fix web

* fix web

* push back release candidate expiry

* Code review

* Reduce code duplication for pasting files in frontend

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-22 01:37:49 -08:00
TimonandKeavon Chambers 95d3556204 Replace globals with editor environment (#3656)
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-19 17:06:02 +00:00
Timon 07fbcd489c Desktop: Add fullscreen window mode (#3625) 2026-01-19 16:32:03 +00:00
TimonandKeavon Chambers 00718c5b61 Remove the need for Nix npm dependency hash (#3652)
* Remove the need for nix npmDeps hash

* Use 2.x

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-17 22:22:59 +00:00
Timon 73682b482b Desktop: Implement pointer lock for NumberInput (#3638)
* Desktop: Implement pointer lock for NumberInput

* add shift and ctrl modifiers

* fixup
2026-01-15 11:27:31 +00:00
Timon 6616d1bfb1 Desktop: Add commit info to binaries build with Nix (#3635) 2026-01-15 10:34:01 +00:00
Timon 654a05bb41 Desktop: Build Flatpak in CI (#3633) 2026-01-13 23:46:36 +00:00
Timon a42cad8bfb Desktop: Pin the muda crate to commit that includes a necessary dependency update 2026-01-06 04:25:29 +01:00
Timon Schelling 2a59bd50bd Desktop: Capitalize the app directory name on Mac and Windows 2026-01-06 00:46:35 +00:00
Timon cf85ec736f Desktop: Bundle for Linux with Nix (#3569)
bundle for linux with nix
2026-01-06 00:32:55 +00:00
Timon c2a29470c3 Desktop: Fix serde-based document migrations not being applied in non-Wasm environments (#3580)
Desktop: Fix serde based migrations not beeing applied
2026-01-05 23:45:31 +00:00
Timon bd1f7eefdb Desktop: Fix resize helper window Z-order and attach to parent console on Windows (#3572)
* Desktop: Fix helper window zorder on Windows

* Attach to parent console if launched from a terminal

* Workaround for a Windows-specific exception that occurs when `app` is dropped
2026-01-05 23:02:41 +00:00
Timon 8f25eb6ca4 Desktop: Fix crash during shutdown caused by clipboard being dropped after the window (#3578)
Desktop: Fix crash during shutdown that was caused by clipboard
2026-01-05 15:38:52 +00:00
Timon ee2e61f38f Provide shaders via artifact repo (#3250)
* raster_nodes_shaders_entrypoint.wgsl upload
2026-01-02 17:17:56 +00:00
TimonandKeavon Chambers 11e2882cb2 Desktop: Fix Windows build (#3522)
* fix win build

* fix mac

* Change window button colors to match Windows colors

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-22 14:48:13 -08:00
Timon f705d0080d Desktop: Switch to immediate frame present mode on Mac (#3495)
* mac immediate render mode

* fix key modifier flags on mac
2025-12-21 20:14:47 -08:00
Timon 6f087eb981 Desktop: Fix minimize/restore animations on Windows (#3492)
fix minimize animation on win
2025-12-18 15:53:36 +00:00
Timon 14b8cdf4cb Desktop: Fix missing taskbar icon on Windows (#3490)
* fix missing taskbar icon

* focus window after init
2025-12-18 12:51:01 +00:00
Timon b97978e91d Fix regression where Ctrl+X is copying not cutting (#3486)
fix nodegraph cut regression
2025-12-18 00:40:54 -08:00