From 6e2674edf9aa678ceb306d040aed501101e8a736 Mon Sep 17 00:00:00 2001 From: Purrie Date: Sat, 4 Mar 2023 17:56:33 +0100 Subject: [PATCH] Version 0.3 --- COPYRIGHT | 61 ++++++++++++++++++ Cargo.lock | 177 ++++++++++++++++++++++++++++------------------------ Cargo.toml | 7 ++- README.org | 62 +++++++++++++++++- ROADMAP.org | 33 +++++----- 5 files changed, 241 insertions(+), 99 deletions(-) create mode 100644 COPYRIGHT diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..269cb37 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,61 @@ + Token Maker, tabletop asset creator + Copyright (C) 2023, Purrie Brightstar + + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, you can get a copy at + . + + + Art included with the program is licensed under CC-BY-SA-v4.0 + + You are free to: + Share - copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + + Under the following terms: + Attribution — You must give appropriate credit, provide a link to the license, + and indicate if changes were made. You may do so in any reasonable manner, + but not in any way that suggests the licensor endorses you or your use. + + Share Alike — If you remix, transform, or build upon the material, + you must distribute your contributions under the same license as the original. + + Full text of the license can be found at: + + + With exception that: + When adapted as part of the output of the program, the art included with the program + is shared with you under CC-BY-v4.0 license instead, as follows: + + You are free to: + Share — copy and redistribute the material in any medium or format + Adapt — remix, transform, and build upon the material + for any purpose, even commercially. + + Under the following terms: + Attribution — You must give appropriate credit, provide a link to the license, + and indicate if changes were made. You may do so in any reasonable manner, + but not in any way that suggests the licensor endorses you or your use. + + No additional restrictions — You may not apply legal terms or technological measures that + legally restrict others from doing anything the license permits. + + Full text of the license can be found at: + + Intention of this is to allow artists to use the art provided with the program + in their creations without unnecessarily limiting their rights to their own art while also + allowing the program art to be used outside the intended scope albeit with more requirements. + + + Unless otherwise stated below, all art included with the program was created by Purrie Brightstar diff --git a/Cargo.lock b/Cargo.lock index 6c364de..20ae1dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5568a4aa5ba8adf5175c5c460b030e27d8893412976cc37bef0e4fbc16cfbba" +checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -115,9 +115,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bit_field" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" [[package]] name = "bitflags" @@ -139,9 +139,9 @@ checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "bytemuck" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" dependencies = [ "bytemuck_derive", ] @@ -370,9 +370,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -380,9 +380,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -391,22 +391,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.8.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -646,9 +646,9 @@ dependencies = [ [[package]] name = "exr" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb5f255b5980bb0c8cf676b675d1a99be40f316881444f44e0462eaf5df5ded" +checksum = "e8af5ef47e2ed89d23d0ecbc1b681b30390069de70260937877514377fc24feb" dependencies = [ "bit_field", "flume", @@ -657,6 +657,7 @@ dependencies = [ "miniz_oxide", "smallvec", "threadpool", + "zune-inflate", ] [[package]] @@ -943,13 +944,12 @@ dependencies = [ [[package]] name = "glyph_brush" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac02497410cdb5062cc056a33f2e1e19ff69fbf26a4be9a02bf29d6e17ea105b" +checksum = "4edefd123f28a0b1d41ec4a489c2b43020b369180800977801611084f342978d" dependencies = [ "glyph_brush_draw_cache", "glyph_brush_layout", - "log", "ordered-float", "rustc-hash", "twox-hash", @@ -1171,9 +1171,9 @@ dependencies = [ [[package]] name = "iced_core" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a571e43a4dea90e3a7a9f8bb40e4238d0847f9f9d862c87a6719e3e241dd6292" +checksum = "9cc28737fc055fbc0a938141debf04a397dccaf53a4c51cb5bfcf76ee03b04f1" dependencies = [ "bitflags", "instant", @@ -1366,9 +1366,9 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jni-sys" @@ -1378,9 +1378,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] @@ -1508,9 +1508,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -1526,9 +1526,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] @@ -1570,14 +1570,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -1739,15 +1739,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "nom8" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" -dependencies = [ - "memchr", -] - [[package]] name = "num-integer" version = "0.1.45" @@ -1790,18 +1781,18 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1850,9 +1841,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "openssl" @@ -2095,9 +2086,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", "toml_edit", @@ -2105,9 +2096,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" dependencies = [ "unicode-ident", ] @@ -2159,9 +2150,9 @@ dependencies = [ [[package]] name = "range-alloc" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6" +checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" [[package]] name = "raw-window-handle" @@ -2193,9 +2184,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -2203,9 +2194,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -2295,9 +2286,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.36.8" +version = "0.36.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" +checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" dependencies = [ "bitflags", "errno", @@ -2309,9 +2300,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe_arch" @@ -2448,6 +2439,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "simd-adler32" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14a5df39617d7c8558154693a1bb8157a4aab8179209540cc0b10e5dc24e0b18" + [[package]] name = "siphasher" version = "0.3.10" @@ -2456,9 +2453,9 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -2509,9 +2506,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a21dcece9b5991cfd1ece74654c8e3d0d5aab499d359b0395e38229c0bb5a3" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -2519,9 +2516,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" +checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc" dependencies = [ "lock_api", ] @@ -2562,9 +2559,9 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -2675,7 +2672,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-maker" -version = "0.2.0" +version = "0.3.0" dependencies = [ "dirs", "iced", @@ -2689,9 +2686,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.25.0" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", "bytes", @@ -2701,7 +2698,7 @@ dependencies = [ "num_cpus", "pin-project-lite", "socket2", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -2739,19 +2736,19 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" +checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" [[package]] name = "toml_edit" -version = "0.18.1" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" +checksum = "9a1eb0622d28f4b9c90adc4ea4b2b46b47663fde9ac5fafcb14a1369d5508825" dependencies = [ "indexmap", - "nom8", "toml_datetime", + "winnow", ] [[package]] @@ -2811,9 +2808,9 @@ checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "775c11906edafc97bc378816b94585fbd9a054eabaf86fdd0ced94af449efab7" [[package]] name = "unicode-normalization" @@ -3383,6 +3380,15 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "winnow" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf09497b8f8b5ac5d3bb4d05c0a99be20f26fd3d5f2db7b0716e946d5103658" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -3444,3 +3450,12 @@ name = "xml-rs" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zune-inflate" +version = "0.2.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589245df6230839c305984dcc0a8385cc72af1fd223f360ffd5d65efa4216d40" +dependencies = [ + "simd-adler32", +] diff --git a/Cargo.toml b/Cargo.toml index 73cb618..975aa98 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "token-maker" -version = "0.2.0" +version = "0.3.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -30,3 +30,8 @@ version = "0.11.14" [dependencies.serde] version = "1" features = ["derive"] + +[profile.release] +lto = true +opt-level = 3 +strip = true diff --git a/README.org b/README.org index e9e7a1a..882a61a 100644 --- a/README.org +++ b/README.org @@ -1,9 +1,65 @@ #+title: Token Maker * About -Goal of this project is to create a fully functional program for making tokens, cards, figurines and similar art for use in TTRPG context. +Goal of this project is to create a fully functional, fast and easy to use program for making tokens, cards, figurines and similar art for use in tabletop roleplaying games and similar environments. -The program is WIP and not yet ready to be used to make any assets. +The program is in alpha stage of production. It is usable as is but lacks many features and polish. + +* Manual +After opening the program, you will be asked to either have an url of an image you wish to use, or to navigate to the folder on your local drive. This will open the image in the editor. + +You can have many editors open at the same time using Add Workspace button to add new ones. The intended workflow is to use the same image to create character's token and portrait or any other combination of art at the same time using multiple editor workspaces open side by side. When you press Export button, images from all workspaces will be saved to specified path with names from their workspaces. + +** Workspaces +You can use variable name $project_name in name of the workspace and it will be replaced with project name as you can input at top of the window. Intent there is to let you choose a name for all exported images and just have decorators appended to each determining its use, "-token" for tokens for example. Variable name can be put in any part of the workspace name to create prefixes and postfixes. + +You can use your cursor to drag along the image to change its offset or use your wheelscroll to change the zoom level. Those values are also displayed in the interface to allow you more precise adjustments. Holding Shift key while performing those operations allows for more gradual adjustments. + +You can resize the preview of the image while holding Alt and using your scrollwheel. This allows you to zoom in or out on the preview without affecting the desired size of the image. + +Size controls allow you to choose the target size of the exported images. The size depends on what environment you intend to use those, most often sizes range between 200 and 500. + +** Modifiers +Currently, the only available modifier is Frame, which surrounds the image with a frame and masks anything outside the frame. + +With time there will be more modifier types available as development continues. + +** Frame Maker +The program has included frame maker editor which allows easy way to add new frames of your own design. You can load the image from your local drive to edit it. + +The program expects you to have finished frame image in png format. After the image loads into the editor, all you need is to click which area of the image should be masked for the portrait to be visible at. You do so by clicking with your cursor pointer inside your frame. You will see a preview of the masked area as a grayscale grid. Then make sure to name the frame and set its category. The category also serves as a directory in which the frame will be saved in, allowing you to nest frames by their groupings. + +You can use path separators ("\" on windows and "/" on linux) to specify subcategory and subfolder for the frame. + +After you're done, pressing export will save the frame. + +** Settings +In settings you will be able to choose between dark and light themes for the program as well as what layout for workspaces you want to use. + +If you have a large screen, parallel layout will allow you to have preview of multiple workspaces at the same time while tabbed layout allows to work in smaller windows without the UI getting too squished together. + +You can set default names for each workspace template here too. + +* Building +To build the project you need Cargo to handle rust dependencies and building with optional Just command runner. + +Some dependencies of the program require that you have cmake, openssl v1 and fontconfig development libraries installed on your system. + +You can use Just command runner to execute build and installation scripts. +#+BEGIN_SRC shell +just install +just remove +#+END_SRC +Full list of commands can be viewed with flag -l + +* Contributing +If you find any bugs or issues with the program, please notify me by writing an issue describing the problem and steps to reproduce it. + +Before making feature suggestions, please familiarize yourself with the roadmap of the project. If the feature you want isn't planned yet, you can describe the functionality you wish to be added by writing an issue. + +If you wish to contribute art or code to the project, familiarize yourself with the roadmap and write an issue describing what you wish to contribute before you start working as to avoid duplicate work and help coordinate the efforts. + +Please keep in mind that I'm only accepting contributions of art and code that you made yourself or have rights to. Any contributions must follow the same licensing scheme as described in the copyright document. * License Token Maker @@ -20,3 +76,5 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + +The art of the program is licensed under CC-BY-SA / CC-BY licenses as described in the copyright document. diff --git a/ROADMAP.org b/ROADMAP.org index 79fe413..f7de7e9 100644 --- a/ROADMAP.org +++ b/ROADMAP.org @@ -2,14 +2,14 @@ This document contains ideas and goals for the project as well as description of progress for each. Entries closer to the top can be considered of higher priority for current development. -* Art -** Themes +* TODO Art +** TODO Themes - Primitive - Fantasy - Modern - Sci-Fi -** Frame Art +** TODO Frame Art - Round frames - Square frames - Pentagonal frames @@ -25,15 +25,6 @@ For portraits ** Decorations Various minor icons that can be added onto the image -* TODO Image Source -** URL source -User should be able to use url to obtain the image - -** TODO Paste source -copy pasting image into the program - -** Drag and drop support - * Bugs - Trackpad doesn't release when the button is released off its area. - There's no way to reset trackpad zoom level @@ -88,10 +79,13 @@ This could be implemented if the ImageOperations would take both working image a This could be implemented if there was a way for modifiers to store data that would be accessible to other modifiers down the line. There could be a hook modifier which would provide data for later modifiers. Something similar as what exists in Substance Painter -* Prettification -Sometimes after making enough progress, it would be a good idea to start styling the program so it doesn't look like trash. - +* UI/UX +- Use styles to make the program look pretty - Export button should become red if any workspace points to a file that already exist +- There should be a button that allows switching base/source image for all workspaces at once +- Frames need to have improved frame choice UI and implement categories +- Make offset be displayed at 0 instead of center of the image +- Move close button to top bar and have it choose which workspace to close * Manual The program itself should have tooltips and other ways of instructing the user without needing to read through the actual manual for basic usage. The principle here is that an user should be able to install the program, turn it on and be able to produce a basic result with little to no external instruction. @@ -114,6 +108,15 @@ This should be both a menu or set of buttons that will quickly add a workspace w - Bookmarks for easier navigation - Image preview area to allow user to see the selected image file +* TODO Image Source +** DONE URL source +User should be able to use url to obtain the image + +** TODO Paste source +copy pasting image into the program + +** Drag and drop support + * IDEA Screen capture Would be cool to have built in screen capture tool.