{"id":28801408,"url":"https://github.com/antoninhorkel/paint","last_synced_at":"2025-10-05T10:32:18.133Z","repository":{"id":297402873,"uuid":"992194193","full_name":"AntoninHorkel/paint","owner":"AntoninHorkel","description":"GPU accelerated paint app in Rust","archived":false,"fork":false,"pushed_at":"2025-06-05T08:59:17.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-18T07:09:29.991Z","etag":null,"topics":["egui","gpu","gpu-acceleration","paint","paint-application","rust","rust-lang","sdf","sdfs","wgpu","wgsl","winit"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntoninHorkel.png","metadata":{"files":{"readme":"README-CZ.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-28T19:07:16.000Z","updated_at":"2025-06-05T08:59:18.000Z","dependencies_parsed_at":"2025-06-05T09:41:35.652Z","dependency_job_id":"833db211-0e19-44ee-bd1e-9a7e08dc64bb","html_url":"https://github.com/AntoninHorkel/paint","commit_stats":null,"previous_names":["antoninhorkel/paint"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AntoninHorkel/paint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoninHorkel%2Fpaint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoninHorkel%2Fpaint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoninHorkel%2Fpaint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoninHorkel%2Fpaint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntoninHorkel","download_url":"https://codeload.github.com/AntoninHorkel/paint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoninHorkel%2Fpaint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260507132,"owners_count":23019464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["egui","gpu","gpu-acceleration","paint","paint-application","rust","rust-lang","sdf","sdfs","wgpu","wgsl","winit"],"created_at":"2025-06-18T07:09:30.052Z","updated_at":"2025-10-05T10:32:18.121Z","avatar_url":"https://github.com/AntoninHorkel.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GPU akcelerovaná aplikace na malování v Rustu\n\n![Licence - MIT nebo Apache-2.0](https://img.shields.io/badge/Licence-MIT_nebo_Apache--2.0-blue)\n\n[EN](README.md)/[CZ](README-CZ.md)\n\n## Použití\n\nViz také [sekci zajímavé funkce](#zajímavé-funkce).\n\n### Kreslení tvarů\n\n1. **Výběr tvarů:** Na horní liště vyberte požadovaný tvar.\n2. **Umístění kontrolních bodů:** Klikněte na plátno pro umístění kontrolních bodů.\n3. **Aktivace režimu úprav:** Automaticky pro ne-polygony po umístění 2 bodů. U polygonů stiskněte ENTER po umístění bodů.\n4. **Úprava tvaru:** Přetáhněte kontrolní body pro úpravu tvaru.\n5. **Dokončení:** Stiskněte ENTER pro vykreslení tvaru.\n6. **Zrušení:** Během libovolného kroku stiskněte ESCAPE pro smazání aktuálního tvaru.\n\n### Další akce\n\n1. **Výběr akce:** Na horní liště vyberte mazání obsahu nebo vyplnění tvarů/oblastí.\n2. **Provedení akce:** Mažete tažením kurzoru, vyplňujete kliknutím.\n\n## Zajímavé funkce\n\n- Kreslení čar, obdélníků, kružnic nebo polygonů, mazání obsahu a vyplňování tvarů/oblastí barvou.\n- Výběr barvy z předvoleb nebo pomocí palety barvy s podporou průhlednosti.\n- Přizpůsobení tloušťky čar a obrysů pro všechny nástroje.\n- Vyhlazování okrajů (anti-aliasing) s volbou stupně.\n- Podpora přerušovaných čar s nastavitelnou délkou čárky a mezery.\n- Přiblížení/oddálení s konfigurovatelnou rychlostí (kolečkem myši nebo gesty touchpadu).\n- Posouvání po plátně pomocí myši nebo touchpadu.\n- Vypnutí náhledu vykreslování během kreslení pro lepší výkon na starším hardwaru.\n- Nastavení citlivosti zachycení bodů.\n- Přizpůsobení nastavení uživatelského rozhraní dle preferencí.\n\n## Sestavení\n\n### Pomocí Cargo\n\n```sh\ncargo b --release\n./target/release/paint\n```\n\n### Pomocí Nix\n\n```sh\nnix build\n./result/bin/paint\n```\n\n#### Dev-shell\n\n```sh\nnix develop\n```\n\n## Implementační detaily\n\n- **Programovací jazyk:** Aplikace je napsána v [Rustu](https://www.rust-lang.org/).\n- **GPU akcelerace:** Pro všechny GPU operace je využívá knihovna [WGPU](https://wgpu.rs/).\n- **Správa oken:** Pro vytváření a správu oken je používá knihovna [winit](https://github.com/rust-windowing/winit).\n- **Uživatelské rozhraní:** Implementováno pomocí knihovny [egui](https://github.com/emilk/egui).\n- **Způsob vykreslování:** Tvary se vykreslují na texturu pomocí [signed distance funkcí (SDFs)](https://iquilezles.org/articles/distfunctions2d/) v compute shaderu.\n- **Shader jazyk:** Všechny shadery (včetně výpočetního shaderu) jsou napsány ve [WGSL](https://www.w3.org/TR/WGSL/).\n\n## Licence\n\n- Tento projekt je distribuován pod podmínkami buď [MIT License](LICENSE-MIT) nebo [Apache License Version 2.0](LICENSE-APACHE) dle vašeho výběru.\n- Projekt obsahuje [ikony](src/icons) z [Krita projektu](https://github.com/KDE/krita) licencované pod [Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoninhorkel%2Fpaint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoninhorkel%2Fpaint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoninhorkel%2Fpaint/lists"}