1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-16 00:05:18 +00:00
Commit graph

125 commits

Author SHA1 Message Date
Emmanouil Papadeas
ed5449bb66 Use an enum for the loop types in the timeline
I should have done that years ago. Literally. I don't know what took so long.
2024-10-11 16:42:11 +03:00
Emmanouil Papadeas
b9bf8290b0 Remove Global.animation_timer 2024-10-11 16:38:35 +03:00
Emmanouil Papadeas
2f24508dea Add a new Reset category in the Preferences 2024-10-09 21:20:17 +03:00
Emmanouil Papadeas
f162f12fbf Save the onion skinning opacity in the config file 2024-09-07 03:59:19 +03:00
alikin12
1460ba2e89
Set timeline layer and frame header to be fixed on top (#1095) 2024-09-01 02:30:36 +03:00
Donte
4fa8981590
Add onion skinning opacity adjustment (#1091)
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-08-30 22:58:28 +03:00
alikin12
987366fa8f
Add global layer buttons (#1085) 2024-08-28 02:53:05 +03:00
Emmanouil Papadeas
bdef545727 Fix issue when merging two layers, where if the bottom layer had layer/cel transparency, the transparency would be applied in the content destructively 2024-08-17 02:38:27 +03:00
Emmanouil Papadeas
077c57c53a
Implement support for group layer blending (#1077)
* 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
2024-08-15 15:52:55 +03:00
Emmanouil Papadeas
8163015c02 Change blend modes of multiple selected layers from the timeline
And also add undo/redo when changing the blend mode from the layer properties dialog. Not sure why I had made their behaviors so inconsistent.
2024-08-13 00:53:37 +03:00
Emmanouil Papadeas
a3d7725a44 Fix popups appearing in wrong places when single window mode is disabled 2024-08-03 22:36:05 +03:00
Emmanouil Papadeas
c0c391674d [skip ci] Change instances of "yield" to "await" in comments 2024-08-02 00:42:14 +03:00
Emmanouil Papadeas
c2fc70e436 Fix bug when selecting multiple layers and their opacity changes immediately by the opacity slider 2024-07-30 21:25:15 +03:00
Emmanouil Papadeas
5eaf81aeae [skip ci] Add a Steam achievement for creating a 3D layer 2024-07-27 13:00:16 +03:00
Emmanouil Papadeas
899fa521eb Fix crash when adding a new layer to a collapsed group layer 2024-07-23 17:58:19 +03:00
Emmanouil Papadeas
429d3469fd Fix issue with layers on the timeline having the wrong size on Greek 2024-06-01 18:29:38 +03:00
Emmanouil Papadeas
5a64dde3e5 Remove frame tag button & make onion skinning settings into general timeline settings
The "Animation plays only on frames of the same tag" button has been moved to the general timeline settings, along with a new slider that resizes the cel buttons in the timeline.
2024-05-08 01:09:20 +03:00
Emmanouil Papadeas
d8704fdf5d Change tag color, text and size in AnimationTagUI.gd 2024-05-06 16:30:10 +03:00
Emmanouil Papadeas
0d375631b8 Better static typing in the timeline related methods in Project 2024-04-14 00:57:53 +03:00
Emmanouil Papadeas
7507206726 Move all selected frames - implements #743
This only works for frames at the moment, not layers and cels. Layers may be harder to support because they also have children. Supports both the "move left/right" options and drag and dropping. Frame swapping (with control) only works when one frame is selected, because I am unsure how they should be handled, especially when the selected frames are not continuous.

Didn't encounter any issues on my testing, but more testing is always welcome.
2024-04-11 18:03:43 +03:00
Emmanouil Papadeas
92e8666da2 Change layers with Control + Up/Down arrow keys
We already have Control + Left/Right for changing frames, so it makes sense to have Up/Down for layers
2024-04-10 16:58:04 +03:00
Emmanouil Papadeas
dbfd4d8412 When merging layers, automatically make the bottom layer visible
If the bottom layer is invisible, it becomes visible now. Consistent with behavior seen in Krita and Photopea.
2024-04-09 02:30:50 +03:00
Emmanouil Papadeas
c5c421bd28 Add layer properties 2024-04-04 03:21:07 +03:00
Emmanouil Papadeas
ebfc3c04fe Lazy load the frame tag dialog 2024-03-24 00:14:57 +02:00
Emmanouil Papadeas
6d2d09d222 More static typing improvements 2024-03-23 04:36:26 +02:00
Emmanouil Papadeas
48145b7f61 Use signals to move some code away from Project.change_project()
WIP, more code can be moved
2024-03-22 21:05:00 +02:00
Emmanouil Papadeas
377c24c981 Make Pixelorama load slightly faster by not calling some setters of Global's variables if the value is the same 2024-03-21 00:02:54 +02:00
Emmanouil Papadeas
722cb1a1e4 Lazy load the layer fx settings dialog 2024-03-20 19:03:46 +02:00
Emmanouil Papadeas
c1b78e4c01 Implement basic clipping masks
A very simple implementation, not as complex as something like #768 yet, but it can be done in the future.

The main current limitation is that it doesn't work with group layers as of right now.
2024-03-14 01:08:57 +02:00
Emmanouil Papadeas
cd2787b373 Set opacity of multiple layers at once 2024-03-07 01:16:43 +02:00
Emmanouil Papadeas
a05dbabf98 Slightly increase the layer container minimum size to match the layer buttons 2024-02-09 14:50:18 +02:00
OverloadedOrama
12036364b5 Timeline UI improvements, better visual indication of the cels that are selected and the cels that are linked 2024-02-08 20:46:07 +02:00
OverloadedOrama
e11ecb2e8d Add get_position() and get_minimum_size() methods to AnimationTag 2024-02-07 03:17:39 +02:00
TheLsbt
f373dae714
Better signal representation (#971)
* Update 3DShapeEdit.tscn

Change the menu button to flat to indicate that it is a button that you can press and not a label

* Changed Signal names to make sense

Note: I did not change functions in the ExtensionsAPI

Changed signals in Global.gd (and everywhere else they are referenced) from *_changed to *_switched

* Bonus Signal

Added a signal in Global.gd that gets emitted just before the project is changed.

Added project_changed to Global.gd which also emits what project was changed by an action (not switched).

* Formatting
2024-01-09 00:22:56 +02:00
Variable
87b5a818bb
Improved the Paste tag system (#946)
* cloned frames only keep original selected cels as selected

* Fixed PasteTagPopup dialog, fixed tag created immediately after starting pixelorama not placed correctly

* formatting

* typo

* Pase tag popup 2.0

* improved code

* formatting

* Update PasteTagPopup.gd

* fixed code messed up while resolving conflict

* group sync achieved

* linting

* quality of life additions

* fixed projects not updating

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-12-30 14:53:45 +02:00
Variable
8d09713774
ExtensionApi Improvements (#959)
* Improved signal api

* added two more signals

* Improved debug messaging system

* fix typo
2023-12-14 03:44:50 +02:00
Emmanouil Papadeas
8ca0e12b90 Attempt to fix the "add layer" button not working when pressed 2023-12-06 04:16:53 +02:00
Emmanouil Papadeas
359f509d57 Make the opacity slider affect layer opacity instead of cel opacity
And move cel opacity inside the cel properties.
2023-12-06 03:44:55 +02:00
Emmanouil Papadeas
f893e68d59 Move even more code away from Global and Project to AnimationTimeline
This time related to layer buttons
2023-12-05 02:04:34 +02:00
Emmanouil Papadeas
80e351a2a1 Move some code away from Global and Project to AnimationTimeline 2023-12-05 01:46:42 +02:00
Emmanouil Papadeas
5ece616a9a Only use one LayerButton scene instead of using inheritence
And make some code improvements in LayerButton.gd
2023-12-05 01:08:26 +02:00
Emmanouil Papadeas
1b22e75034 Some timeline UI improvements 2023-12-01 21:13:28 +02:00
Emmanouil Papadeas
4b84803456 Loop through frames when clicking on go to previous/next frame buttons on the timeline 2023-11-29 02:47:33 +02:00
Emmanouil Papadeas
bc8a9de4db Optimize layer blending modes and make them work on all GPUs (hopefully) - Fixes #938 2023-11-25 00:10:19 +02:00
Emmanouil Papadeas
4024858292 Set the minimum size of the layer buttons container to be the same as the size of the layer options container 2023-11-22 17:44:38 +02:00
Emmanouil Papadeas
08b03ae0e5
Implement layer effects (#940)
* Basic logic for layer effects

* Add an FX button and the ability to add effects, no way to remove or change properties of effects yet

* Basic and ugly UI for adding and removing effects, no property changing yet

* Swap effects

* Fix preload shader paths

* Change parameters for layer effects

* Change gradient parameter in layer effect shaders, and other fixes

* Use CollapsibleContainers for the shader properties

* Set the correct gradient interpolation mode and color space in the UI

* Make effects of group layers apply to children

* Change `apply_fx` to `apply_effects`, formatting, some extra doc comments

* Apply effects to other canvases, when merging layers and when exporting

* Display humanized names of the shader unifrms

* Some UI improvements to the LayerEffectsSettings

* Add an Enabled button in the layer effects window, and change checkboxes to checkbuttons

* Change BaseLayer.apply_effects() to take a cel as a parameter instead

* Make layer effect buttons be affected by the modulate icon color

* Add option in the View menu whether layer effects are displayed in the canvas or not

* Rename `apply_effects()` to `display_effects()`

* Add translation strings

* Add nearest filter to the gradient map

* Don't change Main.tscn

* Fix more translations

* Change the default cursor shape of the generated UI elements of the layer effects

* Add undo/redo and effect application (apply effect destructively)

There are some errors due to the usage of anonymous lambda methods in undo/redo, but it seems to be working well regardless.

* Make layer effect application work on all cels
2023-11-22 01:06:25 +02:00
Variable
60d4b1fd81
Make cloned frames only select a cel if it's coresponding original cel was selected as well (#942)
* cloned frames only keep original selected cels as selected

* Fixed PasteTagPopup dialog, fixed tag created immediately after starting pixelorama not placed correctly

* formatting

* typo
2023-11-21 16:48:48 +02:00
Emmanouil Papadeas
2c5ece53dd [Undo/Redo] Compress images when replacing cels and merging layers 2023-11-14 17:08:09 +02:00
Emmanouil Papadeas
a84b92c5a8 Some timeline UI changes, translation and documentation for the blend modes 2023-10-22 17:53:45 +03:00
Emmanouil Papadeas
8de9697be0
Layer blend modes (#911)
* Preview blend modes

No support for exporting and layer merging yet. Also need to fix the move tool preview.

* Preview blend modes on tile mode

* Raise layer limit to 1024

* Export images with layer blending modes

* Save blend modes in pxo files

* Merge layers with blending modes

* Fix crash when adding a new layer

* Preview blending in the other canvases

* Update DrawingAlgos.gd

* Move tool preview

* Re-arrange blend menu and add lighten, darken, linear burn and exclusion

* Add divide blend mode

* Add hue, saturation, color & luminosity blend modes

* Undo/redo when changing blend modes
2023-10-22 01:57:45 +03:00