{"id":19163192,"url":"https://github.com/libresprite/dotto","last_synced_at":"2025-04-12T18:49:41.265Z","repository":{"id":39816851,"uuid":"442568755","full_name":"LibreSprite/Dotto","owner":"LibreSprite","description":"A portable and modern pixelart editor, written from scratch.","archived":false,"fork":false,"pushed_at":"2024-08-27T22:34:47.000Z","size":80159,"stargazers_count":712,"open_issues_count":10,"forks_count":18,"subscribers_count":30,"default_branch":"development","last_synced_at":"2025-04-03T21:13:30.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LibreSprite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-28T19:51:27.000Z","updated_at":"2025-03-27T08:24:17.000Z","dependencies_parsed_at":"2024-11-23T12:15:48.984Z","dependency_job_id":null,"html_url":"https://github.com/LibreSprite/Dotto","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSprite%2FDotto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSprite%2FDotto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSprite%2FDotto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSprite%2FDotto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LibreSprite","download_url":"https://codeload.github.com/LibreSprite/Dotto/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618218,"owners_count":21134199,"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":[],"created_at":"2024-11-09T09:14:26.450Z","updated_at":"2025-04-12T18:49:41.242Z","avatar_url":"https://github.com/LibreSprite.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibreSprite Dotto! \n\n[![Linux x64](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-linux-x86_64.yml/badge.svg?branch=development)](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-linux-x86_64.yml) [![Windows x86](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-windows-i686.yml/badge.svg)](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-windows-i686.yml) [![MacOS x86_64](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-macos-x86_64.yml/badge.svg)](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-macos-x86_64.yml) [![Emscripten](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-emscripten.yml/badge.svg)](https://github.com/LibreSprite/Dotto/actions/workflows/c-cpp-emscripten.yml) [![Nintendo 3DS](https://github.com/LibreSprite/Dotto/actions/workflows/nintendo-3ds.yml/badge.svg)](https://github.com/LibreSprite/Dotto/actions/workflows/nintendo-3ds.yml)\n\n## Funding / Contributing\n\nFor the time being, this project is fuelled purely by the power of the **stars**.\nAs in, github stars.\nWe use them to light and heat the crates we keep our codegnomes in. As of this\nwriting, the repo has 21 stars to its 390 commits, so we still have plenty of\ngnomes coding in cold, dark crates, which is a problem in the winter.\nSince they don't want to freeze their little gnomefingers off, the exchange\nrate is currently set to *5 commits per star*.\n\nSo, if you want to contribute to the project but don't know how to code, feel\nfree to give the repo a star. *Think of the codegnomes.*\n\n## Stability Notice\n\nThis project is still in early stages of development and problems are to be expected.\nInstead of filing an issue here, it is faster and more productive to reach out\nover Discord/Matrix.\n\n## Version Roadmap\n\n| Number | Notes                                                |\n| ---    | ---                                                  |\n| 0.5    | Preview release with basic image editing support     |\n| 1.0    | First stable release focused on static image editing |\n| 2.0    | Polish based on feedback from previous releases      |\n| 3.0    | Animation Support                                    |\n| 4.0    | Additional platforms support (iOS?)                  |\n\n## Feature Roadmap\n\n| Feature                        | Status      | Version | Notes                           |\n| ---------------                | --------    | ---     | -----                           |\n| Themes support                 | OK          | 0.5     |                                 |\n| Scripting support              | OK          | 0.5     |                                 |\n| Internationalization           | OK          | 0.5     |                                 |\n| OpenGL Hardware acceleration   | OK          | 1.0     |                                 |\n| x86/64 Linux                   | OK          | 0.5     |                                 |\n| x86/64 Windows                 | OK          | 0.5     |                                 |\n| x86_64 MacOS                   | OK          | 0.5     |                                 |\n| Android                        | OK          | 2.0     | Will require specific theme     |\n| Nintendo 3DS                   | OK          | 1.0     | Will require specific theme     |\n| Raspberry Pi 4 support         | OK          | 1.0     |                                 |\n| Undo / Redo                    | OK          | 0.5     |                                 |\n| Copy + Paste                   | Planned     | 0.5     |                                 |\n| Crop Sprite                    | OK          | 0.5     |                                 |\n| Pencil tool                    | OK          | 0.5     |                                 |\n| Pencil shapes/sizes            | OK          | 0.5     |                                 |\n| Pencil blending modes          | OK          | 1.0     |                                 |\n| Line smoothing                 | Basic       | 1.0     |                                 |\n| Eraser tool                    | OK          | 0.5     |                                 |\n| Text tool                      | Planned     | 1.0     |                                 |\n| Selection                      | Basic       | 0.5     |                                 |\n| Rectangular Selection tool     | OK          | 0.5     |                                 |\n| Wand Selection tool            | Planned     | 0.5     |                                 |\n| Fill Bucket                    | OK          | 0.5     |                                 |\n| Fill Bucket blending           | OK          | 0.5     |                                 |\n| Gradient tool                  | Planned     | 2.0     |                                 |\n| Layers support                 | OK          | 0.5     |                                 |\n| Layer groups                   | Planned     | 2.0     |                                 |\n| Layer masks                    | Planned     | 2.0     |                                 |\n| Layer blending                 | OK          | 0.5     |                                 |\n| Layer alpha                    | OK          | 0.5     |                                 |\n| Filter support                 | OK          | 0.5     |                                 |\n| Resize: Nearest Neighbor       | OK          | 0.5     |                                 |\n| Resize: Scale2X                | OK          | 0.5     |                                 |\n| Drop Shadow filter             | OK          | 0.5     |                                 |\n| Solarize                       | Planned     | 2.0     |                                 |\n| Sobel edge-detection           | Planned     | 2.0     |                                 |\n| Mirror image                   | OK          | 0.5     |                                 |\n| Flip image                     | OK          | 0.5     |                                 |\n| Curves adjustment              | Planned     | 1.0     |                                 |\n| Salt and Pepper filter         | Planned     | 2.0     |                                 |\n| 2D Fast Fourier Transform      | Planned     | 2.0     |                                 |\n| Load Dotto format              | Planned     | 0.5     |                                 |\n| Load PNG, BMP, GIF, JPEG       | OK          | 0.5     | Using `libpng` and `SDL2_image` |\n| Load LBM, PCX, PNM, SVG        | OK          | 0.5     | Using `SDL2_image`              |\n| Load TGA, TIFF, WEBP, XCF      | OK          | 0.5     | Using `SDL2_image`              |\n| Load XPM, XV                   | OK          | 0.5     | Using `SDL2_image`              |\n| Load QOI                       | OK          | 0.5     | Using `qoi.h`                   |\n| Save QOI                       | OK          | 0.5     | Using `qoi.h`                   |\n| Save PNG                       | OK          | 0.5     | Using `libpng`                  |\n| Save JPEG                      | OK          | 0.5     | Using `SDL2_image`              |\n| Save Dotto format              | Planned     | 0.5     |                                 |\n| Palette editor                 | Planned     | 0.5     |                                 |\n| Online Palette browser         | Planned     | 1.0     |                                 |\n| Online Resource/Script browser | Planned     | 1.0     |                                 |\n| eXPerience theme               | In Progress | 0.5     | Windows XP-inspired skin        |\n| Touchscreen-specific theme     | Planned     | 2.0     |                                 |\n| Non-destructive Layer Filters  | Planned     | 3.0     |                                 |\n| Commandline interface          | Planned     | 3.0     |                                 |\n| Animation support              | Planned     | 3.0     |                                 |\n\n\n## Compilation\n\n### Linux\n\nInstall dependencies:\n\n- Arch-based distros: `pacman -S make sdl2 sdl2_image v8-r lcms2`\n\n- Debian-based distros: `sudo apt-get install libsdl2-dev libsdl2-image-dev liblcms2-dev libfreetype6-dev libnode-dev`\n\n- Fedora-Based distros: `sudo dnf install g++ make SDL2-devel SDL2_image-devel v8-devel lcms2-devel freetype-devel zenity libXi-devel`\n\nCheckout project:\n\n`git clone --recurse-submodules https://github.com/LibreSprite/Dotto.git`\n\nCompile:\n\n```sh\ncd Dotto\nmake\n```\n\nIf you are using GCC version 8 or less, you will probably get errors like this one:\n`Folder.cpp:(.text+0x274): undefined reference to std::filesystem::__cxx11::path::_M_split_cmpts()'`\nTo fix this, use:\n\n```sh\nmake OLDGCC=true\n```\n\nIf Dotto compiles fine but you are getting a crash on startup, it might be due\nto outdated/buggy libraries. After a `make clean`, try compiling again with:\n\n```sh\nmake DEBIANELDERLY=true\n```\n\nIf you are trying to run Dotto under VirtualBox and all you see is a glitched window, you need to *disable* 3D acceleration in the VM settings. Dotto requires functioning OpenGL 3.3 to work.\n\nIf you want to make a debug build for development, use:\n\n```sh\nmake DEBUG=true\n```\n\n### Windows\n\nInstall [MSYS2](https://msys2.org).\n\nInitial setup: Open the MSYS2 shell and run:\n\n```sh\npacman -Syu\npacman -S base-devel git mingw-w64-i686-gcc mingw-w64-i686-openssl mingw-w64-i686-v8  mingw-w64-i686-SDL2  mingw-w64-i686-SDL2_image  mingw-w64-i686-lcms2 mingw-w64-i686-freetype mingw-w64-i686-glew\ngit clone --recurse-submodules https://github.com/LibreSprite/Dotto.git\n```\n\nCompiling:\n\nRun the Mingw32 shell (C:/msys64/mingw32.exe).\n\n```sh\ncd Dotto\ncp /mingw32/bin/snapshot_blob.bin ./\nmake DEBUG=true\n./dotto.exe\n```\n\n### MacOS\n\nInitial setup:\n\n```sh\nbrew install sdl2 sdl2_image lcms2 freetype v8 openssl pkg-config\n```\n\nCompiling:\n\n```sh\nmake DEBUG=true -j 4\n```\n\nRunning:\n```sh\n./dotto\n```\n\n### Nintendo 3DS\n\n- Install devkitpro\n- Install dependencies: devkitARM, citro3d, 3ds-sdl, 3ds-sdl_image, 3ds-zlib, 3ds-lz4, 3ds-libpng\n- Compile: `make -j 4 -f Makefile.3ds`\n- Upload the resulting Dotto.elf.3dsx to your 3DS.\n- Create a folder called `dotto` in the root of your SD card.\n- Copy the `data` folder into the `dotto` folder (`/dotto/data/`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibresprite%2Fdotto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibresprite%2Fdotto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibresprite%2Fdotto/lists"}