1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 17:19:50 +00:00
Commit graph

2291 commits

Author SHA1 Message Date
Emmanouil Papadeas 0145b9dede
[skip ci] Add more links to com.orama_interactive.Pixelorama.appdata.xml 2023-04-25 00:30:10 +03:00
Darshan Phaldesai 96d9327c8f
Update .desktop files and add MimeInfo (#848) 2023-04-24 13:50:56 +03:00
Emmanouil Papadeas 118e2e7671 Move set_nodes() logic to parent class ImageEffect
Also fixes a crash when trying to change the affected cels option in image effects that do not have animation options
2023-04-20 22:29:03 +03:00
Emmanouil Papadeas 0fe315d605 Remove separator from the image menu
Temporary, easy fix bug where assigning a shortcut to an image effect, actually assigned it to the one above.
2023-04-20 16:49:31 +03:00
Emmanouil Papadeas 91b1186d6f Remove unneeded shader parameters
Also changed the parameter names in HSV to reduce some lines of code
2023-04-20 16:21:09 +03:00
Emmanouil Papadeas 483e7df52e ValueSlider arrow buttons now respect snap_by_default 2023-04-20 16:11:16 +03:00
Emmanouil Papadeas ec2dcae8f7 Add a Posterize image effect, with optional dithering
Seems to produce the same result as GIMP's Posterize color filter. Should be useful for reducing the colors of an image, and it could work together with 3D lighting. Thanks to https://godotshaders.com/shader/color-reduction-and-dither/ for the shader.
2023-04-20 16:08:06 +03:00
Emmanouil Papadeas 9607981567 Do not call CameraMovement._input() if the cursor is not on the canvas
Slight optimization, as only one camera can now receive input at a time.
2023-04-19 21:35:29 +03:00
Emmanouil Papadeas 1a9691052e Only redraw the second canvas and canvas preview when necessary
Should optimize things ever further. Hopefully I didn't break anything.
2023-04-19 20:51:08 +03:00
Emmanouil Papadeas 0ffd34a4d6 Small optimization in CanvasPreview
On large canvases (like 4096x4096), simply moving the mouse around was laggy. It turns out that texture_to_draw = current_cels[i].image_texture was causing the lag, but I'm not sure why. It could be that texture_to_draw was a Texture and not an ImageTexture.

There is still some room for optimization, both the second canvas and canvas preview are being drawn on _input(), which is unnecessary.
2023-04-19 20:35:27 +03:00
Emmanouil Papadeas 72a7b277fb Use a ValueSliderV2 in the gradient dialog, and reverse the radius logic
The larger the radius value, the larger the circle, as it should be
2023-04-19 03:44:28 +03:00
Emmanouil Papadeas b1f355702e Add camera FOV and size to the 3D layers
Orthogonal projection is now more usable
2023-04-18 21:04:13 +03:00
Emmanouil Papadeas 1187b0bc49 Load cleanEdge shader when the rotate image or scale image dialog is shown
This should save some time on initial loading, but it introduces a slight loading time when opening the scale or rotate dialog for the first time in a session
2023-04-18 20:08:00 +03:00
Emmanouil Papadeas d04aa5ee56 Add snapping distance slider in the preferences 2023-04-18 17:20:13 +03:00
Emmanouil Papadeas 9d848c4f68 More ValueSliders in the Preferences 2023-04-18 17:03:51 +03:00
Emmanouil Papadeas 1325aaa13f Use ValueSliderV2s for grid preferences 2023-04-18 16:38:55 +03:00
Emmanouil Papadeas 02aa91a394 Fix camera jitter when zooming in the canvas 2023-04-17 18:09:49 +03:00
Emmanouil Papadeas 1196fb5b0b Use ValueSliders for the canvas zoom and rotation
Should also clean the code a little bit
2023-04-17 02:07:48 +03:00
Emmanouil Papadeas 5c8cf56f8f Make snapping distance change based on the zoom
Should work similarly to GIMP now
2023-04-16 21:15:40 +03:00
Emmanouil Papadeas 9cf82e7f71 [skip ci] Update Translations.pot 2023-04-15 16:53:52 +03:00
Emmanouil Papadeas 23198a84aa Small canvas preview UI changes and translation string additions 2023-04-15 13:46:42 +03:00
Chris Tsoychlakis db29ec9f0f
fixed mirrored drawing (#843)
* fixed mirrored drawing

* fix mirrored drawing
2023-04-14 15:56:08 +03:00
Emmanouil Papadeas 0349dccf04 [skip ci] Some more translation strings 2023-04-13 19:07:47 +03:00
Variable d40b9744ed
fix canvas preview only showing first layer (#844) 2023-04-12 13:24:19 +03:00
Emmanouil Papadeas 2bca2db27a Add more licenses to the AboutDialog 2023-04-08 00:34:38 +03:00
Emmanouil Papadeas 6700a72e73 Sort contributors and donors in AboutDialog in alphabetical order 2023-04-07 03:01:02 +03:00
Emmanouil Papadeas d68032fbda Fix previous commit to only show the notification once 2023-04-07 02:16:52 +03:00
Emmanouil Papadeas 272ea63615 Only show the "File(s) exported" notification on successful export 2023-04-07 02:09:49 +03:00
Emmanouil Papadeas 7e0bd46235 [skip ci] Update CHANGELOG.md 2023-04-05 19:01:01 +03:00
Emmanouil Papadeas 60997723e2 Create a parent scene for the image effects
This helps with shared nodes, such as the preview, the affect selection, cels etc options, and the animation properties
2023-04-04 04:19:18 +03:00
Emmanouil Papadeas b137762b1b
New Crowdin updates (#829)
* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (German)

* New translations Translations.pot (German)

* New translations Translations.pot (Italian)

* New translations Translations.pot (French)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (French)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Afrikaans)

* New translations Translations.pot (Arabic)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Catalan)

* New translations Translations.pot (Czech)

* New translations Translations.pot (Danish)

* New translations Translations.pot (German)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Finnish)

* New translations Translations.pot (Hebrew)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Korean)

