Example #1
0
QT_BEGIN_NAMESPACE

QSGAbstractSoftwareRenderer::QSGAbstractSoftwareRenderer(QSGRenderContext *context)
    : QSGRenderer(context)
    , m_background(new QSGSimpleRectNode)
    , m_nodeUpdater(new QSGSoftwareRenderableNodeUpdater(this))
{
    // Setup special background node
    auto backgroundRenderable = new QSGSoftwareRenderableNode(QSGSoftwareRenderableNode::SimpleRect, m_background);
    addNodeMapping(m_background, backgroundRenderable);
}
LayerUsageBreakdown LayerUsageBreakdown::CreateFromSelection()
{
	LayerUsageBreakdown bd;

	InitialiseVector(bd);

	GlobalSelectionSystem().foreachSelected([&](const scene::INodePtr& node)
	{
		addNodeMapping(bd, node);
	});

	return bd;
}
LayerUsageBreakdown LayerUsageBreakdown::CreateFromScene(bool includeHidden)
{
	LayerUsageBreakdown bd;

	InitialiseVector(bd);

	GlobalSceneGraph().foreachNode([&](const scene::INodePtr& node)
	{
		// Filter out any hidden nodes, unless we want them
		if (!includeHidden && !node->visible()) return false;

		// Consider only entities and primitives
		if (!Node_isPrimitive(node) && !Node_isEntity(node)) return true;

		addNodeMapping(bd, node);

		return true;
	});

	return bd;
}