summaryrefslogtreecommitdiff
path: root/vcl/opengl/SceneGraphRenderer.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2016-09-24 20:32:47 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2016-09-24 20:41:40 +0200
commitb4cf40e52f220f4d934468c8b99e2509ebc1a549 (patch)
tree7863cd0056265bc5c7d04d547833d1b4fbfc9f6e /vcl/opengl/SceneGraphRenderer.cxx
parent7ac5ccde2d7332b926df509d840f775a65d0c9dd (diff)
scenegraph: shared_ptr, findByName, SceneGraphFactoryfeature/sgexperiment
The change includes: * Use shared_ptr for the child nodes. * Every node can have a name and we can search for the node with findByName. * SceneGraphFactory class for easier initial construction of the scene graph. * RootNode has been removed as we can just use a simple empty Node with type ROOT. Change-Id: I7bee98cff6b46abb5c6baef25fc6f9bc084d4073
Diffstat (limited to 'vcl/opengl/SceneGraphRenderer.cxx')
-rw-r--r--vcl/opengl/SceneGraphRenderer.cxx21
1 files changed, 13 insertions, 8 deletions
diff --git a/vcl/opengl/SceneGraphRenderer.cxx b/vcl/opengl/SceneGraphRenderer.cxx
index 5763af96a32e..02ee75ea83d5 100644
--- a/vcl/opengl/SceneGraphRenderer.cxx
+++ b/vcl/opengl/SceneGraphRenderer.cxx
@@ -236,7 +236,7 @@ void addDrawPolyPolygon(RenderEntry& rRenderEntry,const basegfx::B2DPolyPolygon&
} // end anonymous namespace
-SceneGraphRenderer::SceneGraphRenderer(vcl::sg::RootNode& rRootNode, RenderList& rRenderList)
+SceneGraphRenderer::SceneGraphRenderer(vcl::sg::Node& rRootNode, RenderList& rRenderList)
: mrRootNode(rRootNode)
, mrRenderList(rRenderList)
{}
@@ -304,10 +304,13 @@ void SceneGraphRenderer::processBitmapNode(vcl::sg::BitmapNode* pBitmapNode)
void SceneGraphRenderer::processRectangleNode(vcl::sg::RectangleNode* pRectangleNode)
{
- float x1 = pRectangleNode->maRectangle.getMinX();
- float y1 = pRectangleNode->maRectangle.getMinY();
- float x2 = pRectangleNode->maRectangle.getMaxX();
- float y2 = pRectangleNode->maRectangle.getMaxY();
+ const vcl::sg::GeometryAttributes& rAttributes = pRectangleNode->getAttributes();
+ const basegfx::B2DRange& rRectangle = pRectangleNode->getRectangle();
+
+ float x1 = rRectangle.getMinX();
+ float y1 = rRectangle.getMinY();
+ float x2 = rRectangle.getMaxX();
+ float y2 = rRectangle.getMaxY();
if (pRectangleNode->mbNormalized)
{
@@ -321,12 +324,14 @@ void SceneGraphRenderer::processRectangleNode(vcl::sg::RectangleNode* pRectangle
RenderEntry& rRenderEntry = mrRenderList.getEntries().back();
- appendRectangle(rRenderEntry, x1, y1, x2, y2, pRectangleNode->maLineColor, pRectangleNode->maFillColor, 0.0f);
+ appendRectangle(rRenderEntry, x1, y1, x2, y2, rAttributes.maLineColor, rAttributes.maFillColor, 0.0f);
}
void SceneGraphRenderer::processPolyPolygonNode(vcl::sg::PolyPolygonNode* pPolyPolygonNode)
{
- basegfx::B2DPolyPolygon& rPolyPolygon(pPolyPolygonNode->maPolyPolygon);
+ const vcl::sg::GeometryAttributes& rAttributes = pPolyPolygonNode->getAttributes();
+
+ const basegfx::B2DPolyPolygon& rPolyPolygon(pPolyPolygonNode->getPolyPolygon());
basegfx::B2DRange aBoundingRect(rPolyPolygon.getB2DRange());
float x1 = aBoundingRect.getMinX();
@@ -338,7 +343,7 @@ void SceneGraphRenderer::processPolyPolygonNode(vcl::sg::PolyPolygonNode* pPolyP
RenderEntry& rRenderEntry = mrRenderList.getEntries().back();
- addDrawPolyPolygon(rRenderEntry, rPolyPolygon, 0.0, pPolyPolygonNode->maLineColor, pPolyPolygonNode->maFillColor, true);
+ addDrawPolyPolygon(rRenderEntry, rPolyPolygon, 0.0, rAttributes.maLineColor, rAttributes.maFillColor, true);
}
void SceneGraphRenderer::runChildren(vcl::sg::Node& rNode)