Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove treenode #8

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/qml/qmlwaveformdisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
}

QmlWaveformDisplay::~QmlWaveformDisplay() {
// The stack contains references to Renderer that are owned and cleared by a TreeNode
// The stack contains references to Renderer that are owned and cleared by a BaseNode
m_rendererStack.clear();
}

Expand Down Expand Up @@ -107,7 +107,7 @@

auto renderer = pQmlRenderer->create(this);
addRenderer(renderer.renderer);
m_pTopNode->appendChildNode(std::unique_ptr<rendergraph::TreeNode>(renderer.node));
m_pTopNode->appendChildNode(std::unique_ptr<rendergraph::BaseNode>(renderer.node));
auto *pWaveformRenderMark =
dynamic_cast<allshader::WaveformRenderMark*>(
renderer.renderer);
Expand All @@ -122,7 +122,7 @@
}
}

bgNode->appendChildNode(m_pTopNode->backendNode());
bgNode->appendChildNode(m_pTopNode);
init();
}

Expand All @@ -138,7 +138,7 @@
setDevicePixelRatio(window()->devicePixelRatio());
bgNode->setRect(boundingRect());

auto rect = QRectF(boundingRect().x() +

Check warning on line 141 in src/qml/qmlwaveformdisplay.cpp

View workflow job for this annotation

GitHub Actions / clazy

unused QRectF [-Wclazy-unused-non-trivial-variable]
boundingRect().width() * m_playMarkerPosition - 1.0,
boundingRect().y(),
2.0,
Expand Down
9 changes: 3 additions & 6 deletions src/qml/qmlwaveformrenderer.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
#pragma once

#include <QQmlEngine>
#include <QObject>
#include <QQmlEngine>

#include "rendergraph/node.h"
#include "waveform/renderers/waveformrendererabstract.h"
#include "waveform/renderers/waveformwidgetrenderer.h"

class WaveformWidgetRenderer;

namespace rendergraph {
class TreeNode;
} // namespace rendergraph

namespace allshaders {
class WaveformRendererEndOfTrack;
class WaveformRendererPreroll;
Expand All @@ -28,7 +25,7 @@ class QmlWaveformRendererFactory : public QObject {
public:
struct Renderer {
::WaveformRendererAbstract* renderer{nullptr};
rendergraph::TreeNode* node{nullptr};
rendergraph::BaseNode* node{nullptr};
};

virtual Renderer create(WaveformWidgetRenderer* waveformWidget) const = 0;
Expand Down
7 changes: 0 additions & 7 deletions src/rendergraph/common/node.cpp

This file was deleted.

7 changes: 0 additions & 7 deletions src/rendergraph/common/opacitynode.cpp

This file was deleted.

12 changes: 4 additions & 8 deletions src/rendergraph/common/rendergraph/geometrynode.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,16 @@
#include "backend/basegeometrynode.h"
#include "rendergraph/geometry.h"
#include "rendergraph/material.h"
#include "rendergraph/treenode.h"
#include "rendergraph/nodeinterface.h"

namespace rendergraph {
class GeometryNode;
} // namespace rendergraph

class rendergraph::GeometryNode : public rendergraph::BaseGeometryNode,
public rendergraph::TreeNode {
class rendergraph::GeometryNode : public rendergraph::NodeInterface<rendergraph::BaseGeometryNode> {
public:
using rendergraph::TreeNode::appendChildNode;
using rendergraph::TreeNode::firstChild;
using rendergraph::TreeNode::lastChild;
using rendergraph::TreeNode::nextSibling;
using rendergraph::TreeNode::removeChildNode;
GeometryNode();
virtual ~GeometryNode() = default;

template<class T_Material>
void initForRectangles(int numRectangles) {
Expand All @@ -28,6 +23,7 @@ class rendergraph::GeometryNode : public rendergraph::BaseGeometryNode,
geometry().setDrawingMode(Geometry::DrawingMode::Triangles);
}

void setUsePreprocess(bool value);
void setMaterial(std::unique_ptr<Material> material);
void setGeometry(std::unique_ptr<Geometry> geometry);

Expand Down
11 changes: 2 additions & 9 deletions src/rendergraph/common/rendergraph/node.h
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
#pragma once

#include "backend/basenode.h"
#include "rendergraph/treenode.h"
#include "rendergraph/nodeinterface.h"

namespace rendergraph {
class Node;
} // namespace rendergraph

class rendergraph::Node : public rendergraph::BaseNode, public rendergraph::TreeNode {
public:
using rendergraph::TreeNode::appendChildNode;
using rendergraph::TreeNode::firstChild;
using rendergraph::TreeNode::lastChild;
using rendergraph::TreeNode::nextSibling;
using rendergraph::TreeNode::removeChildNode;
Node();
class rendergraph::Node : public rendergraph::NodeInterface<rendergraph::BaseNode> {
};
19 changes: 19 additions & 0 deletions src/rendergraph/common/rendergraph/nodeinterface.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once

#include "backend/basenode.h"

namespace rendergraph {

template<class T_Node>
class NodeInterface : public T_Node {
public:
void appendChildNode(std::unique_ptr<BaseNode>&& pNode) {
T_Node::appendChildNode(pNode.release());
}
std::unique_ptr<BaseNode> detachChildNode(BaseNode* pNode) {
T_Node::removeChildNode(pNode);
return std::unique_ptr<BaseNode>(pNode);
}
};

} // namespace rendergraph
12 changes: 2 additions & 10 deletions src/rendergraph/common/rendergraph/opacitynode.h
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
#pragma once

#include "backend/baseopacitynode.h"
#include "rendergraph/treenode.h"
#include "rendergraph/nodeinterface.h"

namespace rendergraph {
class OpacityNode;
} // namespace rendergraph

class rendergraph::OpacityNode : public rendergraph::BaseOpacityNode,
public rendergraph::TreeNode {
public:
using rendergraph::TreeNode::appendChildNode;
using rendergraph::TreeNode::firstChild;
using rendergraph::TreeNode::lastChild;
using rendergraph::TreeNode::nextSibling;
using rendergraph::TreeNode::removeChildNode;
OpacityNode();
class rendergraph::OpacityNode : public rendergraph::NodeInterface<rendergraph::BaseOpacityNode> {
};
63 changes: 0 additions & 63 deletions src/rendergraph/common/rendergraph/treenode.h

This file was deleted.

50 changes: 0 additions & 50 deletions src/rendergraph/common/treenode.cpp

This file was deleted.

12 changes: 6 additions & 6 deletions src/rendergraph/examples/common/examplenode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,18 @@ using namespace rendergraph;

ExampleNode::ExampleNode(rendergraph::Context* pContext) {
{
TreeNode::appendChildNode(std::make_unique<GeometryNode>());
auto pNode = static_cast<GeometryNode*>(TreeNode::lastChild());
auto pNode = std::make_unique<GeometryNode>();
pNode->initForRectangles<TextureMaterial>(1);
auto& material = dynamic_cast<TextureMaterial&>(pNode->material());
material.setTexture(std::make_unique<Texture>(
pContext, QImage(":/example/images/test.png")));
TexturedVertexUpdater vertexUpdater{
pNode->geometry().vertexDataAs<Geometry::TexturedPoint2D>()};
vertexUpdater.addRectangle({0, 0}, {100, 100}, {0.f, 0.f}, {1.f, 1.f});
appendChildNode(std::move(pNode));
}
{
TreeNode::appendChildNode(std::make_unique<GeometryNode>());
auto pNode = static_cast<GeometryNode*>(TreeNode::lastChild());
auto pNode = std::make_unique<GeometryNode>();
pNode->initForRectangles<rendergraph::UniColorMaterial>(2);
pNode->material().setUniform(1, QColor(255, 127, 0));
pNode->geometry().setDrawingMode(Geometry::DrawingMode::Triangles);
Expand All @@ -37,16 +36,17 @@ ExampleNode::ExampleNode(rendergraph::Context* pContext) {
.vertexDataAs<rendergraph::Geometry::Point2D>()};
vertexUpdater.addRectangle({100, 100}, {160, 160});
vertexUpdater.addRectangle({200, 160}, {240, 190});
appendChildNode(std::move(pNode));
}
{
TreeNode::appendChildNode(std::make_unique<GeometryNode>());
auto pNode = static_cast<GeometryNode*>(TreeNode::lastChild());
auto pNode = std::make_unique<GeometryNode>();
pNode->initForRectangles<rendergraph::RGBMaterial>(2);
pNode->geometry().setDrawingMode(Geometry::DrawingMode::Triangles);
rendergraph::RGBVertexUpdater vertexUpdater{
pNode->geometry().vertexDataAs<Geometry::RGBColoredPoint2D>()};
vertexUpdater.addRectangle({300, 100}, {340, 140}, {1.f, 0.f, 0.5f});
vertexUpdater.addRectangleHGradient(
{340, 100}, {440, 130}, {0.f, 1.f, 0.5f}, {0.5f, 0.f, 1.f});
appendChildNode(std::move(pNode));
}
}
4 changes: 2 additions & 2 deletions src/rendergraph/examples/gl_example/window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ void Window::closeEvent(QCloseEvent*) {
void Window::initializeGL() {
rendergraph::Context context;

auto node = std::make_unique<rendergraph::ExampleNode>(&context);
m_pEngine = std::make_unique<rendergraph::Engine>(std::move(node));
auto pExampleNode = std::make_unique<rendergraph::ExampleNode>(&context);
m_pEngine = std::make_unique<rendergraph::Engine>(std::move(pExampleNode));
}

void Window::resizeGL(int w, int h) {
Expand Down
2 changes: 1 addition & 1 deletion src/rendergraph/examples/sg_example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ target_include_directories(sg_example PRIVATE ../common)
target_compile_definitions(sg_example PRIVATE rendergraph=rendergraph_sg)

if(QT_VERSION VERSION_LESS "6.3.0")
set_target_properties(sg_example PROPERTIES AUTOMOC ON)
set_target_properties(sg_example PROPERTIES AUTOMOC ON)
endif()

qt_add_qml_module(sg_example
Expand Down
4 changes: 2 additions & 2 deletions src/rendergraph/examples/sg_example/customitem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ QSGNode* CustomItem::updatePaintNode(QSGNode* node, UpdatePaintNodeData*) {
material->setColor(QColor(255, 0, 0));

rendergraph::Context context(window());
m_pExampleNode = std::make_unique<rendergraph::ExampleNode>(&context);
auto pExampleNode = std::make_unique<rendergraph::ExampleNode>(&context);

bgNode->appendChildNode(m_pExampleNode->backendNode());
bgNode->appendChildNode(pExampleNode.release());

node = bgNode;
} else {
Expand Down
7 changes: 1 addition & 6 deletions src/rendergraph/examples/sg_example/customitem.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
#include <QQuickItem>
#include <memory>

namespace rendergraph {
class Node;
}
#include "rendergraph/node.h"

class CustomItem : public QQuickItem {
Q_OBJECT
Expand All @@ -21,9 +19,6 @@ class CustomItem : public QQuickItem {
void geometryChange(const QRectF& newGeometry, const QRectF& oldGeometry) override;

bool m_geometryChanged{};

private:
std::unique_ptr<rendergraph::Node> m_pExampleNode;
};

#endif // CUSTOMITEM_H
Loading
Loading