Skip to content

Backend support for layers and vertical compositing stacks #1149

Closed
@Keavon

Description

@Keavon
Member

Layers are a special type of node that:
- [ ] Have a lock icon (this could come after the MVP though)
- [ ] Hold a linear chain of input nodes (this could come after the MVP though)

  • Accept a primary input
    Accept a vertical compositing (monadic) input
    Apply the monadic compositing operation and provide vertical compositing output
    Provide a layout for configuring certain settings on a per-layer basis for vertical compositing (e.g. blend mode and opacity)

This is largely a form of (visual) syntax sugar over the existing node graph implementation. The internal graph doesn't have a concept of horizontal or vertical, or even positioning, so this is just a regular node that we store in a special way to provide the frontend with is unique UI. It requires an updated API for describing the changes to the UI for representing layers vs. regular nodes.

Vertical compositing works like so:

  • Each data type used in the node graph can define a vertical compositing monadic operation (a trait)
  • The bottom layer in a vertical compositing stack can be either the wrap/constructor for the compositing monad, or it can use a default value and the first layer becomes the first chained application of the operation
  • The top output unwraps the monadic compositing value and sends it out as horizontal output data

We need vertical compositing operations for both raster and vector, initially.

Activity

changed the title [-]Implement layers and vertical compositing[/-] [+]Backend support for layers and vertical compositing stacks[/+] on Apr 26, 2023
moved this to Available in Task Boardon May 31, 2023
moved this from Always Up for Grabs to Short-Term in Task Boardon May 31, 2023
added this to the Sprint 26 milestone on Sep 9, 2023
moved this from Short-Term to Completed This Sprint in Task Boardon Sep 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Completed This Milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @Keavon@0HyperCube

      Issue actions

        Backend support for layers and vertical compositing stacks · Issue #1149 · GraphiteEditor/Graphite