diff options
Diffstat (limited to 'source/blender')
55 files changed, 231 insertions, 274 deletions
diff --git a/source/blender/draw/engines/compositor/compositor_engine.cc b/source/blender/draw/engines/compositor/compositor_engine.cc index f7272816d15..c1b568547c1 100644 --- a/source/blender/draw/engines/compositor/compositor_engine.cc +++ b/source/blender/draw/engines/compositor/compositor_engine.cc @@ -1,20 +1,5 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Copyright 2021, Blender Foundation. - */ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2022 Blender Foundation. All rights reserved. */ #include "BLI_math_vec_types.hh" @@ -28,7 +13,9 @@ #include "IMB_colormanagement.h" -#include "VPC_compositor_execute.hh" +#include "VPC_context.hh" +#include "VPC_evaluator.hh" +#include "VPC_texture_pool.hh" #include "GPU_texture.h" diff --git a/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc b/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc index d4b210f5e7b..1a9e19bbf0a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc +++ b/source/blender/nodes/composite/nodes/node_composite_alpha_over.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -79,7 +79,7 @@ class AlphaOverGPUMaterialNode : public GPUMaterialNode { const float premultiply_factor = get_premultiply_factor(); if (premultiply_factor != 0.0f) { GPU_stack_link(material, - &node(), + &bnode(), "node_composite_alpha_over_mixed", inputs, outputs, @@ -88,21 +88,21 @@ class AlphaOverGPUMaterialNode : public GPUMaterialNode { } if (get_use_premultiply()) { - GPU_stack_link(material, &node(), "node_composite_alpha_over_key", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_alpha_over_key", inputs, outputs); return; } - GPU_stack_link(material, &node(), "node_composite_alpha_over_premultiply", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_alpha_over_premultiply", inputs, outputs); } bool get_use_premultiply() { - return node().custom1; + return bnode().custom1; } float get_premultiply_factor() { - return ((NodeTwoFloats *)node().storage)->x; + return ((NodeTwoFloats *)bnode().storage)->x; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_brightness.cc b/source/blender/nodes/composite/nodes/node_composite_brightness.cc index dfad60dd688..bde0d1fcb29 100644 --- a/source/blender/nodes/composite/nodes/node_composite_brightness.cc +++ b/source/blender/nodes/composite/nodes/node_composite_brightness.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -70,7 +70,7 @@ class BrightContrastGPUMaterialNode : public GPUMaterialNode { const float use_premultiply = get_use_premultiply(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_bright_contrast", inputs, outputs, @@ -79,7 +79,7 @@ class BrightContrastGPUMaterialNode : public GPUMaterialNode { bool get_use_premultiply() { - return node().custom1; + return bnode().custom1; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc b/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc index a948a9d0611..9a7b17d0617 100644 --- a/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_channel_matte.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -120,7 +120,7 @@ class ChannelMatteGPUMaterialNode : public GPUMaterialNode { const float min_limit = get_min_limit(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_channel_matte", inputs, outputs, @@ -137,18 +137,18 @@ class ChannelMatteGPUMaterialNode : public GPUMaterialNode { * 4 -> CMP_NODE_CHANNEL_MATTE_CS_YCC */ int get_color_space() { - return node().custom1; + return bnode().custom1; } /* Get the index of the channel used to generate the matte. */ int get_matte_channel() { - return node().custom2 - 1; + return bnode().custom2 - 1; } NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } /* Get the index of the channel used to compute the limit value. */ diff --git a/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc b/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc index 4e9fddcdebf..9d14be2e947 100644 --- a/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_chroma_matte.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -91,7 +91,7 @@ class ChromaMatteGPUMaterialNode : public GPUMaterialNode { const float falloff = get_falloff(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_chroma_matte", inputs, outputs, @@ -102,7 +102,7 @@ class ChromaMatteGPUMaterialNode : public GPUMaterialNode { NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } float get_acceptance() diff --git a/source/blender/nodes/composite/nodes/node_composite_color_matte.cc b/source/blender/nodes/composite/nodes/node_composite_color_matte.cc index cfac17f43f0..d22b2dd3525 100644 --- a/source/blender/nodes/composite/nodes/node_composite_color_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_color_matte.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -90,7 +90,7 @@ class ColorMatteGPUMaterialNode : public GPUMaterialNode { const float value_epsilon = get_value_epsilon(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_color_matte", inputs, outputs, @@ -101,7 +101,7 @@ class ColorMatteGPUMaterialNode : public GPUMaterialNode { NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } float get_hue_epsilon() diff --git a/source/blender/nodes/composite/nodes/node_composite_color_spill.cc b/source/blender/nodes/composite/nodes/node_composite_color_spill.cc index b2544a12cdf..355661689d6 100644 --- a/source/blender/nodes/composite/nodes/node_composite_color_spill.cc +++ b/source/blender/nodes/composite/nodes/node_composite_color_spill.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -126,7 +126,7 @@ class ColorSpillGPUMaterialNode : public GPUMaterialNode { const float limit_scale = get_limit_scale(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_color_spill", inputs, outputs, @@ -139,7 +139,7 @@ class ColorSpillGPUMaterialNode : public GPUMaterialNode { /* Get the index of the channel used for spilling. */ int get_spill_channel() { - return node().custom1 - 1; + return bnode().custom1 - 1; } /* Get limiting algorithm. @@ -147,12 +147,12 @@ class ColorSpillGPUMaterialNode : public GPUMaterialNode { * 1 -> Average. */ int get_limiting_algorithm() { - return node().custom2; + return bnode().custom2; } NodeColorspill *get_node_color_spill() { - return static_cast<NodeColorspill *>(node().storage); + return static_cast<NodeColorspill *>(bnode().storage); } void get_spill_scale(float spill_scale[3]) diff --git a/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc b/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc index a50cdd5f60b..63a9c4de5f5 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorbalance.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -181,7 +181,7 @@ class ColorBalanceGPUMaterialNode : public GPUMaterialNode { if (get_color_balance_method() == 0) { GPU_stack_link(material, - &node(), + &bnode(), "node_composite_color_balance_lgg", inputs, outputs, @@ -192,7 +192,7 @@ class ColorBalanceGPUMaterialNode : public GPUMaterialNode { } GPU_stack_link(material, - &node(), + &bnode(), "node_composite_color_balance_asc_cdl", inputs, outputs, @@ -207,12 +207,12 @@ class ColorBalanceGPUMaterialNode : public GPUMaterialNode { * 1 -> ASC-CDL. */ int get_color_balance_method() { - return node().custom1; + return bnode().custom1; } NodeColorBalance *get_node_color_balance() { - return static_cast<NodeColorBalance *>(node().storage); + return static_cast<NodeColorBalance *>(bnode().storage); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc index 2de4b5e1270..7ced5689f46 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc +++ b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -313,7 +313,7 @@ class ColorCorrectionGPUMaterialNode : public GPUMaterialNode { const NodeColorCorrection *node_color_correction = get_node_color_correction(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_color_correction", inputs, outputs, @@ -346,13 +346,13 @@ class ColorCorrectionGPUMaterialNode : public GPUMaterialNode { void get_enabled_channels(float enabled_channels[3]) { for (int i = 0; i < 3; i++) { - enabled_channels[i] = (node().custom1 & (1 << i)) ? 1.0f : 0.0f; + enabled_channels[i] = (bnode().custom1 & (1 << i)) ? 1.0f : 0.0f; } } NodeColorCorrection *get_node_color_correction() { - return static_cast<NodeColorCorrection *>(node().storage); + return static_cast<NodeColorCorrection *>(bnode().storage); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_composite.cc b/source/blender/nodes/composite/nodes/node_composite_composite.cc index 72554b12162..74c031d6366 100644 --- a/source/blender/nodes/composite/nodes/node_composite_composite.cc +++ b/source/blender/nodes/composite/nodes/node_composite_composite.cc @@ -26,9 +26,10 @@ #include "UI_interface.h" #include "UI_resources.h" +#include "GPU_state.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" diff --git a/source/blender/nodes/composite/nodes/node_composite_crop.cc b/source/blender/nodes/composite/nodes/node_composite_crop.cc index 832d045e243..e0cfc43ae10 100644 --- a/source/blender/nodes/composite/nodes/node_composite_crop.cc +++ b/source/blender/nodes/composite/nodes/node_composite_crop.cc @@ -35,7 +35,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -172,17 +172,17 @@ class CropOperation : public NodeOperation { * outside of the cropping bounds will be set to a zero alpha value. */ bool get_is_image_crop() { - return node().custom1; + return bnode().custom1; } bool get_is_relative() { - return node().custom2; + return bnode().custom2; } NodeTwoXYs &get_node_two_xys() { - return *static_cast<NodeTwoXYs *>(node().storage); + return *static_cast<NodeTwoXYs *>(bnode().storage); } /* Returns true if the operation does nothing and the input can be passed through. */ diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.cc b/source/blender/nodes/composite/nodes/node_composite_curves.cc index 5782c5f6e2d..9fe4317708f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_curves.cc +++ b/source/blender/nodes/composite/nodes/node_composite_curves.cc @@ -30,7 +30,8 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -70,17 +71,17 @@ class TimeCurveOperation : public NodeOperation { CurveMapping *get_curve_mapping() { - return static_cast<CurveMapping *>(node().storage); + return static_cast<CurveMapping *>(bnode().storage); } int get_start_time() { - return node().custom1; + return bnode().custom1; } int get_end_time() { - return node().custom2; + return bnode().custom2; } float compute_normalized_time() @@ -176,7 +177,7 @@ class VectorCurvesGPUMaterialNode : public GPUMaterialNode { BKE_curvemapping_compute_range_dividers(curve_mapping, range_dividers); GPU_stack_link(material, - &node(), + &bnode(), "curves_vector", inputs, outputs, @@ -190,7 +191,7 @@ class VectorCurvesGPUMaterialNode : public GPUMaterialNode { CurveMapping *get_curve_mapping() { - return static_cast<CurveMapping *>(node().storage); + return static_cast<CurveMapping *>(bnode().storage); } }; @@ -273,7 +274,7 @@ class RGBCurvesGPUMaterialNode : public GPUMaterialNode { if (curve_mapping->tone == CURVE_TONE_FILMLIKE) { GPU_stack_link(material, - &node(), + &bnode(), "curves_film_like", inputs, outputs, @@ -291,7 +292,7 @@ class RGBCurvesGPUMaterialNode : public GPUMaterialNode { BKE_curvemapping_is_map_identity(curve_mapping, 1) && BKE_curvemapping_is_map_identity(curve_mapping, 2)) { GPU_stack_link(material, - &node(), + &bnode(), "curves_combined_only", inputs, outputs, @@ -305,7 +306,7 @@ class RGBCurvesGPUMaterialNode : public GPUMaterialNode { } GPU_stack_link(material, - &node(), + &bnode(), "curves_combined_rgb", inputs, outputs, @@ -319,7 +320,7 @@ class RGBCurvesGPUMaterialNode : public GPUMaterialNode { CurveMapping *get_curve_mapping() { - return static_cast<CurveMapping *>(node().storage); + return static_cast<CurveMapping *>(bnode().storage); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc b/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc index 180a5b03db1..3202f125a4a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_diff_matte.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -79,7 +79,7 @@ class DifferenceMatteGPUMaterialNode : public GPUMaterialNode { const float falloff = get_falloff(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_difference_matte", inputs, outputs, @@ -89,7 +89,7 @@ class DifferenceMatteGPUMaterialNode : public GPUMaterialNode { NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } float get_tolerance() diff --git a/source/blender/nodes/composite/nodes/node_composite_distance_matte.cc b/source/blender/nodes/composite/nodes/node_composite_distance_matte.cc index 2522cd7bdab..d2a5eceea8d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_distance_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_distance_matte.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -88,7 +88,7 @@ class DistanceMatteGPUMaterialNode : public GPUMaterialNode { if (get_color_space() == 1) { GPU_stack_link(material, - &node(), + &bnode(), "node_composite_distance_matte_rgba", inputs, outputs, @@ -98,7 +98,7 @@ class DistanceMatteGPUMaterialNode : public GPUMaterialNode { } GPU_stack_link(material, - &node(), + &bnode(), "node_composite_distance_matte_ycca", inputs, outputs, @@ -108,7 +108,7 @@ class DistanceMatteGPUMaterialNode : public GPUMaterialNode { NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } /* 0 -> YCCA diff --git a/source/blender/nodes/composite/nodes/node_composite_exposure.cc b/source/blender/nodes/composite/nodes/node_composite_exposure.cc index 9faceb0f1e3..c359e4f754a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_exposure.cc +++ b/source/blender/nodes/composite/nodes/node_composite_exposure.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -51,7 +51,7 @@ class ExposureGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_exposure", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_exposure", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.cc b/source/blender/nodes/composite/nodes/node_composite_filter.cc index 7bf296c9530..a829aa56e73 100644 --- a/source/blender/nodes/composite/nodes/node_composite_filter.cc +++ b/source/blender/nodes/composite/nodes/node_composite_filter.cc @@ -28,7 +28,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -92,7 +92,7 @@ class FilterOperation : public NodeOperation { int get_filter_method() { - return node().custom1; + return bnode().custom1; } void get_filter_kernel(float kernel[3][3]) diff --git a/source/blender/nodes/composite/nodes/node_composite_flip.cc b/source/blender/nodes/composite/nodes/node_composite_flip.cc index 41f90bc7685..14b7cf9948d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_flip.cc +++ b/source/blender/nodes/composite/nodes/node_composite_flip.cc @@ -30,7 +30,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -104,7 +104,7 @@ class FlipOperation : public NodeOperation { * 2 -> Flip along both x and y. */ int get_flip_mode() { - return node().custom1; + return bnode().custom1; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_gamma.cc b/source/blender/nodes/composite/nodes/node_composite_gamma.cc index 0a977d4a628..f489b9a66b8 100644 --- a/source/blender/nodes/composite/nodes/node_composite_gamma.cc +++ b/source/blender/nodes/composite/nodes/node_composite_gamma.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -56,7 +56,7 @@ class GammaGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_gamma", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_gamma", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc b/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc index c5fffde99ee..bb14d72f070 100644 --- a/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc +++ b/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -74,7 +74,7 @@ class HueSaturationValueGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_hue_saturation_value", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_hue_saturation_value", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc index ef81705d218..4aad7b12269 100644 --- a/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc +++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.cc @@ -25,7 +25,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -88,7 +88,7 @@ class HueCorrectGPUMaterialNode : public GPUMaterialNode { BKE_curvemapping_compute_range_dividers(curve_mapping, range_dividers); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_hue_correct", inputs, outputs, @@ -100,7 +100,7 @@ class HueCorrectGPUMaterialNode : public GPUMaterialNode { CurveMapping *get_curve_mapping() { - return static_cast<CurveMapping *>(node().storage); + return static_cast<CurveMapping *>(bnode().storage); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_image.cc b/source/blender/nodes/composite/nodes/node_composite_image.cc index b2c61f563bf..79d70343872 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.cc +++ b/source/blender/nodes/composite/nodes/node_composite_image.cc @@ -49,7 +49,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" /* **************** IMAGE (and RenderResult, multilayer image) ******************** */ @@ -507,8 +507,8 @@ class ImageOperation : public NodeOperation { GPUTexture *get_image_texture() { - Image *image = (Image *)node().id; - ImageUser *image_user = (ImageUser *)node().storage; + Image *image = (Image *)bnode().id; + ImageUser *image_user = (ImageUser *)bnode().storage; return BKE_image_get_gpu_texture(image, image_user, nullptr); } }; @@ -689,7 +689,7 @@ class RenderLayerOperation : public NodeOperation { void execute() override { - const int view_layer = node().custom1; + const int view_layer = bnode().custom1; GPUTexture *pass_texture = context().get_pass_texture(view_layer, SCE_PASS_COMBINED); const int width = GPU_texture_width(pass_texture); const int height = GPU_texture_height(pass_texture); diff --git a/source/blender/nodes/composite/nodes/node_composite_invert.cc b/source/blender/nodes/composite/nodes/node_composite_invert.cc index eabfd20b371..1e22293183e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_invert.cc +++ b/source/blender/nodes/composite/nodes/node_composite_invert.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -77,7 +77,7 @@ class InvertGPUMaterialNode : public GPUMaterialNode { const float do_alpha = get_do_alpha(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_invert", inputs, outputs, @@ -87,12 +87,12 @@ class InvertGPUMaterialNode : public GPUMaterialNode { bool get_do_rgb() { - return node().custom1 & CMP_CHAN_RGB; + return bnode().custom1 & CMP_CHAN_RGB; } bool get_do_alpha() { - return node().custom1 & CMP_CHAN_A; + return bnode().custom1 & CMP_CHAN_A; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_luma_matte.cc b/source/blender/nodes/composite/nodes/node_composite_luma_matte.cc index d8fb7a8e50b..d38e43b400d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_luma_matte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_luma_matte.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -81,7 +81,7 @@ class LuminanceMatteGPUMaterialNode : public GPUMaterialNode { IMB_colormanagement_get_luminance_coefficients(luminance_coefficients); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_luminance_matte", inputs, outputs, @@ -92,7 +92,7 @@ class LuminanceMatteGPUMaterialNode : public GPUMaterialNode { NodeChroma *get_node_chroma() { - return static_cast<NodeChroma *>(node().storage); + return static_cast<NodeChroma *>(bnode().storage); } float get_high() diff --git a/source/blender/nodes/composite/nodes/node_composite_map_range.cc b/source/blender/nodes/composite/nodes/node_composite_map_range.cc index d24e6179a1c..35e17f92d96 100644 --- a/source/blender/nodes/composite/nodes/node_composite_map_range.cc +++ b/source/blender/nodes/composite/nodes/node_composite_map_range.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -86,7 +86,7 @@ class MapRangeGPUMaterialNode : public GPUMaterialNode { const float should_clamp = get_should_clamp(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_map_range", inputs, outputs, @@ -95,7 +95,7 @@ class MapRangeGPUMaterialNode : public GPUMaterialNode { bool get_should_clamp() { - return node().custom1; + return bnode().custom1; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_map_value.cc b/source/blender/nodes/composite/nodes/node_composite_map_value.cc index c5ef1746860..3afe5196921 100644 --- a/source/blender/nodes/composite/nodes/node_composite_map_value.cc +++ b/source/blender/nodes/composite/nodes/node_composite_map_value.cc @@ -28,7 +28,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -89,7 +89,7 @@ class MapValueGPUMaterialNode : public GPUMaterialNode { const float use_max = get_use_max(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_map_value", inputs, outputs, @@ -103,7 +103,7 @@ class MapValueGPUMaterialNode : public GPUMaterialNode { TexMapping *get_texture_mapping() { - return static_cast<TexMapping *>(node().storage); + return static_cast<TexMapping *>(bnode().storage); } bool get_use_min() diff --git a/source/blender/nodes/composite/nodes/node_composite_math.cc b/source/blender/nodes/composite/nodes/node_composite_math.cc index 3ce17706b70..b4f3521f9a7 100644 --- a/source/blender/nodes/composite/nodes/node_composite_math.cc +++ b/source/blender/nodes/composite/nodes/node_composite_math.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "NOD_math_functions.hh" @@ -64,7 +64,7 @@ class MathGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), get_shader_function_name(), inputs, outputs); + GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs); if (!get_should_clamp()) { return; @@ -82,7 +82,7 @@ class MathGPUMaterialNode : public GPUMaterialNode { int get_mode() { - return node().custom1; + return bnode().custom1; } const char *get_shader_function_name() @@ -92,7 +92,7 @@ class MathGPUMaterialNode : public GPUMaterialNode { bool get_should_clamp() { - return node().custom2 & SHD_MATH_CLAMP; + return bnode().custom2 & SHD_MATH_CLAMP; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc index 6b0ec7447eb..233df0228d9 100644 --- a/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.cc @@ -27,7 +27,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -63,7 +63,7 @@ class MixRGBGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), get_shader_function_name(), inputs, outputs); + GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs); if (get_use_alpha()) { GPU_link(material, "multiply_by_alpha", inputs[0].link, inputs[1].link, &inputs[0].link); @@ -85,7 +85,7 @@ class MixRGBGPUMaterialNode : public GPUMaterialNode { int get_mode() { - return node().custom1; + return bnode().custom1; } const char *get_shader_function_name() @@ -135,12 +135,12 @@ class MixRGBGPUMaterialNode : public GPUMaterialNode { bool get_use_alpha() { - return node().custom2 & SHD_MIXRGB_USE_ALPHA; + return bnode().custom2 & SHD_MIXRGB_USE_ALPHA; } bool get_should_clamp() { - return node().custom2 & SHD_MIXRGB_CLAMP; + return bnode().custom2 & SHD_MIXRGB_CLAMP; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_movieclip.cc b/source/blender/nodes/composite/nodes/node_composite_movieclip.cc index d0edbd83cba..1b9165dd514 100644 --- a/source/blender/nodes/composite/nodes/node_composite_movieclip.cc +++ b/source/blender/nodes/composite/nodes/node_composite_movieclip.cc @@ -38,7 +38,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -263,7 +263,7 @@ class MovieClipOperation : public NodeOperation { GPUTexture *get_movie_clip_texture() { MovieClip *movie_clip = get_movie_clip(); - MovieClipUser *movie_clip_user = static_cast<MovieClipUser *>(node().storage); + MovieClipUser *movie_clip_user = static_cast<MovieClipUser *>(bnode().storage); BKE_movieclip_user_set_frame(movie_clip_user, context().get_scene()->r.cfra); return BKE_movieclip_get_gpu_texture(movie_clip, movie_clip_user); } @@ -276,7 +276,7 @@ class MovieClipOperation : public NodeOperation { MovieClip *get_movie_clip() { - return (MovieClip *)node().id; + return (MovieClip *)bnode().id; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_normal.cc b/source/blender/nodes/composite/nodes/node_composite_normal.cc index 0e0daaff32c..163463b1c86 100644 --- a/source/blender/nodes/composite/nodes/node_composite_normal.cc +++ b/source/blender/nodes/composite/nodes/node_composite_normal.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -55,7 +55,7 @@ class NormalGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *outputs = get_outputs_array(); GPU_stack_link(material, - &node(), + &bnode(), "node_composite_normal", inputs, outputs, diff --git a/source/blender/nodes/composite/nodes/node_composite_posterize.cc b/source/blender/nodes/composite/nodes/node_composite_posterize.cc index 3a01675bf9e..89f86c91fbb 100644 --- a/source/blender/nodes/composite/nodes/node_composite_posterize.cc +++ b/source/blender/nodes/composite/nodes/node_composite_posterize.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -55,7 +55,7 @@ class PosterizeGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_posterize", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_posterize", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_premulkey.cc b/source/blender/nodes/composite/nodes/node_composite_premulkey.cc index 5f74849f8db..9ee39fa599e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_premulkey.cc +++ b/source/blender/nodes/composite/nodes/node_composite_premulkey.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -59,18 +59,18 @@ class AlphaConvertGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *outputs = get_outputs_array(); if (get_mode() == 0) { - GPU_stack_link(material, &node(), "color_alpha_premultiply", inputs, outputs); + GPU_stack_link(material, &bnode(), "color_alpha_premultiply", inputs, outputs); return; } - GPU_stack_link(material, &node(), "color_alpha_unpremultiply", inputs, outputs); + GPU_stack_link(material, &bnode(), "color_alpha_unpremultiply", inputs, outputs); } /* 0 -> Premultiply Alpha. * 1 -> Unpremultiply Alpha. */ int get_mode() { - return node().custom1; + return bnode().custom1; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.cc b/source/blender/nodes/composite/nodes/node_composite_rgb.cc index e4528419ef4..5ee47fbc21c 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_rgb.cc @@ -25,7 +25,7 @@ #include "DNA_node_types.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -49,7 +49,7 @@ class RGBOperation : public NodeOperation { Result &result = get_result("RGBA"); result.allocate_single_value(); - const bNodeSocket *socket = static_cast<bNodeSocket *>(node().outputs.first); + const bNodeSocket *socket = static_cast<bNodeSocket *>(bnode().outputs.first); float4 color = float4(static_cast<bNodeSocketValueRGBA *>(socket->default_value)->value); result.set_color_value(color); diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.cc b/source/blender/nodes/composite/nodes/node_composite_rotate.cc index 8cd1ce1688d..be1fe727e2e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rotate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_rotate.cc @@ -27,7 +27,7 @@ #include "UI_interface.h" #include "UI_resources.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -81,7 +81,7 @@ class RotateOperation : public NodeOperation { Interpolation get_interpolation() { - switch (node().custom1) { + switch (bnode().custom1) { case 0: return Interpolation::Nearest; case 1: diff --git a/source/blender/nodes/composite/nodes/node_composite_scene_time.cc b/source/blender/nodes/composite/nodes/node_composite_scene_time.cc index 40bc545ef8b..13e56598ccf 100644 --- a/source/blender/nodes/composite/nodes/node_composite_scene_time.cc +++ b/source/blender/nodes/composite/nodes/node_composite_scene_time.cc @@ -17,7 +17,7 @@ * \ingroup cmpnodes */ -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcomb_hsva.cc b/source/blender/nodes/composite/nodes/node_composite_sepcomb_hsva.cc index a740384bbce..145a5b00fd4 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcomb_hsva.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcomb_hsva.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -53,7 +53,7 @@ class SeparateHSVAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_separate_hsva", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_separate_hsva", inputs, outputs); } }; @@ -105,7 +105,7 @@ class CombineHSVAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_combine_hsva", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_combine_hsva", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcomb_rgba.cc b/source/blender/nodes/composite/nodes/node_composite_sepcomb_rgba.cc index 03a2867d5d8..704f46ea2e1 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcomb_rgba.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcomb_rgba.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -53,7 +53,7 @@ class SeparateRGBAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_separate_rgba", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_separate_rgba", inputs, outputs); } }; @@ -105,7 +105,7 @@ class CombineRGBAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_combine_rgba", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_combine_rgba", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcomb_xyz.cc b/source/blender/nodes/composite/nodes/node_composite_sepcomb_xyz.cc index 5b56224b2c5..361854b2712 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcomb_xyz.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcomb_xyz.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -50,7 +50,7 @@ class SeparateXYZGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_separate_xyz", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_separate_xyz", inputs, outputs); } }; @@ -97,7 +97,7 @@ class CombineXYZGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_combine_xyz", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_combine_xyz", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcomb_ycca.cc b/source/blender/nodes/composite/nodes/node_composite_sepcomb_ycca.cc index 691d7913e26..122633de92e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcomb_ycca.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcomb_ycca.cc @@ -25,7 +25,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -60,12 +60,12 @@ class SeparateYCCAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), get_shader_function_name(), inputs, outputs); + GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs); } int get_mode() { - return node().custom1; + return bnode().custom1; } const char *get_shader_function_name() @@ -146,12 +146,12 @@ class CombineYCCAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), get_shader_function_name(), inputs, outputs); + GPU_stack_link(material, &bnode(), get_shader_function_name(), inputs, outputs); } int get_mode() { - return node().custom1; + return bnode().custom1; } const char *get_shader_function_name() diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcomb_yuva.cc b/source/blender/nodes/composite/nodes/node_composite_sepcomb_yuva.cc index 383b670a07f..83ba4aa6022 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcomb_yuva.cc +++ b/source/blender/nodes/composite/nodes/node_composite_sepcomb_yuva.cc @@ -23,7 +23,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -53,7 +53,7 @@ class SeparateYUVAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_separate_yuva_itu_709", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_separate_yuva_itu_709", inputs, outputs); } }; @@ -105,7 +105,7 @@ class CombineYUVAGPUMaterialNode : public GPUMaterialNode { GPUNodeStack *inputs = get_inputs_array(); GPUNodeStack *outputs = get_outputs_array(); - GPU_stack_link(material, &node(), "node_composite_combine_yuva_itu_709", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_combine_yuva_itu_709", inputs, outputs); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_setalpha.cc b/source/blender/nodes/composite/nodes/node_composite_setalpha.cc index e5f9af1634c..d1ff3dc9704 100644 --- a/source/blender/nodes/composite/nodes/node_composite_setalpha.cc +++ b/source/blender/nodes/composite/nodes/node_composite_setalpha.cc @@ -26,7 +26,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -73,16 +73,16 @@ class SetAlphaGPUMaterialNode : public GPUMaterialNode { const NodeSetAlpha *node_set_alpha = get_node_set_alpha(); if (node_set_alpha->mode == CMP_NODE_SETALPHA_MODE_APPLY) { - GPU_stack_link(material, &node(), "node_composite_set_alpha_apply", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_set_alpha_apply", inputs, outputs); return; } - GPU_stack_link(material, &node(), "node_composite_set_alpha_replace", inputs, outputs); + GPU_stack_link(material, &bnode(), "node_composite_set_alpha_replace", inputs, outputs); } NodeSetAlpha *get_node_set_alpha() { - return static_cast<NodeSetAlpha *>(node().storage); + return static_cast<NodeSetAlpha *>(bnode().storage); } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_split_viewer.cc b/source/blender/nodes/composite/nodes/node_composite_split_viewer.cc index a7f23e41c84..2f041a5c70f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_split_viewer.cc +++ b/source/blender/nodes/composite/nodes/node_composite_split_viewer.cc @@ -31,7 +31,7 @@ #include "GPU_shader.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -119,12 +119,12 @@ class ViewerOperation : public NodeOperation { * 1 -> Split Vertical. */ int get_split_axis() { - return node().custom2; + return bnode().custom2; } float get_split_ratio() { - return node().custom1 / 100.0f; + return bnode().custom1 / 100.0f; } }; diff --git a/source/blender/nodes/composite/nodes/node_composite_transform.cc b/source/blender/nodes/composite/nodes/node_composite_transform.cc index 560081ff58f..c35864e6608 100644 --- a/source/blender/nodes/composite/nodes/node_composite_transform.cc +++ b/source/blender/nodes/composite/nodes/node_composite_transform.cc @@ -28,7 +28,7 @@ #include "UI_interface.h" #include "UI_resources.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -96,7 +96,7 @@ class TransformOperation : public NodeOperation { Interpolation get_interpolation() { - switch (node().custom1) { + switch (bnode().custom1) { case 0: return Interpolation::Nearest; case 1: diff --git a/source/blender/nodes/composite/nodes/node_composite_translate.cc b/source/blender/nodes/composite/nodes/node_composite_translate.cc index b95a41dba24..d8e9997a9d9 100644 --- a/source/blender/nodes/composite/nodes/node_composite_translate.cc +++ b/source/blender/nodes/composite/nodes/node_composite_translate.cc @@ -27,7 +27,7 @@ #include "UI_interface.h" #include "UI_resources.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -94,7 +94,7 @@ class TranslateOperation : public NodeOperation { NodeTranslateData &get_node_translate() { - return *static_cast<NodeTranslateData *>(node().storage); + return *static_cast<NodeTranslateData *>(bnode().storage); } bool get_use_relative() diff --git a/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc b/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc index fe1ba924e7e..4c02182eb38 100644 --- a/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc +++ b/source/blender/nodes/composite/nodes/node_composite_val_to_rgb.cc @@ -29,7 +29,7 @@ #include "GPU_material.h" -#include "VPC_compositor_execute.hh" +#include "VPC_gpu_material_node.hh" #include "node_composite_util.hh" @@ -75,7 +75,7 @@ class ColorRampGPUMaterialNode : public GPUMaterialNode { mul_bias[0] = 1.0f / (color_band->data[1].pos - color_band->data[0].pos); mul_bias[1] = -mul_bias[0] * color_band->data[0].pos; GPU_stack_link(material, - &node(), + &bnode(), "valtorgb_opti_linear", inputs, outputs, @@ -86,7 +86,7 @@ class ColorRampGPUMaterialNode : public GPUMaterialNode { case COLBAND_INTERP_CONSTANT: mul_bias[1] = max_ff(color_band->data[0].pos, color_band->data[1].pos); GPU_stack_link(material, - &node(), + &bnode(), "valtorgb_opti_constant", inputs, outputs, @@ -98,7 +98,7 @@ class ColorRampGPUMaterialNode : public GPUMaterialNode { mul_bias[0] = 1.0f / (color_band->data[1].pos - color_band->data[0].pos); mul_bias[1] = -mul_bias[0] * color_band->data[0].pos; GPU_stack_link(material, - &node(), + &bnode(), "valtorgb_opti_ease", inputs, outputs, @@ -119,16 +119,16 @@ class ColorRampGPUMaterialNode : public GPUMaterialNode { if (color_band->ipotype == COLBAND_INTERP_CONSTANT) { GPU_stack_link( - material, &node(), "valtorgb_nearest", inputs, outputs, tex, GPU_constant(&layer)); + material, &bnode(), "valtorgb_nearest", inputs, outputs, tex, GPU_constant(&layer)); return; } - GPU_stack_link(material, &node(), "valtorgb", inputs, outputs, tex, GPU_constant(&layer)); + GPU_stack_link(material, &bnode(), "valtorgb", inputs, outputs, tex, GPU_constant(&layer)); } struct ColorBand *get_color_band() { - return static_cast<struct ColorBand *>(node().storage); + return static_cast<struct ColorBand *>(bnode().storage); } }; @@ -182,7 +182,7 @@ class RGBToBWGPUMaterialNode : public GPUMaterialNode { IMB_colormanagement_get_luminance_coefficients(luminance_coefficients); GPU_stack_link(material, - &node(), + &bnode(), "color_to_luminance", inputs, outputs, diff --git a/source/blender/nodes/composite/nodes/node_composite_value.cc b/source/blender/nodes/composite/nodes/node_composite_value.cc index 2715207243d..51990c6f3ca 100644 --- a/source/blender/nodes/composite/nodes/node_composite_value.cc +++ b/source/blender/nodes/composite/nodes/node_composite_value.cc @@ -21,7 +21,7 @@ * \ingroup cmpnodes */ -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" @@ -45,7 +45,7 @@ class ValueOperation : public NodeOperation { Result &result = get_result("Value"); result.allocate_single_value(); - const bNodeSocket *socket = static_cast<bNodeSocket *>(node().outputs.first); + const bNodeSocket *socket = static_cast<bNodeSocket *>(bnode().outputs.first); float value = static_cast<bNodeSocketValueFloat *>(socket->default_value)->value; result.set_float_value(value); diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.cc b/source/blender/nodes/composite/nodes/node_composite_viewer.cc index 9621f881b71..86adc411689 100644 --- a/source/blender/nodes/composite/nodes/node_composite_viewer.cc +++ b/source/blender/nodes/composite/nodes/node_composite_viewer.cc @@ -29,9 +29,10 @@ #include "UI_interface.h" #include "UI_resources.h" +#include "GPU_state.h" #include "GPU_texture.h" -#include "VPC_compositor_execute.hh" +#include "VPC_node_operation.hh" #include "node_composite_util.hh" diff --git a/source/blender/viewport_compositor/CMakeLists.txt b/source/blender/viewport_compositor/CMakeLists.txt index ace74bf9116..1c9362f2c74 100644 --- a/source/blender/viewport_compositor/CMakeLists.txt +++ b/source/blender/viewport_compositor/CMakeLists.txt @@ -16,10 +16,11 @@ set(INC set(SRC - intern/compositor_execute.cc + intern/compiler.cc intern/context.cc intern/conversion_processor_operation.cc intern/domain.cc + intern/evaluator.cc intern/gpu_material_node.cc intern/gpu_material_operation.cc intern/node_operation.cc @@ -32,10 +33,11 @@ set(SRC intern/texture_pool.cc intern/utilities.cc - VPC_compositor_execute.hh + VPC_compiler.hh VPC_context.hh VPC_conversion_processor_operation.hh VPC_domain.hh + VPC_evaluator.hh VPC_gpu_material_node.hh VPC_gpu_material_operation.hh VPC_input_descriptor.hh diff --git a/source/blender/viewport_compositor/VPC_compositor_execute.hh b/source/blender/viewport_compositor/VPC_compiler.hh index ef78ed52eae..febbc5be99e 100644 --- a/source/blender/viewport_compositor/VPC_compositor_execute.hh +++ b/source/blender/viewport_compositor/VPC_compiler.hh @@ -3,42 +3,21 @@ #pragma once -#include <cstdint> -#include <memory> - -#include "BLI_map.hh" -#include "BLI_math_vec_types.hh" -#include "BLI_transformation_2d.hh" #include "BLI_vector.hh" -#include "BLI_vector_set.hh" #include "DNA_node_types.h" -#include "DNA_scene_types.h" - -#include "GPU_material.h" -#include "GPU_shader.h" -#include "GPU_texture.h" #include "NOD_derived_node_tree.hh" #include "VPC_context.hh" -#include "VPC_domain.hh" -#include "VPC_gpu_material_node.hh" #include "VPC_gpu_material_operation.hh" #include "VPC_node_operation.hh" #include "VPC_operation.hh" -#include "VPC_result.hh" -#include "VPC_scheduler.hh" -#include "VPC_texture_pool.hh" namespace blender::viewport_compositor { using namespace nodes::derived_node_tree_types; -/* -------------------------------------------------------------------- - * GPU Material Compile Group - */ - /* A class that represents a sequence of scheduled nodes that can be compiled together into a * single GPUMaterialOperation. The compiler keeps a single instance of this class when compiling * the node schedule to keep track of nodes that will be compiled together. During complication, @@ -53,7 +32,7 @@ using namespace nodes::derived_node_tree_types; class GPUMaterialCompileGroup { private: /* The contiguous subset of the execution node schedule that is part of this group. */ - Schedule sub_schedule_; + SubSchedule sub_schedule_; public: /* Add the given node to the GPU material compile group. */ @@ -77,7 +56,7 @@ class GPUMaterialCompileGroup { void reset(); /* Returns the contiguous subset of the execution node schedule that is part of this group. */ - Schedule &get_sub_schedule(); + SubSchedule &get_sub_schedule(); }; /* -------------------------------------------------------------------- @@ -163,25 +142,4 @@ class Compiler { Result &get_output_socket_result(DOutputSocket output); }; -/* -------------------------------------------------------------------- - * Evaluator. - */ - -/* The main class of the viewport compositor. The evaluator compiles the compositor node tree into - * a stream of operations that are then executed to compute the output of the compositor. */ -class Evaluator { - private: - /* The compiler instance used to compile the compositor node tree. */ - Compiler compiler_; - - public: - Evaluator(Context &context, bNodeTree *node_tree); - - /* Compile the compositor node tree into an operations stream. */ - void compile(); - - /* Evaluate the compiled operations stream. */ - void evaluate(); -}; - } // namespace blender::viewport_compositor diff --git a/source/blender/viewport_compositor/VPC_evaluator.hh b/source/blender/viewport_compositor/VPC_evaluator.hh new file mode 100644 index 00000000000..9421ab87b50 --- /dev/null +++ b/source/blender/viewport_compositor/VPC_evaluator.hh @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2022 Blender Foundation. All rights reserved. */ + +#pragma once + +#include "DNA_node_types.h" + +#include "VPC_compiler.hh" +#include "VPC_context.hh" + +namespace blender::viewport_compositor { + +/* -------------------------------------------------------------------- + * Evaluator. + */ + +/* The main class of the viewport compositor. The evaluator compiles the compositor node tree into + * a stream of operations that are then executed to compute the output of the compositor. */ +class Evaluator { + private: + /* The compiler instance used to compile the compositor node tree. */ + Compiler compiler_; + + public: + Evaluator(Context &context, bNodeTree *node_tree); + + /* Compile the compositor node tree into an operations stream. */ + void compile(); + + /* Evaluate the compiled operations stream. */ + void evaluate(); +}; + +} // namespace blender::viewport_compositor diff --git a/source/blender/viewport_compositor/VPC_gpu_material_node.hh b/source/blender/viewport_compositor/VPC_gpu_material_node.hh index 3358c3f15db..c9062d0b012 100644 --- a/source/blender/viewport_compositor/VPC_gpu_material_node.hh +++ b/source/blender/viewport_compositor/VPC_gpu_material_node.hh @@ -51,7 +51,7 @@ class GPUMaterialNode { protected: /* Returns a reference to the node this operations represents. */ - bNode &node() const; + bNode &bnode() const; private: /* Populate the inputs of the node. The input link is set to nullptr and is expected to be diff --git a/source/blender/viewport_compositor/VPC_node_operation.hh b/source/blender/viewport_compositor/VPC_node_operation.hh index ee4b3235982..6a508a1b29f 100644 --- a/source/blender/viewport_compositor/VPC_node_operation.hh +++ b/source/blender/viewport_compositor/VPC_node_operation.hh @@ -40,7 +40,7 @@ class NodeOperation : public Operation { NodeOperation(Context &context, DNode node); /* Returns a reference to the node this operations represents. */ - const bNode &node() const; + const bNode &bnode() const; protected: /* Returns true if the output identified by the given identifier is needed and should be diff --git a/source/blender/viewport_compositor/intern/compositor_execute.cc b/source/blender/viewport_compositor/intern/compiler.cc index 78c4f360ffd..0b7134c3027 100644 --- a/source/blender/viewport_compositor/intern/compositor_execute.cc +++ b/source/blender/viewport_compositor/intern/compiler.cc @@ -1,53 +1,18 @@ /* SPDX-License-Identifier: GPL-2.0-or-later * Copyright 2022 Blender Foundation. All rights reserved. */ -#include <limits> -#include <memory> -#include <string> - -#include "BLI_assert.h" -#include "BLI_hash.hh" -#include "BLI_listbase.h" -#include "BLI_map.hh" -#include "BLI_math_vec_types.hh" -#include "BLI_math_vector.h" -#include "BLI_stack.hh" -#include "BLI_transformation_2d.hh" -#include "BLI_utildefines.h" -#include "BLI_vector.hh" #include "BLI_vector_set.hh" -#include "BKE_node.h" - #include "DNA_node_types.h" -#include "DNA_scene_types.h" - -#include "GPU_compute.h" -#include "GPU_material.h" -#include "GPU_shader.h" -#include "GPU_texture.h" -#include "GPU_uniform_buffer.h" - -#include "gpu_shader_create_info.hh" - -#include "IMB_colormanagement.h" #include "NOD_derived_node_tree.hh" -#include "NOD_node_declaration.hh" - -#include "MEM_guardedalloc.h" -#include "VPC_compositor_execute.hh" +#include "VPC_compiler.hh" #include "VPC_context.hh" -#include "VPC_domain.hh" #include "VPC_gpu_material_node.hh" -#include "VPC_gpu_material_operation.hh" -#include "VPC_input_descriptor.hh" #include "VPC_node_operation.hh" #include "VPC_operation.hh" -#include "VPC_result.hh" #include "VPC_scheduler.hh" -#include "VPC_texture_pool.hh" #include "VPC_utilities.hh" namespace blender::viewport_compositor { @@ -237,24 +202,4 @@ Result &Compiler::get_output_socket_result(DOutputSocket output) return operation->get_result(operation->get_output_identifier_from_output_socket(output)); } -/* -------------------------------------------------------------------- - * Evaluator. - */ - -Evaluator::Evaluator(Context &context, bNodeTree *node_tree) : compiler_(context, node_tree) -{ -} - -void Evaluator::compile() -{ - compiler_.compile(); -} - -void Evaluator::evaluate() -{ - for (Operation *operation : compiler_.operations_stream()) { - operation->evaluate(); - } -} - } // namespace blender::viewport_compositor diff --git a/source/blender/viewport_compositor/intern/evaluator.cc b/source/blender/viewport_compositor/intern/evaluator.cc new file mode 100644 index 00000000000..e7a9a27ecb4 --- /dev/null +++ b/source/blender/viewport_compositor/intern/evaluator.cc @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2022 Blender Foundation. All rights reserved. */ + +#include "DNA_node_types.h" + +#include "VPC_context.hh" +#include "VPC_evaluator.hh" +#include "VPC_operation.hh" + +namespace blender::viewport_compositor { + +Evaluator::Evaluator(Context &context, bNodeTree *node_tree) : compiler_(context, node_tree) +{ +} + +void Evaluator::compile() +{ + compiler_.compile(); +} + +void Evaluator::evaluate() +{ + for (Operation *operation : compiler_.operations_stream()) { + operation->evaluate(); + } +} + +} // namespace blender::viewport_compositor diff --git a/source/blender/viewport_compositor/intern/gpu_material_node.cc b/source/blender/viewport_compositor/intern/gpu_material_node.cc index 935b891ae79..c6d91fdf81f 100644 --- a/source/blender/viewport_compositor/intern/gpu_material_node.cc +++ b/source/blender/viewport_compositor/intern/gpu_material_node.cc @@ -33,7 +33,7 @@ GPUNodeStack *GPUMaterialNode::get_outputs_array() return outputs_.data(); } -bNode &GPUMaterialNode::node() const +bNode &GPUMaterialNode::bnode() const { return *node_->bnode(); } diff --git a/source/blender/viewport_compositor/intern/node_operation.cc b/source/blender/viewport_compositor/intern/node_operation.cc index e9580d156d1..6be76d87b94 100644 --- a/source/blender/viewport_compositor/intern/node_operation.cc +++ b/source/blender/viewport_compositor/intern/node_operation.cc @@ -45,7 +45,7 @@ NodeOperation::NodeOperation(Context &context, DNode node) : Operation(context), populate_results_for_unlinked_inputs(); } -const bNode &NodeOperation::node() const +const bNode &NodeOperation::bnode() const { return *node_->bnode(); } |