33 const float aspect = render_data->
xsch > 0 ?
36 int preview_width, preview_height;
58 const char *view_name,
87 *render, *scene, *render_data, *
node_tree, view_name, render_context, profiler);
96 const bool is_rendering = render_context !=
nullptr;
98 render_data, scene,
node_tree, is_rendering, view_name, render_context, profiler);
int BKE_render_num_threads(const RenderData *r)
void BLI_mutex_end(ThreadMutex *mutex)
void BLI_mutex_init(ThreadMutex *mutex)
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
pthread_mutex_t ThreadMutex
static void compositor_reset_node_tree_status(bNodeTree *node_tree)
void COM_execute(Render *render, RenderData *render_data, Scene *scene, bNodeTree *node_tree, const char *view_name, blender::realtime_compositor::RenderContext *render_context, blender::realtime_compositor::Profiler *profiler)
The main method that is used to execute the compositor tree. It can be executed during editing (blenk...
static void compositor_init_node_previews(const RenderData *render_data, bNodeTree *node_tree)
static struct @170 g_compositor
void COM_deinitialize()
Deinitialize the compositor caches and allocated memory. Use COM_clear_caches to only free the caches...
@ SCE_COMPOSITOR_DEVICE_GPU
#define USER_EXPERIMENTAL_TEST(userdef, member)
the ExecutionSystem contains the whole compositor tree.
void execute()
execute this system
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void node_preview_init_tree(bNodeTree *ntree, int xsize, int ysize)
constexpr float COM_PREVIEW_SIZE
void RE_compositor_execute(Render &render, const Scene &scene, const RenderData &render_data, const bNodeTree &node_tree, const char *view_name, blender::realtime_compositor::RenderContext *render_context, blender::realtime_compositor::Profiler *profiler)
static void deinitialize()
deinitialize the WorkScheduler free all allocated resources
static void initialize(int num_cpu_threads)
initialize the WorkScheduler