Blender  V3.3
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 
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 
23  protected:
24  typedef struct TriangulationData {
26  int (*triangles)[3];
30 
31  /* TODO(manzanilla): rename to #TrianguledArea on removing tiled implementation. */
32  typedef struct TileData {
33  int *triangles;
36 
40  char tracking_object_[64];
41 
45  void determine_canvas(const rcti &preferred_area, rcti &r_area) override;
46 
48 
49  public:
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 
59  {
60  movie_clip_ = clip;
61  }
62  void set_tracking_object(const char *object)
63  {
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 
74  const rcti &area,
75  Span<MemoryBuffer *> inputs) override;
76 
77  private:
78  TileData *triangulate(const rcti *rect);
79 };
80 
81 } // namespace blender::compositor
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
Definition: string.c:64
_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
void update_memory_buffer_partial(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
void deinitialize_tile_data(rcti *rect, void *data) override
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
struct blender::compositor::KeyingScreenOperation::TileData TileData
struct blender::compositor::KeyingScreenOperation::TriangulationData TriangulationData
void execute_pixel(float output[4], int x, int y, void *data) override
calculate a single pixel
a MemoryBuffer contains access to the data of a chunk
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]