* New translations Translations.pot (Dutch)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Portuguese)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Albanian)

* New translations Translations.pot (Serbian (Cyrillic))

* New translations Translations.pot (Swedish)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Chinese Traditional)

* New translations Translations.pot (Vietnamese)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (German)

* New translations Translations.pot (French)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (French)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Afrikaans)

* New translations Translations.pot (Arabic)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Catalan)

* New translations Translations.pot (Czech)

* New translations Translations.pot (Danish)

* New translations Translations.pot (German)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Finnish)

* New translations Translations.pot (Hebrew)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Korean)

* New translations Translations.pot (Dutch)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Portuguese)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Albanian)

* New translations Translations.pot (Serbian (Cyrillic))

* New translations Translations.pot (Swedish)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Chinese Traditional)

* New translations Translations.pot (Vietnamese)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (French)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Afrikaans)

* New translations Translations.pot (Arabic)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Catalan)

* New translations Translations.pot (Czech)

* New translations Translations.pot (Danish)

* New translations Translations.pot (German)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Finnish)

* New translations Translations.pot (Hebrew)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Korean)

* New translations Translations.pot (Dutch)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Portuguese)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Albanian)

* New translations Translations.pot (Serbian (Cyrillic))

* New translations Translations.pot (Swedish)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Chinese Traditional)

* New translations Translations.pot (Vietnamese)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (French)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (French)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Afrikaans)

* New translations Translations.pot (Arabic)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Catalan)

* New translations Translations.pot (Czech)

* New translations Translations.pot (Danish)

* New translations Translations.pot (German)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Finnish)

* New translations Translations.pot (Hebrew)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Korean)

* New translations Translations.pot (Dutch)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Portuguese)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Albanian)

* New translations Translations.pot (Serbian (Cyrillic))

* New translations Translations.pot (Swedish)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Chinese Traditional)

* New translations Translations.pot (Vietnamese)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (German)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (French)

* New translations Translations.pot (Spanish)

* New translations Translations.pot (Afrikaans)

* New translations Translations.pot (Arabic)

* New translations Translations.pot (Belarusian)

* New translations Translations.pot (Catalan)

* New translations Translations.pot (Czech)

* New translations Translations.pot (Danish)

* New translations Translations.pot (German)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Finnish)

* New translations Translations.pot (Hebrew)

* New translations Translations.pot (Hungarian)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (Korean)

* New translations Translations.pot (Dutch)

* New translations Translations.pot (Polish)

* New translations Translations.pot (Portuguese)

* New translations Translations.pot (Russian)

* New translations Translations.pot (Albanian)

* New translations Translations.pot (Serbian (Cyrillic))

* New translations Translations.pot (Swedish)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (Ukrainian)

* New translations Translations.pot (Chinese Simplified)

* New translations Translations.pot (Chinese Traditional)

* New translations Translations.pot (Vietnamese)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Indonesian)

* New translations Translations.pot (Latvian)

* New translations Translations.pot (Hindi)

* New translations Translations.pot (Esperanto)

* New translations Translations.pot (Malayalam)

* New translations Translations.pot (Sinhala)

* New translations Translations.pot (Norwegian Bokmal)

* New translations Translations.pot (Japanese)

* New translations Translations.pot (German)

* New translations Translations.pot (German)

* New translations Translations.pot (Portuguese, Brazilian)

* New translations Translations.pot (Greek)

* New translations Translations.pot (Italian)

* New translations Translations.pot (Turkish)

* New translations Translations.pot (French)

* New translations Translations.pot (Romanian)

