summaryrefslogtreecommitdiff
path: root/src/render/pass/TextureMatteElement.hpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2024-12-22 17:12:09 +0100
committerGitHub <noreply@github.com>2024-12-22 17:12:09 +0100
commite536b02248f370971716b744968776f6880528be (patch)
tree5e5755b7894eb44f9259cfe0e1d97899148a8a60 /src/render/pass/TextureMatteElement.hpp
parent1cc1a46c2e154a27750b81307040d3bf7ff0f64f (diff)
Renderer: rewrite render scheduling (#8683)
This rewrites renderer scheduling. Occlusion is now unified in a new Pass type.
Diffstat (limited to 'src/render/pass/TextureMatteElement.hpp')
-rw-r--r--src/render/pass/TextureMatteElement.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/render/pass/TextureMatteElement.hpp b/src/render/pass/TextureMatteElement.hpp
new file mode 100644
index 00000000..bf673946
--- /dev/null
+++ b/src/render/pass/TextureMatteElement.hpp
@@ -0,0 +1,29 @@
+#pragma once
+#include "PassElement.hpp"
+#include "../Framebuffer.hpp"
+
+class CTexture;
+
+class CTextureMatteElement : public IPassElement {
+ public:
+ struct STextureMatteData {
+ CBox box;
+ SP<CTexture> tex;
+ SP<CFramebuffer> fb;
+ bool disableTransformAndModify = false;
+ };
+
+ CTextureMatteElement(const STextureMatteData& data_);
+ virtual ~CTextureMatteElement() = default;
+
+ virtual void draw(const CRegion& damage);
+ virtual bool needsLiveBlur();
+ virtual bool needsPrecomputeBlur();
+
+ virtual const char* passName() {
+ return "CTextureMatteElement";
+ }
+
+ private:
+ STextureMatteData data;
+}; \ No newline at end of file