summaryrefslogtreecommitdiff
path: root/src/render/pass/PassElement.hpp
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-03-07 13:27:47 +0300
committerGitHub <noreply@github.com>2026-03-07 10:27:47 +0000
commit32e75e3e320fb66ab517a378df645f3d29b3a209 (patch)
tree4212f4cf197fc961161de7a9e57b85735257184a /src/render/pass/PassElement.hpp
parent36b19075f3a644a4095352d778e6d03e103bb334 (diff)
renderer: refactor render elements (#13438)
Part 2 of renderer refactors
Diffstat (limited to 'src/render/pass/PassElement.hpp')
-rw-r--r--src/render/pass/PassElement.hpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/render/pass/PassElement.hpp b/src/render/pass/PassElement.hpp
index a006ce9e..0dc5f581 100644
--- a/src/render/pass/PassElement.hpp
+++ b/src/render/pass/PassElement.hpp
@@ -1,16 +1,29 @@
#pragma once
#include "../../defines.hpp"
-#include <optional>
+
+enum ePassElementType : uint8_t {
+ EK_UNKNOWN = 0,
+ EK_BORDER,
+ EK_CLEAR,
+ EK_FRAMEBUFFER,
+ EK_PRE_BLUR,
+ EK_RECT,
+ EK_HINTS,
+ EK_SHADOW,
+ EK_SURFACE,
+ EK_TEXTURE,
+ EK_TEXTURE_MATTE
+};
class IPassElement {
public:
virtual ~IPassElement() = default;
- virtual void draw(const CRegion& damage) = 0;
- virtual bool needsLiveBlur() = 0;
- virtual bool needsPrecomputeBlur() = 0;
- virtual const char* passName() = 0;
+ virtual bool needsLiveBlur() = 0;
+ virtual bool needsPrecomputeBlur() = 0;
+ virtual const char* passName() = 0;
+ virtual ePassElementType type() = 0;
virtual void discard();
virtual bool undiscardable();
virtual std::optional<CBox> boundingBox(); // in monitor-local logical coordinates