Emmanouil Papadeas
6c8b2ae36b
Rename Project.directory_path
to Project.export_directory_path
2024-03-22 14:42:47 +02:00
Emmanouil Papadeas
64983b0404
Some static typing improvements
2024-03-22 03:07:21 +02:00
Emmanouil Papadeas
07fa1266d3
Remove three calls to Global.preferences_dialog
2024-03-21 03:00:21 +02:00
Emmanouil Papadeas
491d81f393
Minor config file section key re-organization
2024-03-21 01:51:19 +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
f1ef01bb87
Replace Camera2D with a custom CanvasCamera to reduce idle GPU usage
...
Necessary workaround because of https://github.com/godotengine/godot/issues/89514
2024-03-19 15:39:34 +02:00
Emmanouil Papadeas
03b173b76e
Optimize cel switching by avoiding changing the stylebox of every CelButton
2024-03-15 01:31:12 +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
dc9ba6dd9c
Implement alpha lock as a global tool option
2024-03-09 02:47:13 +02:00
Emmanouil Papadeas
c225553042
Fix linked cels not working when importing a pxo file
...
Godot 4 has changed how ImageTexture works, as now it doesn't work when the Image is empty. Thus, we need to add Images to PixelCels right when they are created, before the linked cel logic is being handled.
2024-03-08 02:15:58 +02:00
Emmanouil Papadeas
90f7df0f5d
Exporting each layer as a different file is now possible
2024-03-07 16:08:20 +02:00
Emmanouil Papadeas
cb58cf7163
Minor refactor of Export & ExportDialog to combine processed_images and durations into a single ProcessedImage class
2024-03-07 02:10:21 +02:00
Emmanouil Papadeas
20fecc5a7a
Export spritesheets based on animation tags
2024-03-06 19:49:05 +02:00
Emmanouil Papadeas
55df23e400
Fix exporting not including the last frame of a tag and "Selected layers" not including the non-selected frames
2024-03-06 01:47:00 +02:00
Emmanouil Papadeas
36d4b0fa18
Fix crash when importing a corrupt pxo
2024-03-05 16:05:13 +02:00
Emmanouil Papadeas
b0a8ad17d4
Revert using Image.rotate_90() from the previous commit
...
Image.rotate_90() is also changing the size of the image, which we don't want to, at least not yet
2024-03-02 18:03:06 +02:00
Emmanouil Papadeas
4a404b2883
Use Image.rotate_90() and Image.rotate_180() on CPU rotation algorithms when the angle is 90, 180 or 270 degrees
2024-03-01 20:25:37 +02:00
Emmanouil Papadeas
57856ed327
Update ExtensionsApi.gd
2024-02-29 23:54:19 +02:00
Emmanouil Papadeas
9b439327b8
Fix ExtensionsAPI's new_project()
not working, and add a new new_empty_project()
method
2024-02-24 15:25:54 +02:00
Emmanouil Papadeas
d3db8f5be7
Rename project_changed
to project_data_changed
signal, add a new method for this signal in ExtensionsAPI
2024-02-22 17:43:47 +02:00
Emmanouil Papadeas
a06d6a2909
Improve static typing in the ExtensionsAPI
2024-02-22 00:46:28 +02:00
Emmanouil Papadeas
22ddc96962
Use getters to lazy-load cleanEdge and OmniScale shaders
2024-02-19 02:09:35 +02:00
Emmanouil Papadeas
9a313821dc
When exporting, Pixelorama now remembers the last exported path
2024-02-15 18:41:24 +02:00
Emmanouil Papadeas
f56d536b36
Create a get_mirrored_positions()
method in Tools
...
Reduces some code replication across tools
2024-02-13 02:31:48 +02:00
Emmanouil Papadeas
9f82c85b73
Fix issue when uploading a shader on the Web version
2024-02-12 00:29:30 +02:00
Emmanouil Papadeas
c9ddde7194
Use FFMPEG to import videos and gifs
...
Haven't tried large videos, but I imagine Pixelorama would run out of memory quickly. Maybe we should safeguard against that somehow. We also need to get the fps from the imported video and use it in the new project.
2024-02-05 03:32:43 +02:00
Emmanouil Papadeas
85ac0897a9
Remove unused method parameter in Palettes' copy_palette()
2024-02-05 00:17:56 +02:00
Emmanouil Papadeas
fb948c33b4
Add a "Create a new palette" option on the sort palette button
...
Enabled by default, every time you sort a palette it creates a copy of the original palette and it sorts that, instead of sorting the original palette directly. This reduces the risk of destructive change, as the palette system does not have undo/redo support. If disabled, sorting affects the original palette directly, without creating a new one.
2024-02-05 00:16:22 +02:00
Emmanouil Papadeas
5dfe1cc271
Set Selection.gd process input false by default, fix cursor still being set to a cross when entering the canvas if it's disabled in the preferences
2024-02-04 00:12:19 +02:00
Emmanouil Papadeas
4c39e29b67
Fix UI not staying dimmed after opening a native file dialog
2024-02-03 13:55:17 +02:00
Emmanouil Papadeas
da0066259e
[WIP] Copy default layouts to the layout directory so they can be modified
...
Moved some logic away from TopMenuContainer to Main.gd and the layout array to Global.gd.
2024-02-02 01:42:29 +02:00
Emmanouil Papadeas
ffd729486f
Expose window transparency as an option in the preferences, keep it disabled by default
...
I had to disable it, because for some reason having it be enabled by default does not seem to be working. This may be a good idea anyway, as many people will not need this feature, and having this enabled affects performance.
This commit also allows for changing project setting related options in the preferences to also work when running Pixelorama inside Godot.
2024-02-02 00:19:53 +02:00
Emmanouil Papadeas
e648d0d612
Some code improvements in DrawingAlgos
...
Should also result in minor optimizations
2024-01-31 02:26:49 +02:00
Emmanouil Papadeas
399fc8dfbd
Make similar_colors() in DrawingAlgos faster
...
We finally found some use for Godot 4's new Vector4, let Godot's built-in functions handle the math, since they run in native C++.
2024-01-31 01:41:58 +02:00
Emmanouil Papadeas
63691cacaf
Load pxo files from the Web version - Fixes #820
2024-01-30 21:17:31 +02:00
Emmanouil Papadeas
6345c52b5f
Fix override.cfg being created in the wrong location if Pixelorama is launched through a launcher or a shortcut
2024-01-29 16:35:23 +02:00
OverloadedOrama
a7cf93d1e5
Fix not being able to draw when closing the splash screen
...
Regression from b08420d0
2024-01-26 04:05:37 +02:00
Emmanouil Papadeas
b126e95b64
Almost made selection rotation with gizmos functional
...
Not exposed yet
2024-01-25 02:33:41 +02:00
Emmanouil Papadeas
ce7a5e77ba
Add a single window mode setting in the preferences
...
True by default, when set to false the UI uses multiple windows
2024-01-24 18:31:22 +02:00
Emmanouil Papadeas
4bc0fba941
Add a variable in Global for setting file dialogs as native, and add a "FileDialogs" node group
...
This settings is not exposed in the preferences in this commit
2024-01-24 03:57:40 +02:00
Emmanouil Papadeas
b08420d09d
Don't change the value of can_draw in Global.dialog_open()
...
In Godot 4 dialogs seem to be blocking the input to the rest of the UI, so this may not be needed
2024-01-24 03:19:57 +02:00
Emmanouil Papadeas
4e9b657077
Remove Global.has_focus completely
...
Might be a risky change, but I haven't noticed any bugs so far
2024-01-24 03:14:11 +02:00
Emmanouil Papadeas
42de5ccb29
Remove unneeded has_focus checks
2024-01-24 03:06:09 +02:00
Emmanouil Papadeas
3a852e44ff
Add a popup_error() method in Global
...
Just to reduce code duplication and make error appearing easier
2024-01-24 02:27:57 +02:00
Emmanouil Papadeas
43d241a5c2
Video exporting by calling FFMPEG externally ( #980 )
...
* Basic mp4 exporting, needs ffmpeg
* Add avi, ogv and mkv file exporting
* Add webm exporting
* Set ffmpeg path in the preferences
* Show an error message if the video fails to export
* Make sure to delete the temp files even if video exporting fails
2024-01-24 02:00:17 +02:00
Emmanouil Papadeas
204eff8184
Fix selection being incorrect when the image is being scaled (mostly when being made smaller).
2024-01-23 19:38:21 +02:00
Emmanouil Papadeas
e7a469fa4d
Refactor scale methods of DrawingAlgos
2024-01-23 19:25:32 +02:00
Emmanouil Papadeas
6448b7ee7c
Remove unnecessary Array casting in DrawingAlgos
2024-01-23 19:07:35 +02:00
Emmanouil Papadeas
bc8fadb67c
Fix cel button image texture breaking when the image gets resized
2024-01-19 18:25:50 +02:00
Emmanouil Papadeas
72bec41e63
Add icons to some Help menu items, add a new "Support Pixelorama's Development" item and remove "Donate" from the About dialog
2024-01-10 00:30:27 +02:00