diff options
Diffstat (limited to 'tools/compile_assets/aseprite/README.md')
| -rw-r--r-- | tools/compile_assets/aseprite/README.md | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tools/compile_assets/aseprite/README.md b/tools/compile_assets/aseprite/README.md new file mode 100644 index 0000000..a43b1f1 --- /dev/null +++ b/tools/compile_assets/aseprite/README.md @@ -0,0 +1,106 @@ +# Odin Aseprite +Handler for Aseprite's `.ase`/`.aseprite`, `.aseprite-extension` & extended `.gpl` files writen in Odin. + +* `.\`: Main un/marshaler for `.ase` +* `.\utils`: Creates Images, Animations & Sprite Sheets from Documents +* `.\raw`: un/marshals `.ase` exactly as given by the spec +* `.\gpl`: extended & normal .gpl +* `.\extensions`: .aseprite-extension. WIP +* `.\tests`: test files + +## Examples +### aseprite +```odin +package main + +import "core:fmt" +import ase "odin-aseprite" + +main :: proc() { + data := #load("geralt.aseprite") + + doc: ase.Document + defer ase.destroy_doc(&doc) + + umerr := ase.unmarshal(data[:], &doc) + if umerr != nil { + fmt.println(umerr) + return + } + + buf: [dynamic]byte + defer delete(buf) + + written, merr := ase.marshal(&buf, &doc) + if merr != nil { + fmt.println(merr) + return + } +} +``` + +### utils +```odin +package main + +import "core:fmt" +import ase "odin-aseprite" +import "odin-aseprite/utils" + +main :: proc() { + data := #load("geralt.aseprite") + + doc: ase.Document + defer ase.destroy_doc(&doc) + + umerr := ase.unmarshal(data[:], &doc) + if umerr != nil { + fmt.println(umerr) + return + } + + imgs, imgs_err := utils.get_all_images(&doc) + defer utils.destroy(imgs) + + if imgs_err != nil { + fmt.println(imgs_err) + return + } +} +``` + +### gpl +```odin +package main + +import "core:fmt" +import "odin-aseprite/gpl" + +main :: proc() { + data := #load("geralt.gpl") + + palette, err := gpl.parse(data[:]) + if err != nil { + fmt.println(err) + return + } + defer destroy_gpl(&palette) + + buf, err2 := gpl.to_bytes(palette) + if err2 != nil { + fmt.println(err2) + return + } + defer delete(buf) +} +``` + + +## Warnings +ICC Colour Profiles aren't supported. The raw data will be saved to doc. + +## Errors +Any errors please make an issue or DM them to me, `blob1807`, on the [Odin Discord](https://discord.com/invite/sVBPHEv). +If you DM me please include the offending file/s. + +If you want to test your own files for errors. Add them to a new folder in `./tests` and run `odin test .` in the `./tests` directory. |
