tracing Ogre frame, making sure all furniture use the same material

This commit is contained in:
2026-02-14 13:44:05 +03:00
parent 884a310033
commit 5d5d04b690
2 changed files with 121 additions and 6 deletions

View File

@@ -21,6 +21,7 @@
#include "physics.h"
#include "sound.h"
#include <tracy/Tracy.hpp>
#include <tracy/TracyC.h>
class App;
class SkyRenderer : public Ogre::SceneManager::Listener {
protected:
@@ -171,6 +172,32 @@ public:
mSkyBoxGenParameters.skyBoxDistance = distance;
}
};
class FrameListenerTrace : public Ogre::FrameListener {
public:
TracyCZoneCtx mzone;
FrameListenerTrace()
: initialized(false)
{
}
bool frameStarted(const Ogre::FrameEvent &evt) override
{
TracyCZoneN(ctx, "OgreFrame", true);
mzone = ctx;
return true;
}
bool frameRenderingQueued(const Ogre::FrameEvent &evt) override
{
TracyCZoneEnd(mzone);
return true;
}
bool frameEnded(const Ogre::FrameEvent &evt) override
{
return true;
}
private:
bool initialized;
};
class App;
class KeyboardListener : public OgreBites::InputListener {
App *mApp;
@@ -333,6 +360,8 @@ public:
mScnMgr->addRenderQueueListener(pOverlaySystem);
mScnMgrInterior->addRenderQueueListener(pOverlaySystem);
mScnMgrInventory->addRenderQueueListener(pOverlaySystem);
FrameListenerTrace *trace = OGRE_NEW FrameListenerTrace;
root->addFrameListener(trace);
// mTrayMgr = new OgreBites::TrayManager("AppTrays",
// getRenderWindow());
}
@@ -432,6 +461,7 @@ public:
Ogre::RTShader::ShaderGenerator *shadergen =
Ogre::RTShader::ShaderGenerator::getSingletonPtr();
shadergen->addSceneManager(scnMgr);
scnMgr->setShadowTechnique(Ogre::SHADOWTYPE_NONE);
setWindowGrab(true);
std::cout << "Init camera"
<< "\n";
@@ -633,7 +663,7 @@ end:
void createContent()
{
int i;
mJolt = new JoltPhysicsWrapper(mScnMgr, mCameraNode);
mJolt = new JoltPhysicsWrapper(mScnMgr, mCameraNode);
sky = new SkyBoxRenderer(getSceneManager());
bool drawFirst = true;