summaryrefslogtreecommitdiff
path: root/src/render/Transformer.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-10-21 19:25:44 +0100
committerVaxry <vaxry@vaxry.net>2023-10-21 19:25:44 +0100
commit95db9108e55ee1498bb23600e5f0a909d7685a4a (patch)
tree35e9dbd7afd1876b016c559b7fc6cf7dd5f0978d /src/render/Transformer.hpp
parenta61eb7694df25a75f45502ed64b1536fda370c1d (diff)
transformers: allow modifying renderdata pre-pass
Diffstat (limited to 'src/render/Transformer.hpp')
-rw-r--r--src/render/Transformer.hpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/render/Transformer.hpp b/src/render/Transformer.hpp
index 62eb3362..90fdeba9 100644
--- a/src/render/Transformer.hpp
+++ b/src/render/Transformer.hpp
@@ -2,12 +2,19 @@
#include "Framebuffer.hpp"
+struct SRenderData;
+
// A window transformer can be attached to a window.
// If any is attached, Hyprland will render the window to a separate fb, then call the transform() func with it,
// and finally render it back to the main fb after all transformers pass.
+//
+// Worth noting transformers for now only affect the main pass (not popups)
class IWindowTransformer {
public:
// called by Hyprland. For more data about what is being rendered, inspect render data.
// returns the out fb.
virtual CFramebuffer* transform(CFramebuffer* in) = 0;
+
+ // called by Hyprland before a window main pass is started.
+ virtual void preWindowRender(SRenderData* pRenderData);
}; \ No newline at end of file