Blender  V3.3
Classes | Functions | Variables
draw_manager.c File Reference
#include <stdio.h>
#include "BLI_alloca.h"
#include "BLI_listbase.h"
#include "BLI_memblock.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "BLF_api.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_curves.h"
#include "BKE_duplilist.h"
#include "BKE_editmesh.h"
#include "BKE_global.h"
#include "BKE_gpencil.h"
#include "BKE_lattice.h"
#include "BKE_main.h"
#include "BKE_mball.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_particle.h"
#include "BKE_pbvh.h"
#include "BKE_pointcache.h"
#include "BKE_pointcloud.h"
#include "BKE_screen.h"
#include "BKE_subdiv_modifier.h"
#include "BKE_volume.h"
#include "DNA_camera_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_world_types.h"
#include "ED_gpencil.h"
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_view3d.h"
#include "GPU_capabilities.h"
#include "GPU_framebuffer.h"
#include "GPU_immediate.h"
#include "GPU_matrix.h"
#include "GPU_platform.h"
#include "GPU_shader_shared.h"
#include "GPU_state.h"
#include "GPU_uniform_buffer.h"
#include "GPU_viewport.h"
#include "IMB_colormanagement.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "WM_api.h"
#include "wm_window.h"
#include "draw_color_management.h"
#include "draw_manager.h"
#include "draw_manager_profiling.h"
#include "draw_manager_testing.h"
#include "draw_manager_text.h"
#include "draw_shader.h"
#include "draw_subdivision.h"
#include "draw_texture_pool.h"
#include "draw_cache_impl.h"
#include "engines/basic/basic_engine.h"
#include "engines/eevee/eevee_engine.h"
#include "engines/eevee_next/eevee_engine.h"
#include "engines/external/external_engine.h"
#include "engines/gpencil/gpencil_engine.h"
#include "engines/image/image_engine.h"
#include "engines/overlay/overlay_engine.h"
#include "engines/select/select_engine.h"
#include "engines/workbench/workbench_engine.h"
#include "GPU_context.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "DRW_select_buffer.h"

Go to the source code of this file.

Classes

struct  IdDdtTemplate
 
struct  DRWSelectBuffer
 

Functions

static void drw_state_prepare_clean_for_draw (DRWManager *dst)
 
static bool drw_draw_show_annotation (void)
 
Threading
static void drw_task_graph_init (void)
 
static void drw_task_graph_deinit (void)
 
Settings
bool DRW_object_is_renderable (const Object *ob)
 
bool DRW_object_is_in_edit_mode (const Object *ob)
 
int DRW_object_visibility_in_active_context (const Object *ob)
 
bool DRW_object_use_hide_faces (const struct Object *ob)
 
bool DRW_object_is_visible_psys_in_active_context (const Object *object, const ParticleSystem *psys)
 
struct ObjectDRW_object_get_dupli_parent (const Object *UNUSED(ob))
 
struct DupliObjectDRW_object_get_dupli (const Object *UNUSED(ob))
 
Viewport (DRW_viewport)
void DRW_render_viewport_size_set (const int size[2])
 
const floatDRW_viewport_size_get (void)
 
const floatDRW_viewport_invert_size_get (void)
 
const floatDRW_viewport_screenvecs_get (void)
 
const floatDRW_viewport_pixelsize_get (void)
 
static void drw_context_state_init (void)
 
static void draw_unit_state_create (void)
 
DRWDataDRW_viewport_data_create (void)
 
static void draw_texture_release (DRWData *drw_data)
 
static void drw_viewport_data_reset (DRWData *drw_data)
 
void DRW_viewport_data_free (DRWData *drw_data)
 
static DRWDatadrw_viewport_data_ensure (GPUViewport *viewport)
 
static void drw_manager_init (DRWManager *dst, GPUViewport *viewport, const int size[2])
 
static void drw_manager_exit (DRWManager *dst)
 
DefaultFramebufferListDRW_viewport_framebuffer_list_get (void)
 
DefaultTextureListDRW_viewport_texture_list_get (void)
 
void DRW_viewport_request_redraw (void)
 
Duplis
static uint dupli_key_hash (const void *key)
 
static bool dupli_key_cmp (const void *key1, const void *key2)
 
static void drw_duplidata_load (Object *ob)
 
static void duplidata_value_free (void *val)
 
static void duplidata_key_free (void *key)
 
static void drw_duplidata_free (void)
 
void ** DRW_duplidata_get (void *vedata)
 
ViewLayers (DRW_scenelayer)
voidDRW_view_layer_engine_data_get (DrawEngineType *engine_type)
 
void ** DRW_view_layer_engine_data_ensure_ex (ViewLayer *view_layer, DrawEngineType *engine_type, void(*callback)(void *storage))
 
void ** DRW_view_layer_engine_data_ensure (DrawEngineType *engine_type, void(*callback)(void *storage))
 
Garbage Collection
void DRW_cache_free_old_batches (Main *bmain)
 
Rendering (DRW_engines)
static void drw_engines_init (void)
 
static void drw_engines_cache_init (void)
 
static void drw_engines_world_update (Scene *scene)
 
static void drw_engines_cache_populate (Object *ob)
 
static void drw_engines_cache_finish (void)
 
static void drw_engines_draw_scene (void)
 
static void drw_engines_draw_text (void)
 
void DRW_draw_region_engine_info (int xoffset, int *yoffset, int line_height)
 
static void use_drw_engine (DrawEngineType *engine)
 
static void drw_engines_enable_from_engine (const RenderEngineType *engine_type, eDrawType drawtype)
 
static void drw_engines_enable_overlays (void)
 
static void drw_engines_enable_basic (void)
 
static void drw_engine_enable_image_editor (void)
 
static void drw_engines_enable_editors (void)
 
static void drw_engines_enable (ViewLayer *UNUSED(view_layer), RenderEngineType *engine_type, bool gpencil_engine_needed)
 
static void drw_engines_disable (void)
 
static void drw_engines_data_validate (void)
 
static bool drw_gpencil_engine_needed (Depsgraph *depsgraph, View3D *v3d)
 
View Update
void DRW_notify_view_update (const DRWUpdateContext *update_ctx)
 
static void drw_notify_view_update_offscreen (struct Depsgraph *depsgraph, RenderEngineType *engine_type, ARegion *region, View3D *v3d, GPUViewport *viewport)
 
Callbacks
void DRW_draw_callbacks_pre_scene (void)
 
void DRW_draw_callbacks_post_scene (void)
 
struct DRWTextStoreDRW_text_cache_ensure (void)
 
Draw Manager State (DRW_state)
bool DRW_state_is_fbo (void)
 
bool DRW_state_is_select (void)
 
bool DRW_state_is_material_select (void)
 
bool DRW_state_is_depth (void)
 
bool DRW_state_is_image_render (void)
 
bool DRW_state_is_scene_render (void)
 
bool DRW_state_is_opengl_render (void)
 
bool DRW_state_is_playback (void)
 
bool DRW_state_is_navigating (void)
 
bool DRW_state_show_text (void)
 
bool DRW_state_draw_support (void)
 
bool DRW_state_draw_background (void)
 
Context State (DRW_context_state)
const DRWContextStateDRW_context_state_get (void)
 
Init/Exit (DRW_engines)
bool DRW_engine_render_support (DrawEngineType *draw_engine_type)
 
void DRW_engine_register (DrawEngineType *draw_engine_type)
 
void DRW_engines_register_experimental (void)
 
void DRW_engines_register (void)
 
static void drw_registered_engines_free (void)
 
void DRW_engines_free (void)
 
void DRW_render_context_enable (Render *render)
 
void DRW_render_context_disable (Render *render)
 
Init/Exit (DRW_opengl_ctx)
void DRW_opengl_context_create (void)
 
void DRW_opengl_context_destroy (void)
 
void DRW_opengl_context_enable_ex (bool UNUSED(restore))
 
void DRW_opengl_context_disable_ex (bool restore)
 
void DRW_opengl_context_enable (void)
 
void DRW_opengl_context_disable (void)
 
void DRW_opengl_render_context_enable (void *re_gl_context)
 
void DRW_opengl_render_context_disable (void *re_gl_context)
 
void DRW_gpu_render_context_enable (void *re_gpu_context)
 
void DRW_gpu_render_context_disable (void *UNUSED(re_gpu_context))
 
Draw manager context release/activation

These functions are used in cases when an OpenGL context creation is needed during the draw. This happens, for example, when an external engine needs to create its own OpenGL context from the engine initialization.

Example of context creation:

const bool drw_state = DRW_opengl_context_release(); gl_context = WM_opengl_context_create(); DRW_opengl_context_activate(drw_state);

Example of context destruction:

const bool drw_state = DRW_opengl_context_release(); WM_opengl_context_activate(gl_context); WM_opengl_context_dispose(gl_context); DRW_opengl_context_activate(drw_state);

NOTE: Will only perform context modification when on main thread. This way these functions can be used in an engine without check on whether it is a draw manager which manages OpenGL context on the current thread. The downside of this is that if the engine performs OpenGL creation from a non-main thread, that thread is supposed to not have OpenGL context ever bound by Blender.

bool DRW_opengl_context_release (void)
 
void DRW_opengl_context_activate (bool drw_state)
 

Variables

DRWManager DST = {NULL}
 
struct {
   ListBase   engines
 
