* 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
* 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>
* experimental support for texture changes
* fix some typos
* formatting + some improvements
* Some final touches, i think it's ready now
* moved a function to the shaderloader
* formatting
* add a void
* Blend group layers on `DrawingAlgos.blend_layers()`
* Support group layer blending on the canvas
* Allow editing of group layer properties
* Fix issues with group layer blending in canvas, and unite common code
* Group layers can now be used as clipping masks
* Make move tool preview work on child layers
* Change OffsetImage's `blend_layers()` to support group layer blending
* Support group layer blending in the canvas preview
* Fix layer blending mode, clipping mask opacity and cel opacity not being updated automatically if the layer/cel changed is not selected
* Add a pass through blending mode to layer groups
Fingers crossed that no bugs were introduced
* Fix issue with layers that belong to pass through groups not updating their textures on the canvas automatically on undo