A tiny pixel art editor.
https://fabioarnold.itch.io/mini-pixel
See INSTALL.md.
- nanovg library by Mikko Mononen
- zigwin32 by Jonathan Marler
- s2s by Felix Queißner
Mini Pixel is licensed under the MIT License, see LICENSE for more information.
A tiny pixel art editor
License: MIT License
A tiny pixel art editor.
https://fabioarnold.itch.io/mini-pixel
See INSTALL.md.
Mini Pixel is licensed under the MIT License, see LICENSE for more information.
There should be two draw modes
This should affect draw, fill and selection.
When drawing larger pieces it's kind of tedious to draw with a 1x1 brush.
Request origin: https://itch.io/post/5393741
To enable internal copy/paste within the app
Currently blocked by ziglang/zig#16336
If the text is too long it will overdraw. If the window is too small control get cut off.
Don't directly delete windows within a UI event after calling window.close(). Code running during the event handling might try to access the window handle as observed here: e7cd1d9
Instead mark the window for deletion and delete it when event handling is done and not from within an application call stack.
Howdy!
I was playing with MiniPixel and noticed whenever I select part of the image while in Index mode, the selection texture gets mangled if the selection width is an odd number.
Here is an example gif that alternates between selections with an odd numbered width and an even numbered width.
I traced through the code a bit to try to track this down but everything seems to be working fine until the IndexBitmap is passed to nanovg. For example,
Line 1305 in cb255f1
selection.indexed_bitmap.indices
had the values that I would expect.
This behaviour shows up in Linux and in Windows. Tested on v0.2.1 and the current master, cb255f1.
I'm happy to continue to debug, but just wanted to flag the issue.
Thanks.
This is due to interference of slider events.
Implement mode switching between 24 bit true color and indexed mode.
Precreate this window. NewDocumentWidget
can be used as starting point.
Right now we have a pixel grid. An arbitrarily sized meta grid or tile grid would be nice. Also, implement snapping for selection.
There's a limitation of SDL that it rounds coordinates to whole numbers. Finer scroll gestures get lost due to this.
When using operations other than drawing a pixel or a line such as fill, the canvas doesn't update.
When I click the save button, the system file dialog opens, but then it is frozen: I cannot click on the button to save or cancel, and all my desktop UI becomes unresponsive to mouse action. I can still do ALT+TAB and the keyboard works, so killing the process via terminal can unfreeze the desktop.
I'm on Linux with xfce desktop.
Other than this so far everything works nicely, great work!
To reproduce create a 1024x1024 image and move the pen over the canvas. Observe the stuttering.
When having a selection, display handles to allow arbitrary scaling.
ColorPickerWidget
gets updated and red is still selected in the paletteIn debug builds there's a noticable hang when operations are performed.
Howdy,
I noticed some issues when trying to minimize MiniPixel on Linux. (MiniPixel is so awesome I hadn't tried to minimize it before now. 😄 )
Here is a .gif of what happens when the window's minimize button is clicked.
The window loses focus but the immediately seems to un-minimize itself. Additionally if I go to another desktop, I can see it show up in the task bar which generally only happens if an application is trying to get attention.
I have zero SDL experience, but my guess is that the SdlWindow.draw()
call is sees that the window is hidden and tells the window manager to show it:
Lines 261 to 263 in f5f0195
I made a small change here, shadeops@9728a1a, which avoids the SdlWindow.draw()
call entirely if minimized.
Note - This doesn't appear to be a problem with 0.2.1 on Windows.
OS: Kubuntu 20.04
Head: f5f0195
The image sticks to the top left. We need to somehow store the offset in UndoStep
.
Use text.
Graphics Gale uses hex values for instance: "#RRGGBB"
When clicking the save button store document path. If no path is stored, automatically perform "save as" instead of "save" action.
Ctrl + S: save
Ctrl + Shift + S: save as
To reproduce:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.