{"id":22360806,"url":"https://github.com/renehorstmann/pixelc","last_synced_at":"2025-07-04T14:34:47.398Z","repository":{"id":41121374,"uuid":"332462585","full_name":"renehorstmann/Pixelc","owner":"renehorstmann","description":"An opensource tile/sprite editor in C, using SDL2 and OpenGL, also running on Android and in the web","archived":false,"fork":false,"pushed_at":"2023-06-29T19:49:59.000Z","size":17225,"stargazers_count":34,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-03T14:34:52.827Z","etag":null,"topics":["c","engine","mobile","opengl","pixelart","sdl2","webapp"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renehorstmann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-01-24T13:55:03.000Z","updated_at":"2024-11-01T02:38:09.000Z","dependencies_parsed_at":"2024-01-16T17:46:00.700Z","dependency_job_id":"deb1378d-a04f-4392-a7e6-50df2f3ef429","html_url":"https://github.com/renehorstmann/Pixelc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renehorstmann%2FPixelc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renehorstmann%2FPixelc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renehorstmann%2FPixelc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renehorstmann%2FPixelc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renehorstmann","download_url":"https://codeload.github.com/renehorstmann/Pixelc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228144671,"owners_count":17876162,"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":["c","engine","mobile","opengl","pixelart","sdl2","webapp"],"created_at":"2024-12-04T16:18:40.282Z","updated_at":"2024-12-04T16:18:40.888Z","avatar_url":"https://github.com/renehorstmann.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pixelc\r\nAn opensource tile/sprite editor in C, using SDL2 and OpenGL.\r\n\r\n![logo](icon/icon196.png)\r\n\r\n\u003e Main target are touch devices such as smartphones and tablets.\r\n\u003e Runs also fine on desktops.\r\n\r\nBased on [some](https://github.com/renehorstmann/some) framework.\r\n\r\n## Android App\r\nPixelc on [Google Play](https://play.google.com/store/apps/details?id=de.horsimann.pixelc).\r\n\r\n## WebApp\r\n[Pixelc WebApp](https://renehorstmann.github.io/pixelc) compiled with emscripten.\r\n\r\n\u003e Add the WebApp in your browser to the homescreen, to get the real WebApp fullscreen feeling.\r\n\r\n## App:\r\n\r\n![example_image](example.png)\r\n\r\n## Tutorial\r\nA documentation / tutorial can be found [here / doc.md](doc.md)\r\n\r\n![img](doc/res4/button_tooltip.png)\r\n\r\nOr just use the tooltip tool. \r\n\r\n## Up 'n Downloads\r\nNothing in Pixelc is sent to any server and all your art is saved locally on your device!\r\nEven if the WebApp \"downloads\" and \"uploads\" the images, they're just saved offline in your browser.\r\n\r\n## Sponsoring\r\nYou want to support me?\r\n\u003e Buy Pixelc Premium on [Google Play](https://play.google.com/store/apps/details?id=de.horsimann.pixelcpremium).\r\nIts just like Pixelc, but with grey scaled tools and background\r\n\r\n## Highlights:\r\n- Multitouch Mode for a great touch experience\r\n- Full mobile friendly [WebApp](https://renehorstmann.github.io/pixelc) compiled with emscripten\r\n- Frames and a .gif export\r\n- Layers\r\n- Onion Skinning for frames and layers\r\n- Tile Mode\r\n- Multiple drawing modes\r\n- Shading\r\n- Selections\r\n- Undo and Redo system that also works on App reload\r\n- 9 Image Tabs\r\n- Contains the most popular [LOSCPEC](https://lospec.com/palette-list) palettes\r\n- Custom Brush / Kernel / Stamps\r\n- Custom Palettes\r\n- **COMPLETELY FREE and open**\r\n- and many more\r\n\r\n## Known Bugs\r\nA few bugs that I haven't been able to solve yet:\r\n\r\n### 1. Web Image Upload Zoom Bug\r\nZoomed in on your Browser while asked for an image upload?\r\ntry:\r\n- use desktop version in your browser to reset the size\r\n- empty the browser cache/data (for the Pixelc App)\r\n\r\nIf you know someone who speaks html better than me, tell me :)\r\n\r\nUsing the html option `user-scalable=no` will create a smaller canvas size on phones, which looks washed due to linear scaling. \r\nAlso not all browsers disable zoom (like the Samsung Internet Browser)\r\n\r\n### 2. Samsung Internet Browser App Corruption Bug\r\nUsing the tiling mode may create wrong rendering in the tilemap first (some tiles are just wrong or missing).\r\nThe more that happens, other parts of the App will break, too.\r\nOften files cant be loaded anymore, so a lot of black rects will appear here and there...\r\nLooks like a C memory overflow to me, but all other browsers and platform do not have that problem.\r\nAlso the Google Sanitizer on Ubuntu does not detect any leaks or overflows...\r\n\r\n## Install and run on Desktop\r\nHave a look at the section of [some](https://github.com/renehorstmann/some).\r\n\r\n\r\n## Compiling for Web\r\nUsing Emscripten https://emscripten.org/\r\nTested under Ubuntu and WSL Ubuntu.\r\nYou should have already cloned the project and `cd` to that dir:\r\n\r\n- Create a sub-directory to compile the website\r\n```sh\r\nmkdir web \u0026\u0026 cp index.html web \u0026\u0026 cp icon/* web \u0026\u0026 cd web\r\n```\r\n\r\n- Copy all resources, because emscripten may not be able to use `../res`\r\n```sh\r\ncp -r ../res .\r\n```\r\n\r\n- Compile\r\n```sh\r\nemcc -O3 \\\r\n-I../include/ \\\r\n-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s FULL_ES3=1 -s \\\r\nEXPORTED_FUNCTIONS='[\"_main\", \"_e_io_idbfs_synced\", \"_e_io_file_upload_done\"]' \\\r\n-s EXPORTED_RUNTIME_METHODS=FS,ccall \\\r\n-s SDL2_IMAGE_FORMATS='[\"png\"]' \\\r\n--preload-file ./res \\\r\n-s ALLOW_MEMORY_GROWTH=1 -s ASYNCIFY=1 -s EXIT_RUNTIME=1 \\\r\n-lidbfs.js \\\r\n-DPLATFORM_EMSCRIPTEN -DOPTION_GLES -DOPTION_SDL \\\r\n../src/e/*.c ../src/p/*.c ../src/r/*.c ../src/u/*.c ../src/*.c ../src/dialog/*.c ../src/tool/*.c \\\r\n-o index.js\r\n```\r\n\r\n- Test the website (open a browser and call localhost:8000)\r\n```sh\r\npython3 -m http.server --bind localhost  # [port]\r\n```\r\n\r\n## Todo\r\n- gif decoder?\r\n\r\n## Author\r\nRené Horstmann\r\n\r\n## Licence\r\n- The app and its assets are licenced under GPLv3, see LICENCE.\r\n- The [some](https://github.com/renehorstmann/some) framework is under MIT licence, see someLICENCE.\r\n    - [SDL2](https://www.libsdl.org/) (zlib License)\r\n    - [Emscripten](emscripten.org) (MIT License)\r\n    - [nuklear](https://github.com/Immediate-Mode-UI/Nuklear) for debug gui windows (MIT License) \r\n      - not used in Pixelc, but is part of some\r\n    - [curl](https://curl.se/docs/copyright.html) (MIT like License) \r\n      - not used in Pixelc, but is part of some\r\n    - [sfd](https://github.com/rxi/sfd) for simple file dialogs (MIT License)\r\n- the .gif encoder [gifenc](https://github.com/lecram/gifenc) is licenced under public domain\r\n- tar .tar archive handler [microtar](https://https://github.com/rxi/microtar) (MIT License)\r\n- Have a look at [some_examples](https://github.com/renehorstmann/some_examples) for some shared modules, under the MIT licence\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenehorstmann%2Fpixelc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenehorstmann%2Fpixelc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenehorstmann%2Fpixelc/lists"}