Blender
V5.0
source
blender
compositor
intern
implicit_input_operation.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2025 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "
BLI_assert.h
"
6
7
#include "
COM_implicit_input_operation.hh
"
8
#include "
COM_input_descriptor.hh
"
9
#include "
COM_operation.hh
"
10
#include "
COM_result.hh
"
11
12
namespace
blender::compositor
{
13
14
const
StringRef ImplicitInputOperation::output_identifier_ = StringRef(
"Output"
);
15
16
static
ResultType
get_implicit_input_result_type
(
const
ImplicitInput
implicit_input)
17
{
18
switch
(implicit_input) {
19
case
ImplicitInput::None
:
20
break
;
21
case
ImplicitInput::TextureCoordinates
:
22
return
ResultType::Float2
;
23
}
24
25
BLI_assert_unreachable
();
26
return
ResultType::Float2
;
27
}
28
29
ImplicitInputOperation::ImplicitInputOperation
(
Context
&
context
,
30
const
ImplicitInput
implicit_input)
31
:
Operation
(
context
), implicit_input_(implicit_input)
32
{
33
this->
populate_result
(output_identifier_,
34
context
.create_result(
get_implicit_input_result_type
(implicit_input)));
35
}
36
37
void
ImplicitInputOperation::execute
()
38
{
39
Result
&
result
= this->
get_result
();
40
41
switch
(implicit_input_) {
42
case
ImplicitInput::None
:
43
BLI_assert_unreachable
();
44
break
;
45
case
ImplicitInput::TextureCoordinates
:
46
const
int2
size
= this->
context
().
get_compositing_region_size
();
47
result.
wrap_external
(this->
context
().cache_manager().image_coordinates.get(
48
this->context(),
size
,
CoordinatesType::Uniform
));
49
}
50
}
51
52
Result
&
ImplicitInputOperation::get_result
()
53
{
54
return
Operation::get_result
(output_identifier_);
55
}
56
57
}
// namespace blender::compositor
BLI_assert.h
BLI_assert_unreachable
#define BLI_assert_unreachable()
Definition
BLI_assert.h:93
result
double result
Definition
BLI_expr_pylike_eval_test.cc:351
COM_implicit_input_operation.hh
COM_input_descriptor.hh
COM_operation.hh
COM_result.hh
size
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition
btDbvt.cpp:52
blender::compositor::Context
Definition
COM_context.hh:44
blender::compositor::Context::get_compositing_region_size
int2 get_compositing_region_size() const
Definition
compositor/intern/context.cc:80
blender::compositor::ImplicitInputOperation::ImplicitInputOperation
ImplicitInputOperation(Context &context, const ImplicitInput implicit_input)
Definition
implicit_input_operation.cc:29
blender::compositor::ImplicitInputOperation::execute
void execute() override
Definition
implicit_input_operation.cc:37
blender::compositor::ImplicitInputOperation::get_result
Result & get_result()
Definition
implicit_input_operation.cc:52
blender::compositor::Operation::get_result
Result & get_result(StringRef identifier)
Definition
operation.cc:39
blender::compositor::Operation::populate_result
void populate_result(StringRef identifier, Result result)
Definition
operation.cc:148
blender::compositor::Operation::Operation
Operation(Context &context)
Definition
operation.cc:22
blender::compositor::Operation::context
Context & context() const
Definition
operation.cc:163
blender::compositor::Result
Definition
COM_result.hh:100
blender::compositor::Result::wrap_external
void wrap_external(blender::gpu::Texture *texture)
Definition
result.cc:584
blender::compositor
Definition
BKE_node.hh:77
blender::compositor::get_implicit_input_result_type
static ResultType get_implicit_input_result_type(const ImplicitInput implicit_input)
Definition
implicit_input_operation.cc:16
blender::compositor::ImplicitInput
ImplicitInput
Definition
COM_input_descriptor.hh:33
blender::compositor::ImplicitInput::None
@ None
Definition
COM_input_descriptor.hh:35
blender::compositor::ImplicitInput::TextureCoordinates
@ TextureCoordinates
Definition
COM_input_descriptor.hh:37
blender::compositor::CoordinatesType::Uniform
@ Uniform
Definition
COM_image_coordinates.hh:21
blender::compositor::ResultType
ResultType
Definition
COM_result.hh:37
blender::compositor::ResultType::Float2
@ Float2
Definition
COM_result.hh:39
blender::int2
VecBase< int32_t, 2 > int2
Definition
BLI_math_vector_types.hh:601
Generated on
for Blender by
doxygen
1.16.1