Commit graph

45 commits

Author SHA1 Message Date
0HyperCube
64e62699fc Replace the image layer type with an Image node (#948)
* Use builder pattern for widgets

* Arguments to new function

* Add node graph when dragging in image

* Fix duplicate import

* Skip processing under node graph frame if unused

* Reduce node graph rerenders

* DUPLICATE ALL frontend changes into other frontend

* DUPLICATE more changes to another frontend

* Code review

* Allow importing SVG files as bitmaps

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-01-27 10:01:09 +00:00
Oliver Davies
0019340096 Remove additional boolean for mirroring distance (#965)
Removed the additional boolean for mirroring distance
2023-01-13 15:00:20 -08:00
Keavon Chambers
bf1a3e3daf Clean up imports and warnings in Rust code 2023-01-13 12:45:14 -08:00
0HyperCube
741e61a59d Hide handle overlays too close to the parent anchor (#951)
Hide handle overlay

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-01-09 03:32:26 +00:00
0HyperCube
2bcc3d3baf Improve history states (#932)
* Add some more history states

* Fix undo whilst drawing

* Paste image history

* Toggle output and preview history

* Code review nits

* Remove extra '{'

* Fix typo

* Fix about.toml

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2023-01-01 22:02:44 +00:00
Dennis Kobert
a9601ab164 Implement the Gaussian Blur node (#933) 2022-12-31 21:12:02 +01:00
Dennis Kobert
74bfd630a9 Quantization node (#887)
Add basic quantization node
2022-12-31 18:30:35 +01:00
0HyperCube
951c49a979 Node code cleanup for vector data, and add node creation guide (#895)
* Cleanup Vector Nodes

* Add the creating nodes guide

* Rename guide as readme so GitHub shows it by default

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-12-21 19:50:40 +00:00
TrueDoctor
7d8f94462a Bundle Graphite using Tauri (#873)
* Setup tauri component for graphite editor

Integrate graphite into tauri app

Split interpreted-executor out of graph-craft

* Add gpu execution node

* General Cleanup
2022-12-07 12:49:34 +01:00
TrueDoctor
57a1f653e1 Implement node graph gpu execution via vulkano and rust gpu (#870)
* Add Executor abstraction

* Resolve inputs for proto nodes by adding compose nodes

* Add infrastructure for compiling gpu code

* Integrate nodegraph gpu execution into graph-crafter

* Extract graphene core path from env vars

* Make Color struct usable for gpu code
2022-12-05 12:56:36 +01:00
Keavon Chambers
33d5db76c0 Improve naming of nodes and 'add' menu styling 2022-12-03 23:29:55 -08:00
0HyperCube
eb9848365f Add some additional image effect nodes (#869)
* Move the Subpath type to graphene-std

* Add the transform subpath node

* Delete selected nodes

* Inserting node list on right click

* Add several bitmap manipulator nodes

* Convert add node to use f64

* Add posterize node

* Rename names randomly

* Fix naming

* Exposure node

* Fix typo

* Adjust exposure node range

* Comment out vector nodes

* Adjust exposure range again

* Posterise as ints

* Rename input

* Use >= in the to hsl function
2022-12-03 22:29:45 +00:00
0HyperCube
2994afa6b8 Node graph improvements (#855)
* Selecting multiple nodes

* Improve logs

* Log bad types in dyn any

* Add (broken) node links

* New topological sort

* Fix reorder ids function

* Input and output node

* Add nodes that operate on images

* Fixups

* Show node parameters together with layer properties

* New nodes don't crash editor

* Fix tests

* Node positions backend

* Generate node graph on value change

* Add expose input message

* Fix tests

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-11-17 23:36:23 +00:00
0HyperCube
504136b61b Add a basic API and rudimentary frontend for node graph layers (#846)
* Node graph API stub

* Rename and fix SetInputValue

* Get list of links from network

* Test populating node graph UI

* Node properties

* Fix viewport bounds

* Slightly change promise usage

* A tiny bit of cleanup I did while reading code

* Cleanup and work towards hooking up node links in Vue template

* Add the brighten colour node

* Run cargo fmt

* Add to and from hsla

* GrayscaleImage node with small perf improvement

* Fix gutter panel resizing

* Display node links from backend

* Add support for connecting node links

* Use existing message

* Fix formatting error

* Add a (currently crashing) brighten node

* Replace brighten node with proto node implementation

* Add support for connecting node links

* Update watch dirs

* Add hue shift node

* Add create_node function to editor api

* Basic insert node UI

* Fix broken names

* Add log

* Fix positioning

* Set connector index to 0

* Add properties for Heu shift / brighten

* Allow deselecting nodes

* Redesign Properties panel collapsible sections

Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2022-11-12 21:23:28 +00:00
TrueDoctor
4ec600957c Node graph dynamic execution (#824)
Restructure document node implementation

* Implement topological sort

* Enforce the usage of type annotations

* Add complete test case
2022-10-26 00:45:42 +02:00
0hypercube
d142a9092c Add some raster protonodes 2022-10-21 17:22:06 +01:00
TrueDoctor
b2a90ddc2c Relax borrow stack lifetimes (#823)
Relax lifetimes for borrow_stack
2022-10-26 00:35:30 +02:00
TrueDoctor
11c6413251 Implement node registry (#822) 2022-10-26 00:32:50 +02:00
TrueDoctor
562217015d Rework DynAnyNode design to work with the borrow stack (#796) 2022-10-15 03:02:58 +02:00
0hypercube
cef58b16c2 Some initial testing on dynamic nodes and composition
* Test use of borrow stack
2022-09-28 18:47:34 +01:00
0HyperCube
f5e8c48dfb Use .then() instead of .after() for sequencing nodes (#760)
* Add .then() for sequencing nodes

* Remove all uses af after

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2022-08-28 20:52:46 +01:00
Keavon Chambers
3a84de32ac Clean up MenuList types and fix many Vue and Clippy warnings
Also remove hard-coded-in-Vue Graphite logo in the menu bar in favor of a Rust definition.
2022-08-25 14:41:16 -07:00
Dennis
71f12db1e6 Impl DynNode 2022-08-22 17:18:26 +02:00
Dennis
bdad7aca47 Make node trait consume self 2022-08-19 18:58:17 +02:00
Dennis
12b33da083 Implement image loding test 2022-08-13 19:15:48 +02:00
Dennis
8a0eb0e266 Add tests for op nodes 2022-08-13 18:21:46 +02:00
Dennis
b06e00ce61 Implement cons node 2022-08-13 14:54:12 +02:00
Dennis
7f415febed Add test for gray scale node
# Conflicts:
#	node-graph/gcore/src/raster.rs
2022-08-10 13:10:14 +02:00
Dennis
ef08c27e9c Reintroduce input for the node trait
# Conflicts:
#	node-graph/gcore/src/raster.rs
2022-08-10 13:05:57 +02:00
Dennis
1ed7562b90 Add raster module to graphene_core 2022-08-04 12:34:05 +02:00
Dennis
78f07439db Add license information for node_graph crates 2022-08-04 11:47:38 +02:00
Keavon Chambers
0c2dbd411b Fix formatting of previous commit 2022-08-04 00:18:42 -07:00
Dennis
d09f023618 Bump dyn-any version + format code 2022-08-04 09:08:48 +02:00
Dennis
c44e9d22e3 Integrate dyn-any into the main graphite repo 2022-08-04 08:52:24 +02:00
Dennis
e84b9bd5bd Compile node graph description to GPU code 2022-06-08 09:52:58 +02:00
Dennis
998f37d1b0 Add Unit and Id nodes to node graph 2022-06-05 22:58:12 +02:00
Dennis
a2703c0fb1 Don't force nodes to store references to other nodes 2022-06-05 15:25:07 +02:00
Dennis
fa5345d33f Remove input from the node definition 2022-06-05 01:15:22 +02:00
Dennis
f6e4dbf3e3 Add GPU support for node graph 2022-04-24 11:58:31 +02:00
Dennis
49c171b419 Implement borrow stack for node graph 2022-04-22 19:58:13 +02:00
Dennis
09deee0c4d Make graphene_core no_std 2022-04-22 15:15:39 +02:00
Dennis
90e465b35c Restructure node graph proxy architecture 2022-04-03 19:25:07 +02:00
Dennis
cb337fd338 Replace GAT with lifetime on trait in node graph 2022-04-03 10:44:02 +02:00
Dennis
3243b80cf2 Try and fail to make nodes object-safe in node graph 2022-04-02 20:50:53 +02:00
Dennis
800fb4dbc1 Restructure node graph project layout 2022-04-02 14:50:00 +02:00