* New translations Translations.pot (Romanian)
2023-04-03 17:58:15 +03:00
Emmanouil Papadeas 8ce68700dd 3D object optimizations 2023-04-02 01:36:02 +03:00
Emmanouil Papadeas 4943ab5eab Add pxo version to pxo files, starting from 2
Its value should increase every time there is a compatibility-breaking or a major change between previous pxo files, similar to extensionsAPI version.
2023-04-01 02:16:24 +03:00
Emmanouil Papadeas 91aea32864
Implement 3D layers (#840)
* Implement 3D layers

* Remove unneeded files

* Fix bug where a single hidden layer would ignore all of the layers on top when exporting

* Fix pxo loading

* Remove junk nodes from 3DShapeEdit

Seems like they were created when I copied from the old 3D Options.tscn panel to the new 3D Shape Edit tool.

* Make light gizmos half the size, and hide gizmos when rotating

* Fix crash when using the 3D shape edit tool on a group layer

* Remove unneeded code in Canvas.gd

* Add torus in the Cel3DObject.Type enumerator

Torus isn't currently supported in Godot 3.5, but it is in 3.6 and 4.0, so this is just future-proofing. May break compatibility with .pxo files that were exported with 3D layers before this change.

* Toggle 3D object visibility

* Change texts and some variable names

* Fill translation strings

* Fix crash on group blending, and make the code in Export.blend_layers() more general

* Fix errors when attempting to draw on a 3D cel

Can occur when multiple cels are selected, some of them 3D and some of them pixel

* Make scene properties and objects be per-cel instead of per-layer

Breaks compatibility with previous .pxo files that had 3D layers. Also introduces serialize() and deserialize() methods to BaseCel

* Use if not layer is get_script() in GroupLayer.blend_children()

* Flip the condition in GroupLayer.blend_children()

* Fix bug where locked/invisible layers could get drawn

Regression from c2f6bf0f3f

* Move gizmo code to 3DShapeEdit's draw_start(), move some undo/redo logic to 3DShapeEdit

* Move all of the undo/redo code to 3DShapeEdit, simplify code in Cel3D

* Store Cel3D image data to pxo, for easy usage by external software

This makes importing projects with 3D layers to other software, such as Godot using godot_pixelorama_importer easier.

* Make the linter happy

* Fix bug where the previously selected object would remain selected when it got removed with undo
2023-03-31 21:58:56 +03:00
Emmanouil Papadeas 5f290ae343 Change resize SpinBox to ValueSlider in ExportDialog 2023-03-30 18:20:55 +03:00
Emmanouil Papadeas 78fda42743 Remove unneeded lines in AnimationTimeline.gd 2023-03-29 15:24:30 +03:00
Emmanouil Papadeas 5c9f0d8c18 Fix bug where, if the bottom-most layer is invisible, selection can't transform content on other layers 2023-03-27 03:42:16 +03:00
Emmanouil Papadeas 6b587688f1 Fix bug where clicking on previous/next frame when only one frame exists makes the cel unselected
Apparently this bug exists at least since v0.10
2023-03-27 00:24:40 +03:00
Emmanouil Papadeas 2ce9f72c51 Use a ValueSliderV2 in the drop shadow dialog 2023-03-26 21:33:33 +03:00
Emmanouil Papadeas 4e9b4c33f7 Fix LayerButton drag and drop passing wrong parameter to BaseLayer.accepts_child()
It was passing the index of the layer as an integer instead of a BaseLayer class. Also made some code stylistic changes.
2023-03-25 18:42:50 +02:00
Variable b384e706a9
Animate image effect properties (#836)
* Added auto animation system

* Animation to dialog

* Added Animated properties

* animate ranges

* formatting

* Fix missing commit

* Formatting
2023-03-25 16:59:02 +02:00
Emmanouil Papadeas acf376865f Fix crash when there is no pixel layer in the timeline, only a group layer 2023-03-24 17:37:40 +02:00
Emmanouil Papadeas acb32844a1 Replace the Locked Aspect Ratio mode in the crop tool with a lock button next to the size sliders 2023-03-24 01:17:30 +02:00
Variable 2ad1391ca1
Spritesheet Animation Canvas Preview (#835)
* spritesheet preview

* formatting
2023-03-23 15:25:33 +02:00
Emmanouil Papadeas 4e7d5d34cf Keep aspect ratio when resizing a selection with gizmos, if the button is pressed next to the ValueSliders
Also fixes a bug with the inconsistent behavior caused by resizing a selection with gizmos without pressing Shift, while the keep ratio button was pressed.
2023-03-21 16:36:25 +02:00
Emmanouil Papadeas 99b014ef7f Fix segmentation fault when resizing canvas to a large size
For some reason, cel_texture.texture.get_data() seemed to cause a segmentation fault, and then a crash, when the image size was large. Also added some extra static typing to the drag and drop methods, but they are unrelated to the crash.
2023-03-21 02:06:57 +02:00
Emmanouil Papadeas d4ebf9c585 Use Vector2s for min and max values in ValueSliderV2
This lets us have different min/max values for x and y.
2023-03-21 01:45:09 +02:00
Emmanouil Papadeas a5496daa5b Add a ValueSliderV2 to the Pencil's spacing options 2023-03-20 20:28:01 +02:00
Emmanouil Papadeas 05fa436b12 Disable ValueSliderV2's ratio button when set to not editable
And use a NinePatchRect for the ratio guides, for proper scaling.
2023-03-20 01:59:15 +02:00
Emmanouil Papadeas e174f6e942 Add a new custom node, ValueSliderV2
ValueSliderV2 is a container for two ValueSliders and an optional lock ratio button, that helps with handling Vector2 values in the UI.
2023-03-20 00:56:43 +02:00