16#include <AUI/Common/AColor.h>
20namespace RenderHints {
28 template<aui::invocable Callable>
29 static void pushMask(IRenderer& render, Callable&& maskRenderer) {
42 template<aui::invocable Callable>
43 static void popMask(IRenderer& render, Callable&& maskRenderer) {
49 template<aui::invocable Callable>
52 inline explicit PushMask(
IRenderer& render, Callable&& maskRenderer) :
54 maskRenderer(std::forward<Callable>(maskRenderer)) {
55 pushMask(render, std::forward<Callable>(maskRenderer));
59 popMask(render, std::forward<Callable>(maskRenderer));
64 Callable maskRenderer;
69 inline explicit PushMatrix(
IRenderer& render) : render(render), stored(render.getTransform()) {
72 inline ~PushMatrix() {
73 render.setTransformForced(stored);
83 inline explicit PushColor(
IRenderer& render): render(render), stored(render.getColor()) {
87 render.setColorForced(stored);
95 class PushState : PushColor, PushMatrix {
97 inline explicit PushState(
IRenderer& render): PushColor(render), PushMatrix(render) {}
Represents a 4-component floating point color (RGBA).
Definition AColor.h:26
Base class for rendering.
Definition IRenderer.h:149
virtual void popMaskAfter()=0
Switches drawing to the color buffer back from the stencil. Decreases stencil depth.
virtual void popMaskBefore()=0
Switches drawing to the stencil buffer instead of color buffer.
virtual void pushMaskAfter()=0
Switches drawing to the color buffer back from the stencil. Increases stencil depth.
virtual void pushMaskBefore()=0
witches drawing to the stencil buffer instead of color buffer.