The idea is to skip building data-blocks referenced by ID properties for dependency graphs used by render pipeline and compositor preview. Those graphs do not use handlers, so it is not required to have custom references to data-blocks evaluated. This solves an initial hicckup and memory usage with file from #121188 when doing compositor. It also reduces the time until first pixel when hitting F12 on that file. Pull Request: https://projects.blender.org/blender/blender/pulls/123439
33 lines
753 B
C++
33 lines
753 B
C++
/* SPDX-FileCopyrightText: 2020 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup depsgraph
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "pipeline.h"
|
|
|
|
struct bNodeTree;
|
|
|
|
namespace blender::deg {
|
|
|
|
class CompositorBuilderPipeline : public AbstractBuilderPipeline {
|
|
public:
|
|
CompositorBuilderPipeline(::Depsgraph *graph, bNodeTree *nodetree);
|
|
|
|
protected:
|
|
unique_ptr<DepsgraphNodeBuilder> construct_node_builder() override;
|
|
unique_ptr<DepsgraphRelationBuilder> construct_relation_builder() override;
|
|
|
|
virtual void build_nodes(DepsgraphNodeBuilder &node_builder) override;
|
|
virtual void build_relations(DepsgraphRelationBuilder &relation_builder) override;
|
|
|
|
private:
|
|
bNodeTree *nodetree_;
|
|
};
|
|
|
|
} // namespace blender::deg
|