renpy
renpy copied to clipboard
Add the ability to apply transforms to all the display
Wrapping all the layers as a group, rather than each individual layer, because it may not yield the same behavior and improve performances. There would be some uses to make it context-dependent (like the camera statement) and some others to making it global and impervious to that. There will be losers to that match, so 🤷 maybe the simplest to implement ?
I'm interested in the proposed use case for this sort of thing as it's similar to thoughts I've had previously, but when playing them out have always tended to circle back to the realisation that it's unlikely that anyone wants to apply transforms to many of the default layers, i.e. top
, bottom
, transient
, or overlay
.
In cases where custom layers are being used, then this is already possible by making those layers detached and showing them on the master layer (or any other non-detached layer) on which the "global" transform could be applied and managed.
The use case are people who wanted to change the game brightness for some reason, with a bar in the preferences for players, or to apply a CRT effect or any transparency/non-deterministic effects to the whole display including the screens layer.
I'm not sure how creators could easily move all their screens to a detached layer that would be integrated in master. I wouldn't be sure where to begin, to set it in place and so on. (But you mention using custom layers so that may not be what you were meaning.)
Contrast with this implementation (when it's fixed) : you want something to apply to the whole display ? use camera None at tr
(the syntax was Tom's idea). You want it to always apply ? put it in after_load.
Provided a better place and manner to apply the transform is found within interact_core (or functions called by it), I think it would be a prettier solution code-wise and possibly performance-wise.