diff --git a/modules/base/rendering/renderableplane.cpp b/modules/base/rendering/renderableplane.cpp index 02b55d8379..3437bbd97f 100644 --- a/modules/base/rendering/renderableplane.cpp +++ b/modules/base/rendering/renderableplane.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -166,6 +167,8 @@ bool RenderablePlane::isReady() const { } void RenderablePlane::initializeGL() { + ZoneScoped + glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer createPlane(); @@ -183,6 +186,8 @@ void RenderablePlane::initializeGL() { } void RenderablePlane::deinitializeGL() { + ZoneScoped + glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -199,8 +204,9 @@ void RenderablePlane::deinitializeGL() { } void RenderablePlane::render(const RenderData& data, RendererTasks&) { - _shader->activate(); + ZoneScoped + _shader->activate(); _shader->setUniform("opacity", _opacity); glm::dvec3 objectPositionWorld = glm::dvec3( @@ -277,6 +283,8 @@ void RenderablePlane::bindTexture() {} void RenderablePlane::unbindTexture() {} void RenderablePlane::update(const UpdateData&) { + ZoneScoped + if (_shader->isDirty()) { _shader->rebuildFromFile(); } diff --git a/modules/base/rendering/renderableplaneimagelocal.cpp b/modules/base/rendering/renderableplaneimagelocal.cpp index 0d190356a2..a6d711a046 100644 --- a/modules/base/rendering/renderableplaneimagelocal.cpp +++ b/modules/base/rendering/renderableplaneimagelocal.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -172,6 +173,8 @@ void RenderablePlaneImageLocal::bindTexture() { } void RenderablePlaneImageLocal::update(const UpdateData& data) { + ZoneScoped + RenderablePlane::update(data); if (_textureIsDirty) { @@ -181,6 +184,8 @@ void RenderablePlaneImageLocal::update(const UpdateData& data) { } void RenderablePlaneImageLocal::loadTexture() { + ZoneScoped + if (!_texturePath.value().empty()) { ghoul::opengl::Texture* t = _texture; diff --git a/src/scene/scenegraphnode.cpp b/src/scene/scenegraphnode.cpp index 7e7f679373..a9617799a0 100644 --- a/src/scene/scenegraphnode.cpp +++ b/src/scene/scenegraphnode.cpp @@ -489,17 +489,6 @@ void SceneGraphNode::render(const RenderData& data, RendererTasks& tasks) { return; } - RenderData newData = { - data.camera, - data.time, - data.renderBinMask, - { _worldPositionCached, _worldRotationCached, _worldScaleCached } - }; - - if (!isTimeFrameActive(data.time)) { - return; - } - const bool visible = _renderable && _renderable->isVisible() && _renderable->isReady() && _renderable->isEnabled() && _renderable->matchesRenderBinMask(data.renderBinMask); @@ -508,9 +497,20 @@ void SceneGraphNode::render(const RenderData& data, RendererTasks& tasks) { return; } + if (!isTimeFrameActive(data.time)) { + return; + } + { TracyGpuZone("Render") + RenderData newData = { + data.camera, + data.time, + data.renderBinMask, + { _worldPositionCached, _worldRotationCached, _worldScaleCached } + }; + _renderable->render(newData, tasks); if (_computeScreenSpaceValues) { computeScreenSpaceData(newData);