Fixes some issues with the Palettize effect where the output would be different if the palette size changed and empty swatches were added, even if the colors themselves stayed the same.
* Create a custom PixeloramaImage class, initial support for indexed mode
* Convert opened projects and images to indexed mode
* Use shaders for RGB to Indexed conversion and vice versa
* Add `is_indexed` variable in PixeloramaImage
* Basic undo/redo support for indexed mode when drawing
* Make image effects respect indexed mode
* Move code from image effects to ShaderImageEffect instead
* Bucket tool works with indexed mode
* Move and selection tools works with indexed mode
* Brushes respect indexed mode
* Add color_mode variable and some helper methods in Project
Replace hard-coded cases of Image.FORMAT_RGBA8 with `Project.get_image_format()` just in case we want to add more formats in the future
* Add a helper new_empty_image() method to Project
* Set new images to indexed if the project is indexed
* Change color modes from the Image menu
* Fix open image to replace cel
* Load/save indices in pxo files
* Merging layers works with indexed mode
* Layer effects respect indexed mode
* Add an `other_image` parameter to `PixeloramaImage.add_data_to_dictionary()`
* Scale image works with indexed mode
* Resizing works with indexed mode
* Fix non-shader rotation not working with indexed mode
* Minor refactor of PixeloramaImage's set_pixelv_custom()
* Make the text tool work with indexed mode
* Remove print from PixeloramaImage
* Rename "PixeloramaImage" to "ImageExtended"
* Add docstrings in ImageExtended
* Set color mode from the create new image dialog
* Update Translations.pot
* Show the color mode in the project properties dialog
* Initial port of the text tool to Godot 4
* Change font (WIP)
* Add antialiasing option and remove some old unneeded lines
* Remove outline code
* Add horizontal alignment and update the text edit font size
* Improve the text edit
* Don't activate tools while typing
* Format
* Give input priority to the text edit so the key X and shortcuts such as control-z work in the text edit
* Add style settings for bold and italic
* Fix text going blank when changing font
* Use `font.draw_multiline_string()`
* Change the move behavior of the text tool, add confirm and cancel buttons
* Compress images on undo/redo
* Fix text position
It's not working anyway, and I'm not sure if there is a way to make it work, at least with a good and user-friendly way. If we find a way we could re-add it in the future.
Making its behavior more intuitive and consistent with the other panels. This also allows for multiple projects to be recorder at the same time, something that was not previous before. Changing projects now also changes the UI accordingly, depending on whether the current project is being recorded or not.
This change also fixes a memory leak, where either the first ever project or the last recorded one, stayed forever referenced in memory by the `project` variable.
Also fixed an issue where the recorder's settings size label was not showing the correct project size.
Another memory leak remains in Recorder.gd, where the first project forever remains referenced in memory, until the user changes the project from the option button. Perhaps we should remove that option button completely and always record the current project, that also sounds like the intended behavior to me.
The addition of the erase blend mode from #1117 resulted in loading pxo files from v1.0-v1.0.3 to have incorrect blend modes in their layers, if they are set to anything below normal, because the values of the `BaseLayer.BlendModes` enumerator changed.
This means that extensions that use version 4 can work in version 5, but not necessarily vice versa. Therefore we don't need to show a warning message when loading version 4 extensions.
TODO: Find a better way to determine which API versions have backwards compatibility with each other.
1) The bucket tool now picks colors from the top-most layer, like the rest of the drawing tools.
2) Using the tool while moving the cursor and also holding the color picker shortcut (Alt by default), now picks colors instead of using the bucket tool.
* Add share config button
* fill parameter now saves with curve tool
* rename _fill to _fill_inside for sync consistency (fill in pencil and shape tools basically represent the same thing)
* add icon
* Move the option to the preferences
* Add string to Translations.pot
* Re-introduce `is_syncing`
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
* ColorReplace Sdading Mode
* Fixed changing colors array by mistake
* the tool now takes more things into account
* Make it work with transparent colors (more consistent with aseprite), and improve ui a bit. This should be the last commit to this pr
* Fixed a colorpicker bug
* Some changes in the comments
We should probably avoid using "I" in comments, as it's not clear who is speaking, and `##` should only be used for documentation string and not normal comments.
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
* Set dynamics dialog to correct size after something is made visible or hidden
* fixed aspects of brush buttons
* Fixed wrong stretch mode
* improved rotation brush UI
* Update PaintSelect.tscn
* formatting
* fix all stretch modes
* fix export expand mode
* Fix more Stretch modes
* Fixed Resize canvas transparent checker
* removed an addition
The change: 625fe4cdd1
is moved over to a new pr
* moved some changes to another pr
* Moved some more changes to another pr