Blender
V3.3
source
blender
compositor
operations
COM_KeyingScreenOperation.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2012 Blender Foundation. */
3
4
#pragma once
5
6
#include <
string.h
>
7
8
#include "
COM_MultiThreadedOperation.h
"
9
10
#include "
DNA_movieclip_types.h
"
11
12
#include "
BLI_listbase.h
"
13
#include "
BLI_string.h
"
14
15
#include "
BLI_voronoi_2d.h
"
16
17
namespace
blender::compositor
{
18
22
class
KeyingScreenOperation
:
public
MultiThreadedOperation
{
23
protected
:
24
typedef
struct
TriangulationData
{
25
VoronoiTriangulationPoint
*
triangulated_points
;
26
int (*
triangles
)[3];
27
int
triangulated_points_total
,
triangles_total
;
28
rcti
*
triangles_AABB
;
29
}
TriangulationData
;
30
31
/* TODO(manzanilla): rename to #TrianguledArea on removing tiled implementation. */
32
typedef
struct
TileData
{
33
int
*
triangles
;
34
int
triangles_total
;
35
}
TileData
;
36
37
MovieClip
*
movie_clip_
;
38
int
framenumber_
;
39
TriangulationData
*
cached_triangulation_
;
40
char
tracking_object_
[64];
41
45
void
determine_canvas
(
const
rcti
&preferred_area,
rcti
&r_area)
override
;
46
47
TriangulationData
*
build_voronoi_triangulation
();
48
49
public
:
50
KeyingScreenOperation
();
51
52
void
init_execution
()
override
;
53
void
deinit_execution
()
override
;
54
55
void
*
initialize_tile_data
(
rcti
*rect)
override
;
56
void
deinitialize_tile_data
(
rcti
*rect,
void
*
data
)
override
;
57
58
void
set_movie_clip
(
MovieClip
*clip)
59
{
60
movie_clip_
= clip;
61
}
62
void
set_tracking_object
(
const
char
*
object
)
63
{
64
BLI_strncpy
(
tracking_object_
,
object
,
sizeof
(
tracking_object_
));
65
}
66
void
set_framenumber
(
int
framenumber)
67
{
68
framenumber_
= framenumber;
69
}
70
71
void
execute_pixel
(
float
output
[4],
int
x
,
int
y
,
void
*
data
)
override
;
72
73
void
update_memory_buffer_partial
(
MemoryBuffer
*
output
,
74
const
rcti
&
area
,
75
Span<MemoryBuffer *>
inputs
)
override
;
76
77
private
:
78
TileData
*triangulate(
const
rcti
*rect);
79
};
80
81
}
// namespace blender::compositor
x
x
Definition:
BLI_expr_pylike_eval_test.cc:342
BLI_listbase.h
BLI_string.h
BLI_strncpy
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
Definition:
string.c:64
BLI_voronoi_2d.h
COM_MultiThreadedOperation.h
DNA_movieclip_types.h
y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
Definition:
GPU_legacy_stubs.h:190
data
data
Definition:
bmesh_operator_api_inline.h:157
blender::Span
Definition:
BLI_span.hh:73
blender::compositor::KeyingScreenOperation
Definition:
COM_KeyingScreenOperation.h:22
blender::compositor::KeyingScreenOperation::initialize_tile_data
void * initialize_tile_data(rcti *rect) override
Definition:
COM_KeyingScreenOperation.cc:258
blender::compositor::KeyingScreenOperation::cached_triangulation_
TriangulationData * cached_triangulation_
Definition:
COM_KeyingScreenOperation.h:39
blender::compositor::KeyingScreenOperation::update_memory_buffer_partial
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition:
COM_KeyingScreenOperation.cc:341
blender::compositor::KeyingScreenOperation::set_tracking_object
void set_tracking_object(const char *object)
Definition:
COM_KeyingScreenOperation.h:62
blender::compositor::KeyingScreenOperation::deinitialize_tile_data
void deinitialize_tile_data(rcti *rect, void *data) override
Definition:
COM_KeyingScreenOperation.cc:275
blender::compositor::KeyingScreenOperation::movie_clip_
MovieClip * movie_clip_
Definition:
COM_KeyingScreenOperation.h:37
blender::compositor::KeyingScreenOperation::set_framenumber
void set_framenumber(int framenumber)
Definition:
COM_KeyingScreenOperation.h:66
blender::compositor::KeyingScreenOperation::KeyingScreenOperation
KeyingScreenOperation()
Definition:
COM_KeyingScreenOperation.cc:16
blender::compositor::KeyingScreenOperation::set_movie_clip
void set_movie_clip(MovieClip *clip)
Definition:
COM_KeyingScreenOperation.h:58
blender::compositor::KeyingScreenOperation::deinit_execution
void deinit_execution() override
Definition:
COM_KeyingScreenOperation.cc:40
blender::compositor::KeyingScreenOperation::init_execution
void init_execution() override
Definition:
COM_KeyingScreenOperation.cc:26
blender::compositor::KeyingScreenOperation::tracking_object_
char tracking_object_[64]
Definition:
COM_KeyingScreenOperation.h:40
blender::compositor::KeyingScreenOperation::framenumber_
int framenumber_
Definition:
COM_KeyingScreenOperation.h:38
blender::compositor::KeyingScreenOperation::determine_canvas
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
Definition:
COM_KeyingScreenOperation.cc:286
blender::compositor::KeyingScreenOperation::TileData
struct blender::compositor::KeyingScreenOperation::TileData TileData
blender::compositor::KeyingScreenOperation::TriangulationData
struct blender::compositor::KeyingScreenOperation::TriangulationData TriangulationData
blender::compositor::KeyingScreenOperation::build_voronoi_triangulation
TriangulationData * build_voronoi_triangulation()
Definition:
COM_KeyingScreenOperation.cc:63
blender::compositor::KeyingScreenOperation::execute_pixel
void execute_pixel(float output[4], int x, int y, void *data) override
calculate a single pixel
Definition:
COM_KeyingScreenOperation.cc:303
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::MultiThreadedOperation
Definition:
COM_MultiThreadedOperation.h:10
output
ccl_global KernelShaderEvalInput ccl_global float * output
Definition:
kernel/device/gpu/kernel.h:751
blender::compositor
Definition:
COM_defines.h:10
blender::compositor::area
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition:
COM_SMAAOperation.cc:113
inputs
static bNodeSocketTemplate inputs[]
Definition:
node_texture_at.c:11
string.h
MovieClip
Definition:
DNA_movieclip_types.h:58
VoronoiTriangulationPoint
Definition:
BLI_voronoi_2d.h:45
blender::compositor::KeyingScreenOperation::TileData
Definition:
COM_KeyingScreenOperation.h:32
blender::compositor::KeyingScreenOperation::TileData::triangles
int * triangles
Definition:
COM_KeyingScreenOperation.h:33
blender::compositor::KeyingScreenOperation::TileData::triangles_total
int triangles_total
Definition:
COM_KeyingScreenOperation.h:34
blender::compositor::KeyingScreenOperation::TriangulationData
Definition:
COM_KeyingScreenOperation.h:24
blender::compositor::KeyingScreenOperation::TriangulationData::triangulated_points_total
int triangulated_points_total
Definition:
COM_KeyingScreenOperation.h:27
blender::compositor::KeyingScreenOperation::TriangulationData::triangles_AABB
rcti * triangles_AABB
Definition:
COM_KeyingScreenOperation.h:28
blender::compositor::KeyingScreenOperation::TriangulationData::triangulated_points
VoronoiTriangulationPoint * triangulated_points
Definition:
COM_KeyingScreenOperation.h:25
blender::compositor::KeyingScreenOperation::TriangulationData::triangles
int(* triangles)[3]
Definition:
COM_KeyingScreenOperation.h:26
blender::compositor::KeyingScreenOperation::TriangulationData::triangles_total
int triangles_total
Definition:
COM_KeyingScreenOperation.h:27
rcti
Definition:
DNA_vec_types.h:62
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1