49 node->id = (
ID *)scene->clip;
102 if (!movie_clip_texture) {
103 result.allocate_invalid();
109 result.allocate_texture(
Domain(size));
120 result.bind_as_image(shader,
"output_img");
126 result.unbind_as_image();
138 if (!movie_clip_texture) {
139 result.allocate_single_value();
140 result.set_float_value(1.0f);
146 result.allocate_texture(
Domain(size));
157 result.bind_as_image(shader,
"output_img");
163 result.unbind_as_image();
169 if (!movie_clip_texture) {
172 result.allocate_single_value();
173 result.set_float_value(0.0f);
177 result.allocate_single_value();
178 result.set_float_value(0.0f);
182 result.allocate_single_value();
183 result.set_float_value(1.0f);
187 result.allocate_single_value();
188 result.set_float_value(0.0f);
204 movie_clip, frame_number, width, height, offset, &scale, &angle);
208 result.allocate_single_value();
209 result.set_float_value(offset.x);
213 result.allocate_single_value();
214 result.set_float_value(offset.y);
218 result.allocate_single_value();
219 result.set_float_value(scale);
223 result.allocate_single_value();
224 result.set_float_value(angle);
269 ntype.
declare = file_ns::cmp_node_movieclip_declare;
270 ntype.
draw_buttons = file_ns::node_composit_buts_movieclip;
Scene * CTX_data_scene(const bContext *C)
float BKE_movieclip_remap_scene_to_clip_frame(const struct MovieClip *clip, float framenr)
void BKE_movieclip_user_set_frame(struct MovieClipUser *user, int framenr)
struct GPUTexture * BKE_movieclip_get_gpu_texture(struct MovieClip *clip, struct MovieClipUser *cuser)
void BKE_movieclip_free_gputexture(struct MovieClip *clip)
void BKE_tracking_stabilization_data_get(struct MovieClip *clip, int framenr, int width, int height, float translation[2], float *scale, float *angle)
#define DNA_struct_default_alloc(struct_name)
int GPU_shader_get_sampler_binding(GPUShader *shader, const char *name)
void GPU_shader_uniform_2iv(GPUShader *sh, const char *name, const int data[2])
void GPU_shader_bind(GPUShader *shader)
int GPU_texture_height(const GPUTexture *texture)
void GPU_texture_bind(GPUTexture *texture, int unit)
int GPU_texture_width(const GPUTexture *texture)
void GPU_texture_unbind(GPUTexture *texture)
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
void uiTemplateColorspaceSettings(uiLayout *layout, PointerRNA *ptr, const char *propname)
void uiTemplateID(uiLayout *layout, const bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int filter=UI_TEMPLATE_ID_FILTER_ALL, bool live_icon=false, const char *text=nullptr)
struct GPUShader GPUShader
GPUTexture * get_movie_clip_texture()
void free_movie_clip_texture()
MovieClipUser * get_movie_clip_user()
void compute_stabilization_data(GPUTexture *movie_clip_texture)
void compute_image(GPUTexture *movie_clip_texture)
MovieClip * get_movie_clip()
void compute_alpha(GPUTexture *movie_clip_texture)
GPUShader * get_shader(const char *info_name, ResultPrecision precision)
NodeOperation(Context &context, DNode node)
bool should_compute_output(StringRef identifier)
const bNode & bnode() const
Result & get_result(StringRef identifier)
Context & context() const
local_group_size(16, 16) .push_constant(Type b
void node_type_storage(bNodeType *ntype, const char *storagename, void(*freefunc)(bNode *node), void(*copyfunc)(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node))
void node_register_type(bNodeType *ntype)
static void cmp_node_movieclip_declare(NodeDeclarationBuilder &b)
static void node_composit_buts_movieclip_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
static NodeOperation * get_compositor_operation(Context &context, DNode node)
static void node_composit_buts_movieclip(uiLayout *layout, bContext *C, PointerRNA *ptr)
void compute_dispatch_threads_at_least(GPUShader *shader, int2 threads_range, int2 local_size=int2(16))
VecBase< int32_t, 2 > int2
void register_node_type_cmp_movieclip()
void cmp_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
void node_free_standard_storage(bNode *node)
void node_copy_standard_storage(bNodeTree *, bNode *dest_node, const bNode *src_node)
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
NodeGetCompositorOperationFunction get_compositor_operation
void(* draw_buttons_ex)(uiLayout *, bContext *C, PointerRNA *ptr)
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
NodeDeclareFunction declare
void(* initfunc_api)(const bContext *C, PointerRNA *ptr)