It's Cel's property and thus it changes when frame_changed is called (also layer_changed calls frame_changed on its own).
Co-authored-by: kleonc <kleonc@users.noreply.github.com>
- Now the current frame is drawn to a separate Viewport (with transparent background) taking into account only per layer opacity,
- Tiling is drawn by drawing current frame's ViewportTexture with tile mode opacity applied (using premultiply alpha blending).
Co-authored-by: kleonc <kleonc@users.noreply.github.com>
Instead of having a frame_duration[] array in the Project class. This makes the code much more readable and understandable, using less lines of code and, by avoiding an extra array, we also avoid potential out-of-bound array crashes.
The functionality for the user has not changed, and by testing so far I didn't find any issues.
Fixes #377. The issue was that the shader material was being shared with the background of the cel buttons, and when the cel button transparent background was resized, the canvas transparent background was also affected.
- All colors move towards yellow when lighting, and purple when darkening. The logic has become more complex, so it doesn't just increase (or decrease) the hue when lighting (or darkening). This solves issues with green and blue.
- Added limits to the hue when lighting and darkening, limits to the value when darkening, and to the saturation when lighting.
This behavior should eventually be documented to explain how it works to the users.
When the user switched from one project to another, which had a larger size, the preview of the ImageEffect was trying to set pixels out of bounds, only when the affect option was different than "Current cel"
* Improved tiling feature
* Removed some unwanted code
* Fixed the bug mentioned by overloaded
* Added the requests by overload
* changed the y value which was given x value before
* Add shrink option that allow change default shrink
Shrink option allow to scale the godot application. This path enable
dynamic change of this value in the options.
* Fix the computation of cursor location
For an unknown reason the function get_local_mouse_position return
incorrect current_pixel when shrink is not 1. This path compute the
transformation manually and povide correct values for any shrink value.