Page 1 of 1

[OGRE2]SceneManager::fireRenderQueueEnded function is never called

Posted: Fri Feb 19, 2021 11:57 pm
by a_programmer
I tried to handle RenderQueueListener::renderQueueEnded with the RenderQueueListener.
But SceneManager::fireRenderQueueEnded function is never called.
With RenderQueueListener::renderQueueStarted all is well.

Code: Select all

bool SceneManager::fireRenderQueueEnded(uint8 id, const String& invocation)
    RenderQueueListenerList::iterator i, iend;
    bool repeat = false;

    iend = mRenderQueueListeners.end();
    for (i = mRenderQueueListeners.begin(); i != iend; ++i)
        (*i)->renderQueueEnded(id, invocation, repeat);
    return repeat;

Re: [OGRE2]SceneManager::fireRenderQueueEnded function is never called

Posted: Mon Feb 22, 2021 10:17 pm
by dark_sylinc

renderQueueStarted/Ended listeners are legacy listeners that don't make much more sense anymore in Ogre 2.x

renderQueueStarted was left because v1::OverlaySystem needed it and we haven't replaced it yet; so renderQueueStarted is just doing whatever v1::OverlaySystem needs.

I suspect what you need can either be solved with CompositorWorkspaceListener or FrameListener.

See Samples/2.0/ApiUsage/PlanarReflections for an example of CompositorWorkspaceListener


Re: [OGRE2]SceneManager::fireRenderQueueEnded function is never called

Posted: Tue Mar 09, 2021 7:56 pm
by a_programmer
Thank you for your reply.
It's always difficult to decide what is a bug and what is a design decision.