3#include <layer/aglLayer.h>
4#include <layer/aglRenderStep.h>
5#include <layer/aglRenderInfo.h>
6#include <layer/aglRenderer.h>
7#include <red/event_sys/EventBase.h>
8#include <red/event_sys/EventDelegator.h>
9#include <telkin/Assembly.h>
29 RenderStepEvent::subscribe<S>(mListener);
33 EventDelegator<RenderStepEvent>::Listener mListener;
53 return ((agl::lyr::Renderer::instance()->getLayer(args) == &getLayer()) || ...);
57 return ((args == getRenderInfo().getRenderStep()) || ...);
61 RenderStepEvent(agl::lyr::Layer* layer,
bool renderAsDL, agl::lyr::RenderStep* renderStep, agl::lyr::RenderInfo* renderInfo)
63 , mRenderStep(renderStep)
64 , mRenderInfo(renderInfo)
65 , mRenderAsDL(renderAsDL)
70 static Delegator& getDelegator();
74 static void subscribe(EventDelegator<RenderStepEvent>::Listener& listener) {
75 getDelegator<S>().connect(listener);
81 static void emit(agl::lyr::Layer* layer,
bool renderAsDL, agl::lyr::RenderStep* renderStep, agl::lyr::RenderInfo* renderInfo) {
83 getDelegator<S>().fire(event);
87 static void hookPre(agl::lyr::Layer* layer, agl::lyr::RenderInfo* renderInfo);
88 static void hookPost(agl::lyr::Layer* layer, agl::lyr::RenderInfo* renderInfo);
91 agl::lyr::Layer* mLayer;
92 agl::lyr::RenderStep* mRenderStep;
93 agl::lyr::RenderInfo* mRenderInfo;
Definition RenderStepEvent.h:24
Listener(ListenerFunc f, s32 priority=0)
Definition RenderStepEvent.h:26
Definition RenderStepEvent.h:14
bool filterLayer(std::convertible_to< s32 > auto... args)
Definition RenderStepEvent.h:52
agl::lyr::RenderStep & getRenderStep() const
Definition RenderStepEvent.h:41
static void hookPost(agl::lyr::Layer *layer, agl::lyr::RenderInfo *renderInfo)
Stage
Definition RenderStepEvent.h:16
@ Post
Definition RenderStepEvent.h:20
@ BeforePost
Definition RenderStepEvent.h:19
@ AfterPre
Definition RenderStepEvent.h:18
@ Pre
Definition RenderStepEvent.h:17
bool filterRenderStep(std::convertible_to< s32 > auto... args)
Definition RenderStepEvent.h:56
static void hookPre(agl::lyr::Layer *layer, agl::lyr::RenderInfo *renderInfo)
TODO: Make private.
agl::lyr::RenderInfo & getRenderInfo() const
Definition RenderStepEvent.h:44
bool isDisplayList() const
Definition RenderStepEvent.h:47
agl::lyr::Layer & getLayer() const
Definition RenderStepEvent.h:38
Definition ActorDonutBlock.h:5