1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-14 07:15:19 +00:00
Commit graph

660 commits

Author SHA1 Message Date
Emmanouil Papadeas
fa3642f99c Some code improvements and documentation 2024-12-10 23:36:33 +02:00
Emmanouil Papadeas
c56b242c46 Change the audio driver to Dummy from the Preferences for performance reasons 2024-12-10 03:38:22 +02:00
Emmanouil Papadeas
7633b0fe2a Pxo loading/saving 2024-12-10 02:32:34 +02:00
Emmanouil Papadeas
04f5a162c0 Fix crashes when the audio layer has no track 2024-12-10 01:34:21 +02:00
Emmanouil Papadeas
404d938565 Support frame delay 2024-12-10 00:52:57 +02:00
Emmanouil Papadeas
ecd479b4e2 Export audio in videos with custom delay 2024-12-09 20:54:04 +02:00
Emmanouil Papadeas
1088a8bbe7 Minor code improvements 2024-12-09 18:56:07 +02:00
Emmanouil Papadeas
98d2e12415 Remove support for ogg audio files as they cannot be saved
At least until I find a way to save them. Wav files will be supported with Godot 4.4
2024-12-09 18:40:40 +02:00
Emmanouil Papadeas
47fb74b268 Export videos with audio
Only works with mp3 for now
2024-12-09 18:39:18 +02:00
Emmanouil Papadeas
963eef4124 Import audio from videos 2024-12-09 16:35:41 +02:00
Emmanouil Papadeas
0cef80ab6f Set the audio layer names to be the imported audio file names 2024-12-09 16:35:41 +02:00
Emmanouil Papadeas
e5d95c69e2 Support mp3 files 2024-12-09 16:35:41 +02:00
Emmanouil Papadeas
1b7494a767 Load ogg audio files 2024-12-09 16:35:41 +02:00
Emmanouil Papadeas
cc0ab5949f Initial work on audio layers 2024-12-09 16:35:41 +02:00
Emmanouil Papadeas
0d2b579afe Don't export the first frame twice when using ping pong loop 2024-12-08 15:40:03 +02:00
Emmanouil Papadeas
f91bb18fb2
Implement tilemap layers (#1146) 2024-12-05 03:57:44 +02:00
Variable
ff5713ae91
When picking color, ensure that the correct index is selected in palette (#1144)
* When picking color, ensure that the correct index is selected

* if drawing over same color in index mode, check and update index as well

* revert an optimization (croping indices image before display)

* typo
2024-12-02 19:44:52 +02:00
Variable
31981a1def
Added a way to see index of color (plus bugfixes) (#1143)
* add a way to see indices

* fix some things

* Fixed more than one swatch selected if there is the same color available in an earlier swatch

* fixed wrong index drawn when moved to an smpty swatch

* make active_button public

* fixed wrong color getting stored in   array (similar fix to #1108.)

* If the color selected in the palette is the same then it should take prioity.

* formatting

* hide 0 index
2024-11-29 19:10:02 +02:00
Variable
7f4c7a6bf1
Grid patch (#1142)
* fix second grid not *shown* removed when first grid has default values.

* Make next added grid twice the previous size, and with a different color

* Formatting
2024-11-28 22:02:13 +02:00
HuanWuCode
41ea287df4
Update Import.gd (#1121) 2024-11-27 17:01:00 +02:00
Variable
6224d06428
Allow multiple Grids (#1122)
* Allow upto 10 grids

* Fixed more stuff

* fixed a bug

* formatting

* removed some left over stuff

* linting

* formatting and a bugfix
2024-11-25 15:57:13 +02:00
Emmanouil Papadeas
8b1367494d Ensure that the swatches get deleted when the user removes all palettes 2024-11-23 17:54:28 +02:00
Emmanouil Papadeas
658477ed4b Sort system font names by alphabetical order 2024-11-23 01:21:22 +02:00
Emmanouil Papadeas
d0ecf3b03d Center diagonal symmetry guides when initializing a new project
The guides appear centered, but the symmetry itself is not working properly yet
2024-11-21 16:33:19 +02:00
Emmanouil Papadeas
3d65e48c92 Add backend for diagonal mirror buttons
The buttons are not yet visible
2024-11-21 12:48:52 +02:00
Emmanouil Papadeas
aa1731b701 Initial work on diagonal symmetry guides
Still no buttons yet, and they cannot be moved yet.
2024-11-21 04:00:40 +02:00
Emmanouil Papadeas
558140b309 Add partial logic for diagonal mirroring
Still WIP, no buttons and guides exposed yet.
2024-11-21 03:25:41 +02:00
Emmanouil Papadeas
2d28136449
Implement indexed mode (#1136)
* 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
2024-11-20 14:41:37 +02:00
Emmanouil Papadeas
428e5edb8f
Add a text tool (#1134)
* 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
2024-11-19 01:20:34 +02:00
Emmanouil Papadeas
dec698024c Implement selection expanding and shrinking via the Select menu 2024-11-14 17:59:53 +02:00
Variable
5fa97988b5
Fixed unexpected behavior of resize_selection() (#1132)
* Fixed unexpected behavior of resize_selection()

* Fix typo

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-11-10 23:12:09 +02:00
Variable
af703d486e
Add a way to get autoloads through the api (#1131)
* add autoloads to api

* A name Dilemma, There are 2 autoloads for ImportApi

* add docstring
2024-11-09 23:26:14 +02:00
Variable
2d9a582f21
Added an OKHSL Lightness sorting in palette (#1126)
* added a lightness sort system

* static check

* lightness

* formatting

* more formatting

* more formatting
2024-10-26 01:31:52 +03:00
Emmanouil Papadeas
203340b3a1 If the selected font index is out of bounds, fall back to Roboto 2024-10-17 16:58:15 +03:00
Emmanouil Papadeas
fd714d04df Update the ExtensionsAPI to handle fonts 2024-10-17 16:52:42 +03:00
Emmanouil Papadeas
91f0b26245 Change the font of the interface from the properties 2024-10-17 14:41:43 +03:00
Emmanouil Papadeas
120bd9a7df Use American English spelling for "Center Canvas" to make it more consistent with the rest of the application 2024-10-17 13:46:18 +03:00
Variable
d894e9db86
Added Centre Canvas Option (#1123)
* add a centre frame option

* moved code to view menu

* restore left over stuff

* fix typo
2024-10-16 16:30:30 +03:00
Variable
3863cbaee7
Add a preference to share options between tools (#1120)
* 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>
2024-10-16 16:00:20 +03:00
Emmanouil Papadeas
1ed52903b3 Implement the ability to change the font of a 3D text
This code will also be useful for the text tool
2024-10-12 16:30:16 +03:00
Emmanouil Papadeas
dcd93b4366 Remove Global.open_sprites_dialog and Global.save_sprites_dialog. 2024-10-11 17:12:55 +03:00
Emmanouil Papadeas
b9bf8290b0 Remove Global.animation_timer 2024-10-11 16:38:35 +03:00
Emmanouil Papadeas
dddcfed3c4 Add a new "CanvasRulers" node group for the canvas rulers 2024-10-11 16:31:18 +03:00
Emmanouil Papadeas
d05787d6ef Add a new "CanvasPreviews" node group for the canvas previews 2024-10-11 16:24:44 +03:00
Emmanouil Papadeas
b79ce0ae15 Add a new "CanvasCameras" node group for the canvas cameras 2024-10-11 14:44:21 +03:00
Emmanouil Papadeas
72da34a97d Fix icons not being set to the correct color when launching Pixelorama with the dark theme 2024-10-11 13:03:26 +03:00
Emmanouil Papadeas
2f24508dea Add a new Reset category in the Preferences 2024-10-09 21:20:17 +03:00
Variable
b350f436c6
Allow clipping to selection during export (#1113)
* Allow clipping to selection during export

* linting

* removed shader
2024-10-01 20:18:58 +03:00
Variable
564b199fa9
Add hotkeys to switch between tabs (#1109)
* Added hotkey to switch tab

* Linting
2024-09-29 00:15:37 +03:00
Emmanouil Papadeas
62d573ae01 Fix issue when exporting and the user has specific frames selected, then changes the layers and then changes the frames again 2024-09-11 17:01:03 +03:00