-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
mikee47
committed
Feb 2, 2024
1 parent
249712b
commit 0b392ea
Showing
1 changed file
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
Graphical Editor | ||
================ | ||
|
||
This is a simple GUI layout tool to assist with placement and setting attributes, etc. for objects. | ||
|
||
Initial design goals: | ||
|
||
- Platform portability | ||
- Uses python 'pygame' library which is essentially SDL2 with good graphic primitive support | ||
- Simplicity | ||
- quick and easy to use | ||
- requires minimal display parameters (size, pixel format) | ||
- Accurate | ||
- Pixel layout corresponds to actual hardware, not just some idealised representation | ||
- Fast and responsive | ||
- use hardware acceleration for drawing (SDL2) | ||
- no compilation required | ||
- Easy to modify/extend, e.g. | ||
- adding additional export formats | ||
|
||
TODO: | ||
- Need format for project file (JSON probably). Should this be the .rc file? | ||
- code generation | ||
- | ||
|
||
Preferably generate data blocks which can be imported into applications. | ||
Some will be static, e.g. screen backgrounds, | ||
May require code generation but if so keep to an absolute minimum. | ||
Data blocks can incorporate logic (Graphics::Drawing). | ||
|
||
Features to add: | ||
|
||
- Font/text support | ||
- Grid layout | ||
- simplify placement | ||
- alignment tools | ||
- multiple selection | ||
- select multiple elements | ||
- cut & paste | ||
- undo / redo | ||
- Bitmap support | ||
- import, place, size, adjust bitmaps | ||
- specify format | ||
- Grouping / overlays / scenes | ||
- e.g. common page background ('master page') | ||
- concept of 'scene library' perhaps | ||
- Resource script integration | ||
- export/import to/from .rc files | ||
- select fonts | ||
- Live display | ||
- update live display (or virtual display) in real time, probably via serial interface | ||
- perhaps a simple wrapper protocol so user can provide pipe, file, whatever for this | ||
|