mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-16 23:08:05 +08:00
Add frontend file structure docs and some related cleanup
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# Graphite project documentation
|
||||
|
||||
WARNING: A lot of the information in these documents are out of date.
|
||||
|
||||
## [Graphite editor manual](editor/README.md)
|
||||
|
||||
Click above for the Graphite editor manual. This will evolve into the official manual for the Graphite editor. It contains documentation for each feature of Graphite focused on both usage instructions and technical details.
|
||||
|
||||
@@ -1,27 +1,3 @@
|
||||
# Graphite codebase docs
|
||||
|
||||
This is a great place to start learning about the Graphite codebase and its architecture and code structure.
|
||||
|
||||
## Core libraries
|
||||
|
||||
Graphite's core rust codebase is split into two reusable libraries:
|
||||
|
||||
- Editor
|
||||
- Graphene
|
||||
|
||||
The Editor depends on Graphene, but Graphene can also be used alone. These are used internally but also intended for usage by third parties through Rust or linked by a project in C, C++, or another language.
|
||||
|
||||
## Code structure
|
||||
|
||||
The main modules of the project architecture are outlined below. Some parts describe future features and the directories don't exist yet. **Bold** modules are required for Graphite 0.1 which is purely an SVG editor.
|
||||
|
||||
- **Graphite Editor (Frontend)**: `/frontend/`
|
||||
Prototype web-based GUI for Graphite that will eventually be replaced by a native GUI frontend implementation
|
||||
- **Vue web app**: `src/`
|
||||
Imports the WASM code and uses Vue props to customize and reuse most GUI components
|
||||
- **Rust WebAssembly translation layer**: `wasm/`
|
||||
Wraps the editor client backend and provides an API for the web app to use unburdened by Rust's complex data types that are not supported by JS
|
||||
- **Graphite Editor (Backend)**: `/editor/`
|
||||
Used by a frontend editor client to maintain GUI state and dispatch user events. The official Graphite editor is the primary user, but others software like game engines could embed their own customized editor implementations. Depends on Graphene.
|
||||
- **Graphene (Document Graph Engine)**: `/graphene/`
|
||||
A stateless library for updating Graphite design document (GDD) files. The official Graphite CLI and editor client backend are the primary users, but this library is intended to be useful to any application that wants to link the library for the purpose of updating GDD files by sending edit operations. This also serves as the 2D render engine and this is intended to be useful to any application that wants to link the Graphene library for the purpose of rendering Graphite graphs. For example, games can link the library and render procedural textures with customizable parametric input values.
|
||||
Until this is written, please check the [contributing guide](https://graphite.rs/contribute) and the README.md files in individual directories of the project structure.
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
## User stories
|
||||
|
||||
Contributions welcome! If you think of something Graphite would be great for, submit a pull request or send Keavon a message on Graphite's Discord server.
|
||||
Contributions welcome! If you think of something Graphite would be great for, submit a pull request or send Keavon a message on Graphite's Discord server to add it here.
|
||||
|
||||
## Photography
|
||||
- Using a face detection node to sort photos into the correct folders upon export
|
||||
@@ -91,5 +91,5 @@ Contributions welcome! If you think of something Graphite would be great for, su
|
||||
- Running on a server to let users upload images for a custom T-shirt printing website, and it renders their graphic on the model’s shirt (or other custom printing online stores)
|
||||
- Generating a PDF invoice based on data in a pipeline in a server
|
||||
|
||||
## Industrial control
|
||||
## Computer vision and industrial control
|
||||
- Factory line is examining its fruit for defects. In order to verify the quality, they need to enhance the contrast, automatically orient the image and correct the lighting. They then pass the results into a machine learning algorithm to classify, and sometimes need to snoop on the stream of data to manually do quality control (ImageMagick or custom Python libraries are often used for this right now)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Inputs and keybindings
|
||||
|
||||
WARNING: This document is out of date and some of the information contained herein does not accurately explain the current status or plans.
|
||||
|
||||
## Input categories
|
||||
|
||||
- Keyboard
|
||||
|
||||
Reference in New Issue
Block a user