   int   len
 
g_registered_engines = {{NULL}}
 

Draw Data (DRW_drawdata)

typedef struct IdDdtTemplate IdDdtTemplate
 
static bool id_type_can_have_drawdata (const short id_type)
 
static bool id_can_have_drawdata (const ID *id)
 
DrawDataListDRW_drawdatalist_from_id (ID *id)
 
DrawDataDRW_drawdata_get (ID *id, DrawEngineType *engine_type)
 
DrawDataDRW_drawdata_ensure (ID *id, DrawEngineType *engine_type, size_t size, DrawDataInitCb init_cb, DrawDataFreeCb free_cb)
 
void DRW_drawdata_free (ID *id)
 
static void drw_drawdata_unlink_dupli (ID *id)
 

Main Draw Loops (DRW_draw)

static struct DRWSelectBuffer g_select_buffer = {NULL}
 
void DRW_draw_view (const bContext *C)
 
void DRW_draw_render_loop_ex (struct Depsgraph *depsgraph, RenderEngineType *engine_type, ARegion *region, View3D *v3d, GPUViewport *viewport, const bContext *evil_C)
 
void DRW_draw_render_loop (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, GPUViewport *viewport)
 
void DRW_draw_render_loop_offscreen (struct Depsgraph *depsgraph, RenderEngineType *engine_type, ARegion *region, View3D *v3d, const bool is_image_render, const bool draw_background, const bool do_color_management, GPUOffScreen *ofs, GPUViewport *viewport)
 
bool DRW_render_check_grease_pencil (Depsgraph *depsgraph)
 
static void DRW_render_gpencil_to_image (RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect)
 
void DRW_render_gpencil (struct RenderEngine *engine, struct Depsgraph *depsgraph)
 
static void draw_render_result_ensure_pass_cb (void *user_data, struct Scene *UNUSED(scene), struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype UNUSED(type))
 
void DRW_render_to_image (RenderEngine *engine, struct Depsgraph *depsgraph)
 
void DRW_render_object_iter (void *vedata, RenderEngine *engine, struct Depsgraph *depsgraph, void(*callback)(void *vedata, Object *ob, RenderEngine *engine, struct Depsgraph *depsgraph))
 
void DRW_custom_pipeline (DrawEngineType *draw_engine_type, struct Depsgraph *depsgraph, void(*callback)(void *vedata, void *user_data), void *user_data)
 
void DRW_cache_restart (void)
 
void DRW_draw_render_loop_2d_ex (struct Depsgraph *depsgraph, ARegion *region, GPUViewport *viewport, const bContext *evil_C)
 
static void draw_select_framebuffer_depth_only_setup (const int size[2])
 
void DRW_render_instance_buffer_finish (void)
 
void DRW_render_set_time (RenderEngine *engine, Depsgraph *depsgraph, int frame, float subframe)
 
void DRW_draw_select_loop (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, bool use_obedit_skip, bool draw_surface, bool UNUSED(use_nearest), const bool do_material_sub_selection, const rcti *rect, DRW_SelectPassFn select_pass_fn, void *select_pass_user_data, DRW_ObjectFilterFn object_filter_fn, void *object_filter_user_data)
 
void DRW_draw_depth_loop (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, GPUViewport *viewport, const bool use_gpencil, const bool use_basic, const bool use_overlay)
 
void DRW_draw_select_id (Depsgraph *depsgraph, ARegion *region, View3D *v3d, const rcti *rect)
 
void DRW_draw_depth_object (Scene *scene, ARegion *region, View3D *v3d, GPUViewport *viewport, Object *object)
 

Typedef Documentation

◆ IdDdtTemplate

typedef struct IdDdtTemplate IdDdtTemplate

Function Documentation

◆ draw_render_result_ensure_pass_cb()

static void draw_render_result_ensure_pass_cb ( void user_data,
struct Scene UNUSEDscene,
struct ViewLayer view_layer,
const char *  name,
int  channels,
const char *  chanid,
eNodeSocketDatatype   UNUSEDtype 
)
static

Definition at line 1904 of file draw_manager.c.

References channels(), ViewLayer::name, RE_engine_add_pass(), and user_data.

Referenced by DRW_render_to_image().

◆ draw_select_framebuffer_depth_only_setup()

static void draw_select_framebuffer_depth_only_setup ( const int  size[2])
static

◆ draw_texture_release()

static void draw_texture_release ( DRWData drw_data)
static

◆ draw_unit_state_create()

static void draw_unit_state_create ( void  )
static

◆ DRW_cache_free_old_batches()

void DRW_cache_free_old_batches ( Main bmain)

◆ DRW_cache_restart()

void DRW_cache_restart ( void  )

Used when the render engine want to redo another cache populate inside the same render frame.

Definition at line 2099 of file draw_manager.c.

References DRWManager::buffer_finish_called, DRW_curves_init(), drw_manager_init(), DRW_smoke_exit(), DRW_smoke_init(), DRW_volume_init(), DST, DRWManager::viewport, and DRWManager::vmempool.

Referenced by EEVEE_motion_blur_cache_finish(), eevee_render_to_image(), and blender::eevee::Instance::render_sync().

◆ DRW_context_state_get()

const DRWContextState* DRW_context_state_get ( void  )

Definition at line 2892 of file draw_manager.c.

References DRWManager::draw_ctx, and DST.

Referenced by basic_cache_init(), basic_cache_populate(), blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::cache_image(), blender::draw::image_engine::ImageEngine< DrawingMode >::cache_populate(), camera_view3d_reconstruction(), draw_armature_pose(), drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), DRW_cache_gpencil_face_wireframe_get(), DRW_curves_pos_buffer_get(), DRW_curves_texture_for_evaluated_attribute(), DRW_draw_cursor(), DRW_draw_cursor_2d(), DRW_draw_gizmo_2d(), DRW_draw_gizmo_3d(), DRW_draw_region_info(), DRW_engine_external_acquire_for_image_editor(), DRW_hair_pos_buffer_get(), DRW_mball_batch_cache_pos_vertbuf_get(), DRW_metaball_batch_cache_get_edge_detection(), DRW_metaball_batch_cache_get_triangles_with_normals(), DRW_metaball_batch_cache_get_wireframes_face(), DRW_object_is_visible_psys_in_active_context(), DRW_object_wire_theme_get(), drw_particle_get_hair_source(), drw_particle_update_ptcache(), drw_particle_update_ptcache_edit(), DRW_render_object_iter(), drw_sculpt_generate_calls(), DRW_shgroup_curves_create_sub(), DRW_shgroup_hair_create_sub(), DRW_volume_batch_cache_get_wireframes_face(), EEVEE_bloom_init(), eevee_cache_finish(), EEVEE_cache_populate(), EEVEE_cryptomatte_cache_populate(), eevee_cryptomatte_download_buffer(), EEVEE_cryptomatte_output_accumulate(), EEVEE_cryptomatte_output_init(), EEVEE_cryptomatte_particle_hair_cache_populate(), eevee_cryptomatte_postprocess_weights(), EEVEE_cryptomatte_render_result(), EEVEE_cryptomatte_renderpasses_init(), eevee_cryptomatte_shading_group_create(), EEVEE_cryptomatte_store_metadata(), EEVEE_depth_of_field_init(), eevee_draw_scene(), eevee_engine_init(), eevee_light_setup(), EEVEE_lightprobes_cache_finish(), EEVEE_lightprobes_cache_init(), EEVEE_lightprobes_init(), EEVEE_lightprobes_refresh(), EEVEE_lookdev_cache_init(), EEVEE_lookdev_draw(), eevee_lookdev_hdri_preview_init(), EEVEE_lookdev_init(), EEVEE_materials_cache_init(), EEVEE_materials_cache_populate(), EEVEE_materials_init(), EEVEE_mist_output_init(), EEVEE_motion_blur_cache_init(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_init(), EEVEE_occlusion_init(), EEVEE_particle_hair_cache_populate(), eevee_render_result_aovs(), eevee_render_to_image(), EEVEE_renderpasses_init(), EEVEE_screen_raytrace_init(), EEVEE_shadows_init(), EEVEE_subsurface_cache_init(), EEVEE_temporal_sampling_init(), EEVEE_temporal_sampling_matrices_calc(), EEVEE_volumes_cache_init(), EEVEE_volumes_init(), external_cache_init(), external_cache_populate(), external_draw_scene(), external_draw_scene_do(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), external_engine_init(), external_image_space_matrix_set(), GPENCIL_cache_init(), GPENCIL_cache_populate(), GPENCIL_engine_init(), GPENCIL_render_result_z(), GPENCIL_render_to_image(), gpencil_sbuffer_cache_populate(), gpencil_sbuffer_cache_populate_fast(), gpencil_sbuffer_stroke_ensure(), blender::draw::image_engine::IMAGE_cache_init(), blender::draw::image_engine::IMAGE_draw_scene(), material_opaque(), material_shadow(), material_transparent(), motion_path_cache(), blender::eevee::Instance::object_sync(), OVERLAY_armature_cache_init(), OVERLAY_armature_cache_populate(), OVERLAY_background_cache_init(), OVERLAY_cache_populate(), OVERLAY_camera_cache_populate(), OVERLAY_edit_curve_cache_init(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_curves_init(), OVERLAY_edit_gpencil_cache_init(), OVERLAY_edit_gpencil_cache_populate(), OVERLAY_edit_mesh_cache_init(), OVERLAY_edit_mesh_cache_populate(), OVERLAY_edit_mesh_init(), OVERLAY_edit_particle_cache_init(), OVERLAY_edit_particle_cache_populate(), OVERLAY_edit_text_cache_init(), OVERLAY_edit_uv_cache_init(), overlay_edit_uv_cache_populate(), OVERLAY_edit_uv_init(), OVERLAY_empty_cache_populate(), OVERLAY_engine_init(), OVERLAY_extra_cache_populate(), OVERLAY_facing_cache_populate(), OVERLAY_fade_cache_init(), OVERLAY_fade_cache_populate(), OVERLAY_gpencil_cache_init(), OVERLAY_gpencil_cache_populate(), OVERLAY_gpencil_color_names(), overlay_gpencil_draw_stroke_color_name(), OVERLAY_grid_init(), OVERLAY_image_camera_cache_populate(), OVERLAY_image_empty_cache_populate(), OVERLAY_image_init(), OVERLAY_lattice_cache_populate(), OVERLAY_light_cache_populate(), OVERLAY_lightprobe_cache_populate(), OVERLAY_metaball_cache_populate(), OVERLAY_mode_transfer_cache_populate(), OVERLAY_motion_path_cache_populate(), OVERLAY_outline_cache_populate(), OVERLAY_paint_cache_init(), OVERLAY_paint_init(), OVERLAY_particle_cache_init(), OVERLAY_sculpt_cache_populate(), OVERLAY_shader_armature_degrees_of_freedom_solid(), OVERLAY_shader_armature_degrees_of_freedom_wire(), OVERLAY_shader_armature_envelope(), OVERLAY_shader_armature_shape(), OVERLAY_shader_armature_shape_wire(), OVERLAY_shader_armature_sphere(), OVERLAY_shader_armature_stick(), OVERLAY_shader_armature_wire(), OVERLAY_shader_depth_only(), OVERLAY_shader_edit_curve_handle(), OVERLAY_shader_edit_curve_point(), OVERLAY_shader_edit_curve_wire(), OVERLAY_shader_edit_gpencil_guide_point(), OVERLAY_shader_edit_gpencil_point(), OVERLAY_shader_edit_gpencil_wire(), OVERLAY_shader_edit_lattice_point(), OVERLAY_shader_edit_lattice_wire(), OVERLAY_shader_edit_mesh_analysis(), OVERLAY_shader_edit_mesh_edge(), OVERLAY_shader_edit_mesh_face(), OVERLAY_shader_edit_mesh_facedot(), OVERLAY_shader_edit_mesh_normal(), OVERLAY_shader_edit_mesh_skin_root(), OVERLAY_shader_edit_mesh_vert(), OVERLAY_shader_edit_particle_point(), OVERLAY_shader_edit_particle_strand(), OVERLAY_shader_extra(), OVERLAY_shader_extra_grid(), OVERLAY_shader_extra_groundline(), OVERLAY_shader_extra_loose_point(), OVERLAY_shader_extra_point(), OVERLAY_shader_extra_wire(), OVERLAY_shader_facing(), OVERLAY_shader_gpencil_canvas(), OVERLAY_shader_image(), OVERLAY_shader_motion_path_line(), OVERLAY_shader_motion_path_vert(), OVERLAY_shader_outline_prepass(), OVERLAY_shader_outline_prepass_curves(), OVERLAY_shader_outline_prepass_gpencil(), OVERLAY_shader_outline_prepass_pointcloud(), OVERLAY_shader_paint_face(), OVERLAY_shader_paint_point(), OVERLAY_shader_paint_texture(), OVERLAY_shader_paint_vertcol(), OVERLAY_shader_paint_weight(), OVERLAY_shader_paint_wire(), OVERLAY_shader_particle_dot(), OVERLAY_shader_particle_shape(), OVERLAY_shader_sculpt_curves_selection(), OVERLAY_shader_sculpt_mask(), OVERLAY_shader_uniform_color(), OVERLAY_shader_wireframe(), OVERLAY_shader_wireframe_select(), OVERLAY_speaker_cache_populate(), OVERLAY_wireframe_cache_init(), OVERLAY_wireframe_cache_populate(), OVERLAY_wireframe_init(), particle_batch_cache_ensure_pos(), POSE_is_driven_by_active_armature(), request_attribute(), select_cache_init(), select_cache_populate(), select_engine_init(), blender::draw::color_management::viewport_color_management_set(), workbench_antialiasing_sample_count_get(), workbench_cache_hair_populate(), workbench_cache_texpaint_populate(), workbench_cavity_data_update(), workbench_cavity_samples_ubo_ensure(), workbench_color_type_get(), workbench_dof_engine_init(), workbench_in_front_history_needed(), workbench_private_data_init(), workbench_render(), workbench_render_result_z(), workbench_shadow_data_update(), and workbench_update_material_ubos().

◆ drw_context_state_init()

static void drw_context_state_init ( void  )
static

◆ DRW_custom_pipeline()

void DRW_custom_pipeline ( DrawEngineType draw_engine_type,
struct Depsgraph depsgraph,
void(*)(void *vedata, void *user_data callback,
void user_data 
)

◆ DRW_draw_callbacks_post_scene()

void DRW_draw_callbacks_post_scene ( void  )

◆ DRW_draw_callbacks_pre_scene()

void DRW_draw_callbacks_pre_scene ( void  )

◆ DRW_draw_depth_loop()

void DRW_draw_depth_loop ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
GPUViewport viewport,
const bool  use_gpencil,
const bool  use_basic,
const bool  use_overlay 
)

object mode select-loop, see: ED_view3d_draw_depth_loop (legacy drawing).

Definition at line 2538 of file draw_manager.c.

References BKE_object_is_visible_in_viewport(), data_, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, DRWContextState::depsgraph, DRWManager::draw_ctx, draw_engine_gpencil_type, drw_context_state_init(), DRW_curves_init(), DRW_curves_update(), drw_duplidata_free(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_enable_basic(), drw_engines_enable_overlays(), drw_engines_init(), drw_engines_world_update(), DRW_globals_update(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_smoke_exit(), DRW_smoke_init(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, ED_view3d_engine_type(), GPU_framebuffer_bind(), GPU_framebuffer_free(), GPU_framebuffer_restore(), GPU_viewport_depth_texture(), DRWManager::is_depth, NULL, OBACT, View3D::object_type_exclude_viewport, DRWManager::options, DRWContextState::region, ARegion::regiondata, scene, DRWContextState::scene, View3D::shading, View3DShading::type, use_drw_engine(), and DRWManager::vmempool.

Referenced by ED_view3d_depth_override().

◆ DRW_draw_depth_object()

void DRW_draw_depth_object ( struct Scene scene,
struct ARegion region,
struct View3D v3d,
struct GPUViewport viewport,
struct Object object 
)

◆ DRW_draw_region_engine_info()

void DRW_draw_region_engine_info ( int  xoffset,
int *  yoffset,
int  line_height 
)

◆ DRW_draw_render_loop()

void DRW_draw_render_loop ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
GPUViewport viewport 
)

◆ DRW_draw_render_loop_2d_ex()

void DRW_draw_render_loop_2d_ex ( struct Depsgraph depsgraph,
ARegion region,
GPUViewport viewport,
const bContext evil_C 
)

Definition at line 2112 of file draw_manager.c.

References BLI_assert, CTX_wm_space_data(), View2D::cur, DRWManager::default_framebuffer, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, DRWManager::draw_ctx, drw_context_state_init(), drw_debug_init(), DRW_draw_cursor_2d(), DRW_draw_gizmo_2d(), drw_draw_show_annotation(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_draw_text(), drw_engines_enable_editors(), drw_engines_init(), DRW_globals_update(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_state_reset(), DRW_stats_begin(), DRW_stats_draw(), DRW_stats_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_view_data_cache_time_get(), DRW_viewport_colormanagement_set(), DRW_viewport_framebuffer_list_get(), DST, ED_annotation_draw_view2d(), ED_region_draw_cb_draw(), ED_region_pixelspace(), ED_region_visible_rect(), DRWContextState::evil_C, G, GPU_BACKEND_OPENGL, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_DEVICE_ANY, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_bind(), GPU_framebuffer_restore(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), GPU_OS_ANY, GPU_type_matches_ex(), NULL, OBACT, DefaultFramebufferList::overlay_fb, PROFILE_END_UPDATE, PROFILE_START, DRWContextState::region, REGION_DRAW_POST_VIEW, REGION_DRAW_PRE_VIEW, scene, DRWContextState::space_data, SPACE_IMAGE, SpaceLink::spacetype, ARegion::v2d, DRWManager::view_data_active, WM_draw_region_get_bound_viewport(), wmOrtho2(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by DRW_draw_view().

◆ DRW_draw_render_loop_ex()

void DRW_draw_render_loop_ex ( struct Depsgraph depsgraph,
RenderEngineType engine_type,
ARegion region,
View3D v3d,
GPUViewport viewport,
const bContext evil_C 
)

Definition at line 1593 of file draw_manager.c.

References BKE_object_is_visible_in_viewport(), BLI_assert, data_, DRWManager::default_framebuffer, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, DRWManager::draw_ctx, drw_context_state_init(), DRW_curves_init(), DRW_curves_update(), drw_debug_init(), DRW_draw_callbacks_post_scene(), DRW_draw_callbacks_pre_scene(), drw_duplidata_free(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_enable(), drw_engines_init(), drw_engines_world_update(), DRW_globals_update(), drw_gpencil_engine_needed(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_smoke_exit(), DRW_smoke_init(), DRW_state_reset(), DRW_stats_begin(), DRW_stats_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_view_data_cache_time_get(), DRW_viewport_colormanagement_set(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, DRWContextState::evil_C, RenderEngineType::flag, View3D::flag2, GPU_BACKEND_OPENGL, GPU_DEVICE_ANY, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_bind(), GPU_framebuffer_restore(), GPU_OS_ANY, GPU_type_matches_ex(), NULL, OB_RENDER, OBACT, View3D::object_type_exclude_viewport, PROFILE_END_UPDATE, PROFILE_START, RE_INTERNAL, DRWContextState::region, ARegion::regiondata, scene, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, DRWManager::view_data_active, DRWManager::vmempool, and WM_draw_region_get_bound_viewport().

Referenced by DRW_draw_render_loop(), DRW_draw_render_loop_offscreen(), and DRW_draw_view().

◆ DRW_draw_render_loop_offscreen()

void DRW_draw_render_loop_offscreen ( struct Depsgraph depsgraph,
struct RenderEngineType engine_type,
struct ARegion region,
struct View3D v3d,
bool  is_image_render,
bool  draw_background,
bool  do_color_management,
struct GPUOffScreen ofs,
struct GPUViewport viewport 
)

◆ DRW_draw_select_id()

void DRW_draw_select_id ( Depsgraph depsgraph,
ARegion region,
View3D v3d,
const rcti rect 
)

◆ DRW_draw_select_loop()

void DRW_draw_select_loop ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
bool  use_obedit_skip,
bool  draw_surface,
bool   UNUSEDuse_nearest,
const bool  do_material_sub_selection,
const rcti rect,
DRW_SelectPassFn  select_pass_fn,
void select_pass_user_data,
DRW_ObjectFilterFn  object_filter_fn,
void object_filter_user_data 
)

Definition at line 2310 of file draw_manager.c.

References BASE_FROM_DUPLI, BASE_SELECTABLE, BASE_VISIBLE_VIEWLAYER, BKE_modifiers_is_deformed_by_armature(), BKE_object_is_visible_in_viewport(), BLI_rcti_size_x(), BLI_rcti_size_y(), data_, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, DRWManager::draw_ctx, draw_engine_gpencil_type, draw_select_framebuffer_depth_only_setup(), drw_context_state_init(), DRW_curves_init(), DRW_curves_update(), DRW_draw_callbacks_pre_scene(), drw_duplidata_free(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_enable_basic(), drw_engines_enable_overlays(), drw_engines_init(), drw_engines_world_update(), DRW_globals_update(), drw_gpencil_engine_needed(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_select_load_id(), DRW_SELECT_PASS_POST, DRW_SELECT_PASS_PRE, DRW_smoke_exit(), DRW_smoke_init(), DRW_STATE_DEPTH_TEST_ENABLED, DRW_state_lock(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), DRW_STATE_WRITE_DEPTH, drw_task_graph_deinit(), drw_task_graph_init(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, ED_view3d_engine_type(), View3DOverlay::flag, View3D::flag2, FOREACH_OBJECT_IN_MODE_BEGIN, FOREACH_OBJECT_IN_MODE_END, DRWSelectBuffer::framebuffer_depth_only, g_select_buffer, GPU_framebuffer_bind(), GPU_framebuffer_restore(), DRWManager::is_material_select, DRWManager::is_select, Object::mode, NULL, OB_ARMATURE, OB_MBALL, OB_MODE_POSE, OBACT, OBEDIT_FROM_OBACT, DRWContextState::object_pose, View3D::object_type_exclude_select, View3D::object_type_exclude_viewport, OBPOSE_FROM_OBACT, OBWEIGHTPAINT_FROM_OBACT, DRWManager::options, View3D::overlay, DRWContextState::region, ARegion::regiondata, scene, View3D::shading, Object::type, View3DShading::type, UNUSED_VARS, use_drw_engine(), V3D_HIDE_OVERLAYS, V3D_OVERLAY_BONE_SELECT, and DRWManager::vmempool.

◆ drw_draw_show_annotation()

static bool drw_draw_show_annotation ( void  )
static

◆ DRW_draw_view()

void DRW_draw_view ( const bContext C)

◆ DRW_drawdata_ensure()

DrawData* DRW_drawdata_ensure ( ID id,
DrawEngineType engine_type,
size_t  size,
DrawDataInitCb  init_cb,
DrawDataFreeCb  free_cb 
)

◆ DRW_drawdata_free()

void DRW_drawdata_free ( ID id)

Definition at line 911 of file draw_manager.c.

References BLI_freelistN(), DRW_drawdatalist_from_id(), LISTBASE_FOREACH, and NULL.

Referenced by object_free_data(), and world_free_data().

◆ DRW_drawdata_get()

DrawData* DRW_drawdata_get ( ID id,
DrawEngineType engine_type 
)

◆ drw_drawdata_unlink_dupli()

static void drw_drawdata_unlink_dupli ( ID id)
static

◆ DRW_drawdatalist_from_id()

DrawDataList* DRW_drawdatalist_from_id ( struct ID id)

Get DrawData from the given ID-block. In order for this to work, we assume that the DrawData pointer is stored in the struct in the same fashion as in IdDdtTemplate.

Definition at line 836 of file draw_manager.c.

References IdDdtTemplate::drawdata, id_can_have_drawdata(), and NULL.

Referenced by direct_link_id_common(), DRW_drawdata_ensure(), DRW_drawdata_free(), DRW_drawdata_get(), drw_drawdata_unlink_dupli(), and blender::deg::RuntimeBackup::init_from_id().

◆ drw_duplidata_free()

static void drw_duplidata_free ( void  )
static

◆ DRW_duplidata_get()

void** DRW_duplidata_get ( void vedata)

Return NULL if not a dupli or a pointer of pointer to the engine data.

Definition at line 741 of file draw_manager.c.

References DST, DRWManager::dupli_datas, DRWManager::dupli_source, ViewportEngineData::engine_type, DRWRegisteredDrawEngine::index, and NULL.

Referenced by OVERLAY_duplidata_get().

◆ drw_duplidata_load()

static void drw_duplidata_load ( Object ob)
static

◆ drw_engine_enable_image_editor()

static void drw_engine_enable_image_editor ( void  )
static

◆ DRW_engine_register()

void DRW_engine_register ( DrawEngineType draw_engine_type)

◆ DRW_engine_render_support()

bool DRW_engine_render_support ( DrawEngineType draw_engine_type)

Definition at line 2903 of file draw_manager.c.

References DrawEngineType::render_to_image.

Referenced by RE_engine_is_opengl().

◆ drw_engines_cache_finish()

static void drw_engines_cache_finish ( void  )
static

◆ drw_engines_cache_init()

static void drw_engines_cache_init ( void  )
static

◆ drw_engines_cache_populate()

static void drw_engines_cache_populate ( Object ob)
static

◆ drw_engines_data_validate()

static void drw_engines_data_validate ( void  )
static

◆ drw_engines_disable()

static void drw_engines_disable ( void  )
static

◆ drw_engines_draw_scene()

static void drw_engines_draw_scene ( void  )
static

◆ drw_engines_draw_text()

static void drw_engines_draw_text ( void  )
static

◆ drw_engines_enable()

static void drw_engines_enable ( ViewLayer UNUSEDview_layer,
RenderEngineType engine_type,
bool  gpencil_engine_needed 
)
static

◆ drw_engines_enable_basic()

static void drw_engines_enable_basic ( void  )
static

Use for select and depth-drawing.

Definition at line 1180 of file draw_manager.c.

References draw_engine_basic_type, and use_drw_engine().

Referenced by DRW_draw_depth_loop(), and DRW_draw_select_loop().

◆ drw_engines_enable_editors()

static void drw_engines_enable_editors ( void  )
static

◆ drw_engines_enable_from_engine()

static void drw_engines_enable_from_engine ( const RenderEngineType engine_type,
eDrawType  drawtype 
)
static

◆ drw_engines_enable_overlays()

static void drw_engines_enable_overlays ( void  )
static

◆ DRW_engines_free()

void DRW_engines_free ( void  )

◆ drw_engines_init()

static void drw_engines_init ( void  )
static

◆ DRW_engines_register()

void DRW_engines_register ( void  )

Definition at line 2925 of file draw_manager.c.

References BKE_curve_batch_cache_dirty_tag_cb, BKE_curve_batch_cache_free_cb, BKE_curves_batch_cache_dirty_tag_cb, BKE_curves_batch_cache_free_cb, BKE_gpencil_batch_cache_dirty_tag_cb, BKE_gpencil_batch_cache_free_cb, BKE_lattice_batch_cache_dirty_tag_cb, BKE_lattice_batch_cache_free_cb, BKE_mball_batch_cache_dirty_tag_cb, BKE_mball_batch_cache_free_cb, BKE_mesh_batch_cache_dirty_tag_cb, BKE_mesh_batch_cache_free_cb, BKE_particle_batch_cache_dirty_tag_cb, BKE_particle_batch_cache_free_cb, BKE_pointcloud_batch_cache_dirty_tag_cb, BKE_pointcloud_batch_cache_free_cb, BKE_subsurf_modifier_free_gpu_cache_cb, BKE_volume_batch_cache_dirty_tag_cb, BKE_volume_batch_cache_free_cb, RenderEngineType::draw_engine, draw_engine_basic_type, draw_engine_debug_select_type, draw_engine_gpencil_type, draw_engine_image_type, draw_engine_overlay_type, draw_engine_select_type, DRW_curve_batch_cache_dirty_tag(), DRW_curve_batch_cache_free(), DRW_curves_batch_cache_dirty_tag(), DRW_curves_batch_cache_free(), DRW_engine_register(), DRW_engine_viewport_eevee_type, DRW_engine_viewport_external_type, DRW_engine_viewport_workbench_type, DRW_gpencil_batch_cache_dirty_tag(), DRW_gpencil_batch_cache_free(), DRW_lattice_batch_cache_dirty_tag(), DRW_lattice_batch_cache_free(), DRW_mball_batch_cache_dirty_tag(), DRW_mball_batch_cache_free(), DRW_mesh_batch_cache_dirty_tag(), DRW_mesh_batch_cache_free(), DRW_particle_batch_cache_dirty_tag(), DRW_particle_batch_cache_free(), DRW_pointcloud_batch_cache_dirty_tag(), DRW_pointcloud_batch_cache_free(), DRW_subdiv_cache_free(), DRW_volume_batch_cache_dirty_tag(), DRW_volume_batch_cache_free(), and RE_engines_register().

Referenced by RE_engines_init().

◆ DRW_engines_register_experimental()

void DRW_engines_register_experimental ( void  )

◆ drw_engines_world_update()

static void drw_engines_world_update ( Scene scene)
static

◆ drw_gpencil_engine_needed()

static bool drw_gpencil_engine_needed ( Depsgraph depsgraph,
View3D v3d 
)
static

◆ DRW_gpu_render_context_disable()

void DRW_gpu_render_context_disable ( void UNUSEDre_gpu_context)

Definition at line 3187 of file draw_manager.c.

References GPU_context_active_set(), GPU_flush(), and NULL.

Referenced by DRW_render_context_disable().

◆ DRW_gpu_render_context_enable()

void DRW_gpu_render_context_enable ( void re_gpu_context)

◆ drw_manager_exit()

static void drw_manager_exit ( DRWManager dst)
static

◆ drw_manager_init()

static void drw_manager_init ( DRWManager dst,
GPUViewport viewport,
const int  size[2] 
)
static

Sets DST.viewport, DST.size and a lot of other important variables. Needs to be called before enabling any draw engine.

  • viewport can be NULL. In this case the data will not be stored and will be free at drw_manager_exit().
  • size can be NULL to get it from viewport.
  • if viewport and size are NULL, size is set to (1, 1).

IMPORTANT: drw_manager_init can be called multiple times before drw_manager_exit.

Definition at line 495 of file draw_manager.c.

References BLI_assert, BLI_rctf_transform_calc_m4_pivot_min(), RegionView3D::clip, View2D::cur, DefaultFramebufferList::default_fb, DRWManager::default_framebuffer, DRWManager::draw_ctx, DRWManager::draw_list, draw_unit_state_create(), DRW_DRAWLIST_LEN, DRW_view_camtexco_set(), DRW_view_clip_planes_set(), DRW_view_create(), DRW_view_data_default_framebuffer_list_get(), DRW_view_data_default_lists_from_viewport(), DRW_view_data_texture_list_size_validate(), DRW_viewport_data_create(), drw_viewport_data_ensure(), drw_viewport_data_reset(), ED_view3d_init_mats_rv3d(), G_draw, GPU_draw_list_create(), GPU_SHADER_CFG_CLIPPED, GPU_texture_height(), GPU_texture_width(), GPU_uniformbuf_create_ex(), GPU_viewport_active_view_get(), GPU_viewport_color_texture(), DRWManager::inv_size, normalize_v3_v3(), NULL, DRWContextState::object_edit, DRWManager::object_instance_data, DRWManager::pass_handle, DRWManager::pixsize, RegionView3D::pixsize, DRWManager::primary_view_num, DRWContextState::region, DRWManager::resource_handle, DRWContextState::rv3d, RV3D_BOXCLIP, RV3D_LOCK_FLAGS, DRWManager::screenvecs, DRWContextState::sh_cfg, size(), DRWManager::size, tex, unit_m4(), ARegion::v2d, view, DRWManager::view_active, DRWData::view_data, DRWManager::view_data_active, DRWManager::view_default, DRWManager::view_previous, DRW_Global::view_ubo, RegionView3D::viewcamtexcofac, RegionView3D::viewinv, RegionView3D::viewmat, DRWManager::viewport, DRWManager::vmempool, RegionView3D::winmat, and zero_v3().

Referenced by DRW_cache_restart(), DRW_custom_pipeline(), DRW_draw_depth_loop(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), DRW_render_gpencil(), and DRW_render_to_image().

◆ DRW_notify_view_update()

void DRW_notify_view_update ( const DRWUpdateContext update_ctx)

◆ drw_notify_view_update_offscreen()

static void drw_notify_view_update_offscreen ( struct Depsgraph depsgraph,
RenderEngineType engine_type,
ARegion region,
View3D v3d,
GPUViewport viewport 
)
static

◆ DRW_object_get_dupli()

struct DupliObject* DRW_object_get_dupli ( const Object UNUSEDob)

◆ DRW_object_get_dupli_parent()

struct Object* DRW_object_get_dupli_parent ( const Object UNUSEDob)

◆ DRW_object_is_in_edit_mode()

bool DRW_object_is_in_edit_mode ( const Object ob)

◆ DRW_object_is_renderable()

bool DRW_object_is_renderable ( const Object ob)

◆ DRW_object_is_visible_psys_in_active_context()

bool DRW_object_is_visible_psys_in_active_context ( const Object object,
const ParticleSystem psys 
)

◆ DRW_object_use_hide_faces()

bool DRW_object_use_hide_faces ( const struct Object ob)

◆ DRW_object_visibility_in_active_context()

int DRW_object_visibility_in_active_context ( const Object ob)

◆ DRW_opengl_context_activate()

void DRW_opengl_context_activate ( bool  drw_state)

◆ DRW_opengl_context_create()

void DRW_opengl_context_create ( void  )

◆ DRW_opengl_context_destroy()

void DRW_opengl_context_destroy ( void  )

◆ DRW_opengl_context_disable()

void DRW_opengl_context_disable ( void  )

◆ DRW_opengl_context_disable_ex()

void DRW_opengl_context_disable_ex ( bool  restore)

◆ DRW_opengl_context_enable()

void DRW_opengl_context_enable ( void  )

◆ DRW_opengl_context_enable_ex()

void DRW_opengl_context_enable_ex ( bool   UNUSEDrestore)

◆ DRW_opengl_context_release()

bool DRW_opengl_context_release ( void  )

◆ DRW_opengl_render_context_disable()

void DRW_opengl_render_context_disable ( void re_gl_context)

◆ DRW_opengl_render_context_enable()

void DRW_opengl_render_context_enable ( void re_gl_context)

◆ drw_registered_engines_free()

static void drw_registered_engines_free ( void  )
static

◆ DRW_render_check_grease_pencil()

bool DRW_render_check_grease_pencil ( struct Depsgraph depsgraph)

◆ DRW_render_context_disable()

void DRW_render_context_disable ( Render render)

◆ DRW_render_context_enable()

void DRW_render_context_enable ( Render render)

◆ DRW_render_gpencil()

void DRW_render_gpencil ( struct RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ DRW_render_gpencil_to_image()

static void DRW_render_gpencil_to_image ( RenderEngine engine,
struct RenderLayer render_layer,
const rcti rect 
)
static

◆ DRW_render_instance_buffer_finish()

void DRW_render_instance_buffer_finish ( void  )

◆ DRW_render_object_iter()

void DRW_render_object_iter ( void vedata,
RenderEngine engine,
struct Depsgraph depsgraph,
void(*)(void *vedata, Object *ob, RenderEngine *engine, struct Depsgraph *depsgraph callback 
)

◆ DRW_render_set_time()

void DRW_render_set_time ( struct RenderEngine engine,
struct Depsgraph depsgraph,
int  frame,
float  subframe 
)

◆ DRW_render_to_image()

void DRW_render_to_image ( RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ DRW_render_viewport_size_set()

void DRW_render_viewport_size_set ( const int  size[2])
Warning
only use for custom pipeline. 99% of the time, you don't want to use this.

Definition at line 280 of file draw_manager.c.

References DST, DRWManager::inv_size, size(), and DRWManager::size.

Referenced by eevee_lightbake_cache_create(), EEVEE_render_init(), and eevee_render_to_image().

◆ DRW_state_draw_background()

bool DRW_state_draw_background ( void  )

Whether we should render the background

Definition at line 2881 of file draw_manager.c.

References DRWManager::draw_background, DST, and DRWManager::options.

Referenced by eevee_draw_scene(), eevee_engine_init(), EEVEE_render_init(), and OVERLAY_background_cache_init().

◆ DRW_state_draw_support()

bool DRW_state_draw_support ( void  )

Should draw support elements Objects center, selection outline, probe data, ...

Definition at line 2874 of file draw_manager.c.

References DRWManager::draw_ctx, DRW_state_is_scene_render(), DST, View3D::flag2, NULL, DRWContextState::v3d, and V3D_HIDE_OVERLAYS.

Referenced by EEVEE_lightprobes_cache_init(), and EEVEE_temporal_sampling_init().

◆ DRW_state_is_depth()

bool DRW_state_is_depth ( void  )

◆ DRW_state_is_fbo()

bool DRW_state_is_fbo ( void  )

◆ DRW_state_is_image_render()

bool DRW_state_is_image_render ( void  )

◆ DRW_state_is_material_select()

bool DRW_state_is_material_select ( void  )

Definition at line 2827 of file draw_manager.c.

References DST, DRWManager::is_material_select, and DRWManager::options.

Referenced by basic_cache_init().

◆ DRW_state_is_navigating()

bool DRW_state_is_navigating ( void  )

Is the user navigating the region.

Definition at line 2862 of file draw_manager.c.

References DRWManager::draw_ctx, DST, RegionView3D::rflag, DRWContextState::rv3d, RV3D_NAVIGATING, and RV3D_PAINTING.

Referenced by EEVEE_temporal_sampling_init(), and workbench_private_data_init().

◆ DRW_state_is_opengl_render()

bool DRW_state_is_opengl_render ( void  )

◆ DRW_state_is_playback()

bool DRW_state_is_playback ( void  )

◆ DRW_state_is_scene_render()

bool DRW_state_is_scene_render ( void  )

◆ DRW_state_is_select()

bool DRW_state_is_select ( void  )

◆ drw_state_prepare_clean_for_draw()

static void drw_state_prepare_clean_for_draw ( DRWManager dst)
static

◆ DRW_state_show_text()

bool DRW_state_show_text ( void  )

◆ drw_task_graph_deinit()

static void drw_task_graph_deinit ( void  )
static

◆ drw_task_graph_init()

static void drw_task_graph_init ( void  )
static

◆ DRW_text_cache_ensure()

struct DRWTextStore* DRW_text_cache_ensure ( void  )

◆ DRW_view_layer_engine_data_ensure()

void** DRW_view_layer_engine_data_ensure ( DrawEngineType engine_type,
void(*)(void *storage)  callback 
)

◆ DRW_view_layer_engine_data_ensure_ex()

void** DRW_view_layer_engine_data_ensure_ex ( ViewLayer view_layer,
DrawEngineType engine_type,
void(*)(void *storage)  callback 
)

◆ DRW_view_layer_engine_data_get()

void* DRW_view_layer_engine_data_get ( DrawEngineType engine_type)

◆ DRW_viewport_data_create()

DRWData* DRW_viewport_data_create ( void  )

◆ drw_viewport_data_ensure()

static DRWData* drw_viewport_data_ensure ( GPUViewport viewport)
static

◆ DRW_viewport_data_free()

void DRW_viewport_data_free ( DRWData drw_data)

◆ drw_viewport_data_reset()

static void drw_viewport_data_reset ( DRWData drw_data)
static

◆ DRW_viewport_framebuffer_list_get()

DefaultFramebufferList* DRW_viewport_framebuffer_list_get ( void  )

◆ DRW_viewport_invert_size_get()

const float* DRW_viewport_invert_size_get ( void  )

◆ DRW_viewport_pixelsize_get()

const float* DRW_viewport_pixelsize_get ( void  )

Definition at line 303 of file draw_manager.c.

References DST, and DRWManager::pixsize.

Referenced by DRW_globals_update().

◆ DRW_viewport_request_redraw()

void DRW_viewport_request_redraw ( void  )

◆ DRW_viewport_screenvecs_get()

const float* DRW_viewport_screenvecs_get ( void  )

Definition at line 298 of file draw_manager.c.

References DST, and DRWManager::screenvecs.

Referenced by DRW_globals_update(), and EEVEE_lightprobes_cache_init().

◆ DRW_viewport_size_get()

const float* DRW_viewport_size_get ( void  )

◆ DRW_viewport_texture_list_get()

DefaultTextureList* DRW_viewport_texture_list_get ( void  )

Definition at line 638 of file draw_manager.c.

References DRW_view_data_default_texture_list_get(), DST, and DRWManager::view_data_active.

Referenced by blender::eevee::Film::accumulate(), dof_recombine_pass_init(), dof_setup_pass_init(), EEVEE_cryptomatte_output_init(), eevee_draw_scene(), EEVEE_effects_draw_init(), EEVEE_effects_init(), eevee_engine_init(), EEVEE_material_output_init(), EEVEE_mist_output_init(), EEVEE_motion_blur_cache_init(), EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_accumulate(), EEVEE_occlusion_output_init(), EEVEE_render_draw(), EEVEE_render_init(), EEVEE_renderpasses_cache_finish(), EEVEE_shadow_output_init(), EEVEE_subsurface_add_pass(), EEVEE_subsurface_draw_init(), EEVEE_subsurface_output_init(), EEVEE_temporal_sampling_cache_init(), EEVEE_velocity_resolve(), EEVEE_volumes_resolve(), GPENCIL_engine_init(), OVERLAY_antialiasing_cache_finish(), OVERLAY_antialiasing_cache_init(), OVERLAY_antialiasing_init(), OVERLAY_background_cache_init(), OVERLAY_cache_finish(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_mesh_cache_init(), OVERLAY_extra_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_outline_cache_init(), OVERLAY_outline_init(), OVERLAY_xray_depth_copy(), OVERLAY_xray_depth_infront_copy(), select_engine_framebuffer_setup(), workbench_antialiasing_cache_init(), workbench_antialiasing_draw_pass(), workbench_cache_finish(), workbench_cavity_cache_init(), workbench_dof_cache_init(), workbench_opaque_cache_init(), workbench_opaque_engine_init(), workbench_outline_cache_init(), workbench_render_framebuffers_init(), workbench_transparent_engine_init(), workbench_volume_modifier_cache_populate(), and workbench_volume_object_cache_populate().

◆ dupli_key_cmp()

static bool dupli_key_cmp ( const void key1,
const void key2 
)
static

Definition at line 662 of file draw_manager.c.

References DupliKey::ob, and DupliKey::ob_data.

Referenced by drw_duplidata_load().

◆ dupli_key_hash()

static uint dupli_key_hash ( const void key)
static

Definition at line 656 of file draw_manager.c.

References BLI_ghashutil_ptrhash(), DupliKey::ob, and DupliKey::ob_data.

Referenced by drw_duplidata_load().

◆ duplidata_key_free()

static void duplidata_key_free ( void key)
static

◆ duplidata_value_free()

static void duplidata_value_free ( void val)
static

Definition at line 707 of file draw_manager.c.

References g_registered_engines, MEM_freeN, and MEM_SAFE_FREE.

Referenced by drw_duplidata_free().

◆ id_can_have_drawdata()

static bool id_can_have_drawdata ( const ID id)
static

Definition at line 826 of file draw_manager.c.

References GS, id, id_type_can_have_drawdata(), ID::name, and NULL.

Referenced by DRW_drawdata_ensure(), and DRW_drawdatalist_from_id().

◆ id_type_can_have_drawdata()

static bool id_type_can_have_drawdata ( const short  id_type)
static

Definition at line 810 of file draw_manager.c.

References ID_OB, and ID_WO.

Referenced by id_can_have_drawdata().

◆ use_drw_engine()

static void use_drw_engine ( DrawEngineType engine)
static

Variable Documentation

◆ DST

DRWManager DST = {NULL}

Render State: No persistent data between draw calls.

Definition at line 104 of file draw_manager.c.

Referenced by draw_call_batching_finish(), draw_call_batching_flush(), draw_call_is_culled(), draw_call_resource_bind(), draw_compute_culling(), draw_geometry_bind(), draw_geometry_execute(), draw_indirect_call(), draw_legacy_matrix_update(), draw_shgroup(), draw_unit_state_create(), draw_update_uniforms(), drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_delayed(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), DRW_buffer_add_entry_array(), DRW_buffer_add_entry_struct(), DRW_cache_restart(), drw_call_obinfos_init(), drw_command_create(), DRW_context_state_get(), drw_context_state_init(), DRW_culling_box_test(), DRW_culling_frustum_corners_get(), DRW_culling_frustum_planes_get(), DRW_culling_min_max_test(), DRW_culling_plane_test(), DRW_culling_sphere_test(), DRW_custom_pipeline(), drw_debug_draw_lines(), drw_debug_draw_spheres(), DRW_debug_line_v3v3(), DRW_debug_sphere(), drw_deferred_shader_add(), drw_deferred_shader_compilation_exec(), DRW_draw_callbacks_post_scene(), DRW_draw_callbacks_pre_scene(), DRW_draw_depth_loop(), drw_draw_pass_ex(), DRW_draw_region_engine_info(), DRW_draw_render_loop(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_render_loop_offscreen(), DRW_draw_select_id(), DRW_draw_select_loop(), drw_draw_show_annotation(), DRW_draw_view(), DRW_drawdata_ensure(), drw_duplidata_free(), DRW_duplidata_get(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_draw_text(), drw_engines_enable(), drw_engines_enable_editors(), DRW_engines_free(), drw_engines_init(), drw_engines_world_update(), DRW_fluid_ensure_flags(), DRW_fluid_ensure_range_field(), DRW_notify_view_update(), drw_notify_view_update_offscreen(), DRW_object_get_dupli(), DRW_object_get_dupli_parent(), DRW_object_is_renderable(), DRW_object_resource_id_get(), DRW_opengl_context_activate(), DRW_opengl_context_create(), DRW_opengl_context_destroy(), DRW_opengl_context_disable_ex(), DRW_opengl_context_enable(), DRW_opengl_context_enable_ex(), DRW_opengl_context_release(), DRW_opengl_render_context_disable(), DRW_opengl_render_context_enable(), DRW_pass_create(), DRW_pass_sort_shgroup_z(), DRW_render_context_enable(), DRW_render_gpencil(), DRW_render_gpencil_to_image(), DRW_render_instance_buffer_finish(), DRW_render_object_iter(), DRW_render_set_time(), DRW_render_to_image(), DRW_render_viewport_size_set(), drw_resource_buffer_finish(), drw_resource_handle(), drw_resource_handle_new(), DRW_select_load_id(), DRW_shader_from_material(), DRW_shader_from_world(), DRW_shgroup_call_buffer(), DRW_shgroup_call_buffer_instance(), DRW_shgroup_call_ex(), DRW_shgroup_call_instance_range(), DRW_shgroup_call_instances(), DRW_shgroup_call_instances_with_attrs(), drw_shgroup_call_procedural_add_ex(), DRW_shgroup_call_range(), drw_shgroup_create_ex(), DRW_shgroup_create_sub(), DRW_shgroup_curves_create_sub(), drw_shgroup_material_texture(), drw_shgroup_uniform_create_ex(), DRW_smoke_ensure(), DRW_smoke_ensure_coba_field(), DRW_smoke_ensure_velocity(), DRW_state_draw_background(), DRW_state_draw_support(), DRW_state_is_depth(), DRW_state_is_fbo(), DRW_state_is_image_render(), DRW_state_is_material_select(), DRW_state_is_navigating(), DRW_state_is_opengl_render(), DRW_state_is_playback(), DRW_state_is_scene_render(), DRW_state_is_select(), DRW_state_lock(), DRW_state_reset_ex(), drw_state_set(), DRW_state_show_text(), drw_state_validate(), DRW_stats_draw(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_text_cache_ensure(), DRW_texture_pool_query_2d(), drw_update_view(), DRW_view_create(), DRW_view_create_sub(), DRW_view_default_get(), DRW_view_default_set(), DRW_view_far_distance_get(), DRW_view_get_active(), DRW_view_is_persp_get(), DRW_view_layer_engine_data_ensure(), DRW_view_layer_engine_data_get(), DRW_view_near_distance_get(), DRW_view_persmat_get(), DRW_view_reset(), DRW_view_set_active(), DRW_view_update(), DRW_view_viewmat_get(), DRW_view_winmat_get(), DRW_viewport_framebuffer_list_get(), DRW_viewport_invert_size_get(), DRW_viewport_pixelsize_get(), DRW_viewport_request_redraw(), DRW_viewport_screenvecs_get(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), drw_volume_object_grids_init(), drw_volume_object_mesh_init(), and use_drw_engine().

◆ engines

ListBase engines

Definition at line 107 of file draw_manager.c.

◆ 

struct { ... } g_registered_engines

◆ g_select_buffer

struct DRWSelectBuffer g_select_buffer = {NULL}
static

◆ len

Definition at line 108 of file draw_manager.c.

Referenced by _bli_array_permute(), _glewSearchExtension(), add_struct(), addedgetoscanlist(), Freestyle::BlenderFileLoader::addTriangle(), alter_co(), an_stringdec(), angle_poly_v3(), ANIM_add_driver_with_target(), apply_heights_callback(), applyLength(), arrow_draw_geom(), asset_bundle_install_exec(), bake_offset_towards_center(), blender::gpu::MTLFrameBuffer::bake_render_pass_descriptor(), bezier_handle_calc_length_v3(), BKE_blendfile_link_append_context_item_add(), BKE_blendfile_link_append_context_library_add(), BKE_brush_curve_strength(), BKE_brush_curve_strength_clamped(), BKE_curve_bevelList_make(), BKE_curve_correct_bezpart(), BKE_fcurve_correct_bezpart(), BKE_fcurve_pathcache_find(), BKE_fcurve_pathcache_find_array(), BKE_gpencil_stroke_join(), BKE_gpencil_stroke_shrink(), BKE_gpencil_stroke_stretch(), BKE_image_save_options_init(), BKE_image_user_frame_get(), BKE_keyblock_convert_from_mesh(), BKE_mask_clipboard_copy_from_layer(), BKE_mask_point_set_handle(), BKE_mask_spline_resolution(), BKE_mball_is_basis(), BKE_nurb_duplicate(), BKE_nurb_makeCurve(), BKE_nurb_makeFaces(), BKE_object_dimensions_set_ex(), BKE_paint_toolslots_len_ensure(), BKE_ptcache_disk_cache_rename(), BKE_ptcache_id_clear(), BKE_ptcache_id_time(), BKE_ptcache_load_external(), BKE_report(), BKE_tracking_tracks_join(), BKE_vfont_clipboard_set(), blendfile_library_relocate_remap(), BLI_box_pack_2d(), BLI_dir_free_space(), BLI_dynstr_appendf(), BLI_dynstr_nappend(), BLI_dynstr_vappendf(), BLI_exists(), BLI_file_unzstd_to_mem_at_pos(), BLI_file_zstd_from_mem_at_pos(), BLI_filename_make_safe_ex(), BLI_filereader_new_memory(), BLI_hash_md5_buffer(), BLI_hash_md5_stream(), BLI_hash_md5_to_hexdigest(), BLI_hash_mm2(), BLI_hash_mm2a_add(), BLI_hash_mm3(), BLI_jitterate1(), BLI_linklist_count(), BLI_path_frame_get(), BLI_path_frame_strip(), BLI_path_join(), BLI_path_slash_ensure(), BLI_path_slash_rstrip(), BLI_str_escape(), BLI_str_format_byte_unit(), BLI_str_tolower_ascii(), BLI_str_toupper_ascii(), BLI_str_unescape(), BLI_str_unescape_ex(), BLI_str_utf32_as_utf8(), BLI_str_utf32_as_utf8_len(), BLI_str_utf8_as_unicode(), BLI_str_utf8_as_unicode_step_or_error(), BLI_str_utf8_as_utf32(), BLI_str_utf8_from_unicode(), BLI_str_utf8_from_unicode_len(), BLI_str_utf8_size(), BLI_str_utf8_size_safe(), BLI_strcasestr(), BLI_strdupn(), BLI_string_find_split_words(), BLI_string_flip_side_name(), BLI_string_split_prefix(), BLI_string_split_suffix(), BLI_strlen_utf8_ex(), BLI_strncasecmp(), BLI_strncasestr(), BLI_strncpy_wchar_as_utf8(), BLI_strnlen(), BLI_strnlen_utf8_ex(), BLI_system_thread_count(), BLI_uniquename_cb(), BLI_wstrlen_utf8(), bm_bridge_best_rotation(), BM_disk_dissolve(), bm_edge_info_average_length(), BM_edge_is_any_face_len_test(), bm_edge_seg_isect(), bm_edgeloop_offset_length(), BM_edges_from_verts(), BM_edges_from_verts_ensure(), bm_edges_sort_winding(), BM_face_create(), BM_face_create_ngon(), BM_face_create_ngon_verts(), BM_face_create_verts(), BM_face_exists(), BM_face_exists_multi(), BM_face_exists_multi_edge(), BM_face_exists_overlap(), BM_face_exists_overlap_subset(), BM_face_split_edgenet_connect_islands(), BM_face_splits_check_legal(), BM_face_splits_check_optimal(), BM_iter_as_array(), BM_loop_at_index_find(), BM_loop_calc_face_normal(), bm_mesh_calc_uvs_sphere_face(), bm_uuidwalk_init_from_edge(), BM_vert_calc_normal(), BM_vert_calc_normal_ex(), BM_vert_dissolve(), BM_vert_normal_update_all(), BM_verts_from_edges(), BM_verts_in_face(), BM_verts_in_face_count(), BM_verts_sort_radial_plane(), bmesh_disk_validate(), bmesh_elem_check(), bmesh_loop_validate(), bmo_connect_verts_nonplanar_exec(), bmo_create_uvsphere_exec(), BMO_iter_as_array(), BMO_slot_as_arrayN(), BMO_slot_buffer_alloc(), bmw_EdgeringWalker_step(), boid_brain(), bone_autoside_name(), boxPack_FromPyObject(), boxPack_ToPyObject(), bpy_bmeditselseq_subscript(), bpy_bmelemseq_subscript(), bpy_bmlayercollection_subscript(), bpy_bmlayercollection_subscript_int(), bpy_bmlayercollection_subscript_slice(), BPY_context_member_get(), BPy_IDGroup_CorrectListLen(), bpy_prop_boolean_array_get_fn(), bpy_prop_boolean_array_set_fn(), bpy_prop_float_array_get_fn(), bpy_prop_float_array_set_fn(), bpy_prop_int_array_get_fn(), bpy_prop_int_array_set_fn(), BPy_Wrap_GetKeys(), btAdjustInternalEdgeContacts(), btStrLen(), buffer_alloc(), buffer_realloc(), Buffer_to_list(), Buffer_to_list_recursive(), C_BVHTree_FromPolygons(), calc_bevfac_spline_mapping(), calchandle_curvemap(), calchandleNurb_intern(), blender::bke::curves::bezier::calculate_point_handles(), btTransformUtil::calculateDiffAxisAngle(), btTransformUtil::calculateDiffAxisAngleQuaternion(), camera_distance(), camera_z_depth(), check_destination(), check_field_alignment(), clampto_evaluate(), clg_ctx_filter_check(), clg_str_append_with_len(), clg_str_reserve(), cloth_bend_poly_dir(), cloth_bend_set_poly_vert_array(), cloth_calc_helper_forces(), compute_face_normal(), Mesh::Triangle::compute_normal(), console_indent_exec(), console_insert_exec(), console_insert_invoke(), console_line_insert(), console_line_verify_length(), console_unindent_exec(), copy_single_file(), blender::compositor::tests::create_buffer(), blender::compositor::tests::create_input_buffer(), Freestyle::createStroke(), curve_to_displist(), deformStroke(), LightManager::device_update_points(), differential_make_compact(), direction_to_equirectangular_range(), DNA_elem_size_nr(), do_smear_brush_task_cb_exec(), dquat_to_mat4(), draw_distortion(), draw_frustum_bound_sphere_calc(), drw_shgroup_bone_envelope(), ED_armature_ebone_from_mat3(), ed_editnurb_extrude_flag(), ED_gpencil_stroke_point_is_inside(), ED_info_statusbar_string_ex(), ED_keylist_draw_keylist_visible_key_len(), ED_keylist_draw_list_visible_key_len(), ED_mask_feather_find_nearest(), ed_mesh_pick_vert__mapFunc(), ED_scene_grid_scale(), ED_undo_editmode_bases_from_view_layer(), ED_undo_editmode_objects_from_view_layer(), ED_view3d_grid_steps(), ED_view3d_grid_view_scale(), edbm_bevel_calc_initial_length(), edbm_connect_vert_pair(), edbm_knife_cut_exec(), editstr_insert_at_cursor(), eff_calc_visibility(), BezierSpline::ensure_auto_handles(), ensure_digits(), evaluate_curve_type_object(), evaluate_surface_object(), export_hair_curves(), exr_rgba_channelname(), blender::draw::extract_lines_loose_subbuffer(), blender::draw::extract_lines_with_lines_loose_finish_subdiv(), blender::draw::extract_select_idx_init_impl(), blender::draw::extract_tris_finish(), blender::draw::extract_tris_init_subdiv(), blender::draw::extract_tris_single_mat_finish(), face_map_move_exec(), fcurve_path_rename(), blender::compositor::FHT(), file_draw_string_multiline(), file_seek(), find_internal_spring_target_vertex(), flatten_string(), flatten_string_append(), flatten_string_strlen(), blender::gpu::MTLCircularBuffer::flush(), blender::nodes::node_fn_slice_string_cc::fn_node_slice_string_build_multi_function(), followpath_path_animate_exec(), fsmenu_entry_generate_name(), fsmenu_read_bookmarks(), gearGL(), get_default_rna_value(), get_stats_string(), get_suggest_prefix(), GHOST_SystemWin32::getClipboard(), GHOST_SystemX11::getClipboard_xcout(), GHOST_SystemCocoa::GHOST_SystemCocoa(), GHOST_WindowX11::GHOST_WindowX11(), gizmo_preselect_elem_test_select(), gizmo_refresh_from_matrix(), gpencil_duplicate_points(), GPU_debug_get_groups_names(), GPU_indexbuf_update_sub(), GPU_shader_uniform_2fv_array(), GPU_shader_uniform_4fv_array(), GPU_shader_uniform_vector(), GPU_shader_uniform_vector_int(), GPU_unpack_row_length_set(), gpu_vertbuf_create_from_format(), GPU_vertbuf_update_sub(), GPU_vertformat_safe_attr_name(), blender::compositor::DebugInfo::graphviz_legend(), blender::compositor::DebugInfo::graphviz_legend_color(), blender::compositor::DebugInfo::graphviz_legend_group(), blender::compositor::DebugInfo::graphviz_legend_line(), blender::compositor::DebugInfo::graphviz_operation(), blender::compositor::DebugInfo::graphviz_system(), HsiehHash(), hull_merge_triangles(), idp_from_PyMapping(), IDP_ResizeIDPArray(), idp_sequence_type(), idp_str_append_escape(), idprop_ui_data_update_float_default(), idprop_ui_data_update_int_default(), imb_exr_insert_view_name(), imb_exr_split_channel_name(), IMB_indexer_get_frame_index(), IMB_metadata_get_field(), IMB_thumb_load_font_get_hash(), init_track_for_stabilization(), blender::draw::init_vbo_for_attribute(), btDefaultSerializer::initDNA(), insert_text_exec(), is_hidden_dot_filename(), is_track_clean(), join_dirfile_alloc(), light_distribution_sample(), light_spread_clamp_area_light(), load_tex_cursor_task_cb(), load_tex_task_cb_ex(), M_Geometry_area_tri(), M_Geometry_box_pack_2d(), M_Interpolate_poly_3d_calc(), make_memhead_header(), make_structDNA(), map_to_sphere(), map_to_tube(), mathutils_array_hash(), mathutils_rna_vector_set(), md5_process_block(), mdisp_rot_face_to_crn(), mean_value_half_tan_v2_db(), mean_value_half_tan_v3(), MEM_guarded_calloc_arrayN(), MEM_guarded_callocN(), MEM_guarded_malloc_arrayN(), MEM_guarded_mallocN(), MEM_guarded_mallocN_aligned(), MEM_guarded_reallocN_id(), MEM_guarded_recallocN_id(), MEM_lockfree_calloc_arrayN(), MEM_lockfree_callocN(), MEM_lockfree_freeN(), MEM_lockfree_malloc_arrayN(), MEM_lockfree_mallocN(), MEM_lockfree_mallocN_aligned(), MEM_lockfree_reallocN_id(), MEM_lockfree_recallocN_id(), mesh_add_edges(), mesh_add_loops(), mesh_add_polys(), mesh_add_verts(), mesh_remove_edges(), mesh_remove_loops(), mesh_remove_polys(), mesh_remove_verts(), mesh_uv_reset_array(), meshdeform_ray_tree_intersect(), metadata_draw_imbuf(), metadata_get_field(), mm2a_mix_tail(), MOD_solidify_nonmanifold_modifyMesh(), motion_path_cache(), mywrite(), new_folder_path(), blender::draw::SwapChain< T, len >::next(), nlaedit_split_strip_actclip(), noise_table(), normalize(), blender::math::normalize(), normalize_m4(), normalize_m4_m4(), normalize_qt(), NormalizeSafe(), object_volume_density(), ObtainCacheParticleData(), oldreadcolrs(), operator_search_update_fn(), opj_seek_from_buffer(), outliner_buttons(), output_iris(), p_chart_boundaries(), p_chart_minimum_area_angle(), p_chart_symmetry_pins(), paint_stroke_line_constrain(), parse_int_range_relative_clamp_n(), passtype_from_name(), paste_selection(), path_ensure_slash(), point_calculate_handle(), poly_avg(), poly_norm(), pose_slide_apply_props(), pose_solve_ik_chain(), poselib_preview_handle_search(), precise_angle(), blender::draw::SwapChain< T, len >::previous(), btSphereSphereCollisionAlgorithm::processCollision(), prop_subscript_ass_array_int(), btSoftBody::PSolve_Links(), psys_get_dupli_path_transform(), ptcache_file_compressed_read(), ptcache_filename(), ptcache_filename_ext_append(), ptcache_frame_from_filename(), GHOST_SystemWin32::putClipboard(), PyC_Tuple_PackArray_Bool(), PyC_Tuple_PackArray_F32(), PyC_Tuple_PackArray_F64(), PyC_Tuple_PackArray_I32(), PyC_Tuple_PackArray_I32FromBool(), PyC_Tuple_PackArray_Multi_Bool_impl(), PyC_Tuple_PackArray_Multi_F32_impl(), PyC_Tuple_PackArray_Multi_F64_impl(), PyC_Tuple_PackArray_Multi_I32_impl(), pygpu_buffer_to_list(), pygpu_buffer_to_list_recursive(), pygpu_fill_format_sequence(), pygpu_matrix_scale(), pygpu_matrix_translate(), pygpu_texture__tp_new(), pygpu_vertbuf__tp_new(), pyrna_array_contains_py(), pyrna_deferred_register_class_recursive(), pyrna_math_object_from_array(), pyrna_param_to_py(), pyrna_prop_array_ass_subscript(), pyrna_prop_array_iter(), pyrna_prop_array_subscript(), pyrna_prop_array_subscript_int(), pyrna_prop_collection_ass_subscript(), pyrna_prop_collection_ass_subscript_int(), pyrna_prop_collection_subscript(), pyrna_prop_collection_subscript_int(), pyrna_prop_str(), pyrna_py_from_array_index(), quad_from_tris(), Quaternion_angle_set(), Quaternion_axis_vector_set(), blender::bke::cryptomatte::manifest::quoted_string_len_(), radial_control_get_path(), ray_optical_depth(), blender::io::obj::read_next_line(), read_pipe(), readtab(), replace_bbone_len_scale_rnapath(), repr_str(), btSolve2LinearConstraint::resolveBilateralPairConstraint(), btSolve2LinearConstraint::resolveUnilateralPairConstraint(), rna_array_as_string(), rna_array_as_string_alloc(), rna_array_as_string_elem(), RNA_def_boolean_array(), RNA_def_boolean_layer(), RNA_def_boolean_layer_member(), RNA_def_boolean_vector(), RNA_def_float_array(), RNA_def_float_color(), RNA_def_float_rotation(), RNA_def_float_translation(), RNA_def_float_vector(), RNA_def_float_vector_xyz(), RNA_def_int_array(), RNA_def_int_vector(), RNA_function_call_direct_va(), rna_function_parameter_parse(), rna_generate_property(), RNA_parameter_dynamic_length_get(), rna_parameter_size(), rna_path_parse_array_index(), rna_path_token(), rna_path_token_in_brackets(), RNA_property_animated(), rna_property_array_length_all_dimensions(), RNA_property_as_string(), RNA_property_boolean_get_default_index(), RNA_property_boolean_get_index(), RNA_property_boolean_set_index(), RNA_property_collection_clear(), RNA_property_collection_move(), RNA_property_collection_raw_get(), RNA_property_collection_raw_set(), RNA_property_collection_remove(), RNA_property_float_get_default_index(), RNA_property_float_get_index(), RNA_property_float_set_index(), RNA_property_int_get_default_index(), RNA_property_int_get_index(), RNA_property_int_set_index(), RNA_property_multi_array_length(), RNA_property_reset(), RNA_property_string_set_bytes(), rotation_contribution(), rule_avoid_collision(), rule_follow_leader(), rule_goal_avoid(), rule_separate(), SCULPT_brush_strength_factor(), sculpt_cloth_filter_modal(), sculpt_color_filter_modal(), sculpt_mask_by_color_contiguous_floodfill_cb(), sculpt_mask_by_color_delta_get(), sculpt_mask_expand_modal(), sculpt_mesh_filter_modal(), sculpt_pose_grow_pose_factor(), select_similar_length(), seq_foreach_path_callback(), sequencer_change_path_exec(), sequencer_image_seq_reserve_frames(), serializeDynamicsWorldInfo(), btMultiBodyDynamicsWorld::serializeMultiBodies(), btDefaultSerializer::serializeName(), serializeRigidBodies(), serializeSingleBvh(), serializeSingleShape(), serializeSingleTriangleInfoMap(), btSoftMultiBodyDynamicsWorld::serializeSoftBodies(), btSoftRigidDynamicsWorld::serializeSoftBodies(), session_print(), set_case(), setNearestAxis3d(), GHOST_WindowCocoa::setTitle(), single_scattering(), skin_choose_quad_bridge_order(), slide_dist(), sphere_do(), stencil_control_calculate(), blender::draw::StorageArrayBuffer< T, len, device_only >::StorageArrayBuffer(), blender::draw::detail::StorageCommon< T, len, device_only >::StorageCommon(), str_tolower_titlecaps_ascii(), string_dup(), string_endswith(), string_startswith(), blender::io::stl::StringBuffer::StringBuffer(), subsurface_disk(), svm_node_camera(), svm_node_vector_rotate(), svm_node_wireframe(), svm_vector_math(), svm_wave(), blender::draw::SwapChain< T, len >::swap(), system_physical_ram(), TEST(), test_endian_zbuf(), text_autocomplete_build(), text_check_format_len(), text_convert_whitespace_exec(), text_cursor_set_to_pos_wrapped(), text_format_fill(), text_format_fill_ascii(), text_from_buf(), text_insert_invoke(), texttool_docs_show(), texttool_suggest_add(), blender::gpu::MTLStateManager::texture_unpack_row_length_set(), blender::gpu::GLStateManager::texture_unpack_row_length_set(), textview_draw_string(), textview_wrap_offsets(), tracking_dopesheet_channels_segments_calc(), transform_decompose(), tri_to_quat(), triangle_area(), triangle_light_pdf(), trim(), txt_from_buf_for_undo(), txt_select_prefix(), txtfmt_ini_find_bool(), txtfmt_ini_find_keyword(), txtfmt_ini_find_reserved(), txtfmt_lua_find_bool(), txtfmt_lua_find_keyword(), txtfmt_lua_find_specialvar(), txtfmt_lua_format_line(), txtfmt_osl_find_builtinfunc(), txtfmt_osl_find_reserved(), txtfmt_osl_find_specialvar(), txtfmt_osl_format_line(), txtfmt_pov_find_bool(), txtfmt_pov_find_keyword(), txtfmt_pov_find_reserved_builtins(), txtfmt_pov_find_reserved_keywords(), txtfmt_pov_find_specialvar(), txtfmt_pov_format_line(), txtfmt_pov_ini_format_line(), txtfmt_py_find_bool(), txtfmt_py_find_builtinfunc(), txtfmt_py_find_specialvar(), txtfmt_py_format_line(), ui_block_calc_pie_segment(), ui_but_text_password_hide(), ui_do_but_HSVCIRCLE(), ui_do_but_HSVCUBE(), UI_draw_text_underline(), ui_handle_list_event(), ui_item_array(), ui_item_name_add_colon(), ui_item_rna_size(), ui_layer_but_cb(), ui_number_from_string_factor(), ui_number_from_string_percentage(), ui_numedit_but_HSVCIRCLE(), ui_selectcontext_apply(), ui_text_clip_cursor(), ui_textedit_begin(), ui_textedit_delete(), ui_textedit_delete_selection(), ui_textedit_insert_buf(), ui_textedit_move(), uiDefAutoButsArrayR(), uiItemFullR(), uilist_filter_items_default(), uiTemplateImageInfo(), uiTemplateMovieclipInformation(), undo_editmode_objects_from_view_layer_prepare(), blender::draw::UniformArrayBuffer< T, len >::UniformArrayBuffer(), blender::draw::detail::UniformCommon< T, len, device_only >::UniformCommon(), unique_name(), unit_as_string(), unit_scale_str(), unpack_generate_paths(), blender::ed::sculpt_paint::update_curve_mask(), blender::ed::sculpt_paint::update_sampled_curve(), blender::gpu::GLIndexBuf::update_sub(), blender::gpu::GLVertBuf::update_sub(), btSoftBody::updateNormals(), util_murmur_hash3(), uv_poly_copy_aspect(), uvedit_uv_straighten_elements(), Freestyle::V2Normalize(), Freestyle::V2Scale(), validate_array_length(), vec_to_quat(), vertbuf_alloc(), vertbuf_device_alloc(), vertbuf_update_data(), wireframe(), wm_autosave_location(), wm_file_write(), WM_gesture_lasso_path_to_array(), wm_gizmomap_select_array_ensure_len_alloc(), wm_read_exotic(), Camera::world_to_raster_size(), writedata(), and writetab().