From 38a7f03cf0e5ee116794a78581634ba3dab508fa Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Sun, 29 Mar 2026 00:41:45 +0300 Subject: renderer: refactor part 7: api fixes (#13631) Part 7 of ujin's refactors --------- Co-authored-by: Vaxry --- src/render/ElementRenderer.hpp | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/render/ElementRenderer.hpp (limited to 'src/render/ElementRenderer.hpp') diff --git a/src/render/ElementRenderer.hpp b/src/render/ElementRenderer.hpp new file mode 100644 index 00000000..ed92b06f --- /dev/null +++ b/src/render/ElementRenderer.hpp @@ -0,0 +1,48 @@ +#pragma once + +#include "./pass/BorderPassElement.hpp" +#include "./pass/ClearPassElement.hpp" +#include "./pass/FramebufferElement.hpp" +#include "./pass/PreBlurElement.hpp" +#include "./pass/RectPassElement.hpp" +#include "./pass/RendererHintsPassElement.hpp" +#include "./pass/ShadowPassElement.hpp" +#include "./pass/SurfacePassElement.hpp" +#include "./pass/TexPassElement.hpp" +#include "./pass/TextureMatteElement.hpp" +#include "./pass/InnerGlowPassElement.hpp" +#include + +namespace Render { + class IElementRenderer { + public: + IElementRenderer() = default; + virtual ~IElementRenderer() = default; + + void drawElement(WP element, const CRegion& damage); + + protected: + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + virtual void draw(WP element, const CRegion& damage) = 0; + + private: + void calculateUVForSurface(PHLWINDOW, SP, PHLMONITOR pMonitor, bool main = false, const Vector2D& projSize = {}, const Vector2D& projSizeUnscaled = {}, + bool fixMisalignedFSV1 = false); + + void drawRect(WP element, const CRegion& damage); + void drawHints(WP element, const CRegion& damage); + void drawPreBlur(WP element, const CRegion& damage); + void drawSurface(WP element, const CRegion& damage); + void preDrawSurface(WP element, const CRegion& damage); + void drawTex(WP element, const CRegion& damage); + void drawTexMatte(WP element, const CRegion& damage); + void drawCustom(WP element, const CRegion& damage); + }; +} -- cgit v1.2.3