Blender  V2.93
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_duplilist.h"
#include "BKE_editmesh.h"
#include "BKE_global.h"
#include "BKE_gpencil.h"
#include "BKE_hair.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_volume.h"
#include "DNA_camera_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_world_types.h"
#include "draw_manager.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_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_profiling.h"
#include "draw_manager_testing.h"
#include "draw_manager_text.h"
#include "draw_cache_impl.h"
#include "engines/basic/basic_engine.h"
#include "engines/eevee/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_is_flat_normal (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))
 
Color Management
static void drw_viewport_colormanagement_set (void)
 
Viewport (DRW_viewport)
void * drw_viewport_engine_data_ensure (void *engine_type)
 
void DRW_engine_viewport_data_size_get (const void *engine_type_v, int *r_fbl_len, int *r_txl_len, int *r_psl_len, int *r_stl_len)
 
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_viewport_cache_resize (void)
 
static void drw_context_state_init (void)
 
static void draw_unit_state_create (void)
 
static void drw_viewport_var_init (void)
 
DefaultFramebufferListDRW_viewport_framebuffer_list_get (void)
 
DefaultTextureListDRW_viewport_texture_list_get (void)
 
void DRW_viewport_request_redraw (void)
 
Duplis
static void drw_duplidata_load (DupliObject *dupli)
 
static void duplidata_value_free (void *val)
 
static void drw_duplidata_free (void)
 
void ** DRW_duplidata_get (void *vedata)
 
ViewLayers (DRW_scenelayer)
void * DRW_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_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)
 
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_depth (void)
 
bool DRW_state_is_image_render (void)
 
bool DRW_state_do_color_management (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 (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))
 

Variables

DRWManager DST = {NULL}
 
static ListBase DRW_engines = {NULL, 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 rcti *rect, DRW_SelectPassFn select_pass_fn, void *select_pass_user_data, DRW_ObjectFilterFn object_filter_fn, void *object_filter_user_data)
 
static void drw_draw_depth_loop_impl (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, GPUViewport *viewport, const bool use_opengl_context)
 
void DRW_draw_depth_loop (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, GPUViewport *viewport)
 
void DRW_draw_depth_loop_gpencil (struct Depsgraph *depsgraph, ARegion *region, View3D *v3d, GPUViewport *viewport)
 
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 1838 of file draw_manager.c.

References 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_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  )

◆ DRW_context_state_get()

const DRWContextState* DRW_context_state_get ( void  )

Definition at line 2902 of file draw_manager.c.

References DRWManager::draw_ctx, and DST.

Referenced by basic_cache_init(), basic_cache_populate(), basic_engine_init(), camera_view3d_reconstruction(), draw_armature_pose(), drw_batch_cache_generate_requested(), DRW_cache_gpencil_face_wireframe_get(), DRW_draw_cursor(), DRW_draw_cursor_2d(), DRW_draw_gizmo_2d(), DRW_draw_gizmo_3d(), DRW_draw_region_info(), 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_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_volume_object_mesh_init(), EEVEE_volumes_cache_init(), EEVEE_volumes_init(), external_cache_init(), external_draw_scene(), external_draw_scene_do(), external_engine_init(), 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(), image_cache_image(), image_cache_image_add(), IMAGE_cache_init(), image_draw_finish(), image_gpu_texture_get(), material_opaque(), material_shadow(), material_transparent(), motion_blur_deform_data_get(), motion_path_cache(), 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_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_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_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_image(), OVERLAY_shader_motion_path_line(), OVERLAY_shader_motion_path_vert(), OVERLAY_shader_outline_prepass(), 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_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(), select_cache_init(), select_cache_populate(), select_engine_init(), space_image_gpu_texture_get(), 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 
)

◆ DRW_draw_depth_loop_gpencil()

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

Converted from ED_view3d_draw_depth_gpencil (legacy drawing).

Definition at line 2626 of file draw_manager.c.

References depsgraph, draw_engine_gpencil_type, drw_draw_depth_loop_impl(), drw_state_prepare_clean_for_draw(), DST, and use_drw_engine().

Referenced by ED_view3d_depth_override().

◆ drw_draw_depth_loop_impl()

static void drw_draw_depth_loop_impl ( struct Depsgraph depsgraph,
ARegion region,
View3D v3d,
GPUViewport viewport,
const bool  use_opengl_context 
)
static

◆ DRW_draw_depth_object()

void DRW_draw_depth_object ( Scene scene,
ARegion region,
View3D v3d,
GPUViewport viewport,
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 2055 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_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_viewport_cache_resize(), drw_viewport_colormanagement_set(), DRW_viewport_framebuffer_list_get(), drw_viewport_var_init(), DST, ED_annotation_draw_view2d(), ED_region_draw_cb_draw(), ED_region_pixelspace(), ED_region_visible_rect(), DRWContextState::evil_C, G, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), 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_viewport_cache_time_get(), 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::viewport, 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 
)

Used for both regular and off-screen drawing. Need to reset DST before calling this function

Definition at line 1528 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_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_hair_init(), DRW_hair_update(), DRW_render_instance_buffer_finish(), DRW_state_reset(), DRW_stats_begin(), DRW_stats_reset(), drw_task_graph_deinit(), drw_task_graph_init(), drw_viewport_cache_resize(), drw_viewport_colormanagement_set(), drw_viewport_var_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_parent, DRWManager::dupli_source, DRWContextState::evil_C, RenderEngineType::flag, View3D::flag2, GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_bind(), GPU_framebuffer_restore(), GPU_viewport_cache_time_get(), 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::viewport, 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,
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 
)

◆ 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 rcti rect,
DRW_SelectPassFn  select_pass_fn,
void *  select_pass_user_data,
DRW_ObjectFilterFn  object_filter_fn,
void *  object_filter_user_data 
)

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

Definition at line 2264 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_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_hair_init(), DRW_hair_update(), DRW_render_instance_buffer_finish(), DRW_select_load_id(), DRW_SELECT_PASS_POST, DRW_SELECT_PASS_PRE, 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_viewport_var_init(), DST, DRWManager::dupli_origin, 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(), GPU_viewport_create(), GPU_viewport_free(), GPU_viewport_size_set(), 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::viewport.

◆ 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 944 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 ( ID id)

◆ drw_duplidata_free()

static void drw_duplidata_free ( void  )
static

◆ DRW_duplidata_get()

void** DRW_duplidata_get ( void *  vedata)

◆ drw_duplidata_load()

static void drw_duplidata_load ( DupliObject dupli)
static

◆ DRW_engine_register()

void DRW_engine_register ( DrawEngineType draw_engine_type)

Definition at line 2918 of file draw_manager.c.

References BLI_addtail(), and DRW_engines.

Referenced by DRW_engines_register(), and RE_engines_register().

◆ DRW_engine_render_support()

bool DRW_engine_render_support ( DrawEngineType draw_engine_type)

Definition at line 2913 of file draw_manager.c.

References DrawEngineType::render_to_image.

Referenced by RE_engine_is_opengl().

◆ DRW_engine_viewport_data_size_get()

void DRW_engine_viewport_data_size_get ( const void *  engine_type_v,
int *  r_fbl_len,
int *  r_txl_len,
int *  r_psl_len,
int *  r_stl_len 
)

◆ 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 1244 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 2923 of file draw_manager.c.

References BKE_curve_batch_cache_dirty_tag_cb, BKE_curve_batch_cache_free_cb, BKE_gpencil_batch_cache_dirty_tag_cb, BKE_gpencil_batch_cache_free_cb, BKE_hair_batch_cache_dirty_tag_cb, BKE_hair_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_volume_batch_cache_dirty_tag_cb, BKE_volume_batch_cache_free_cb, RenderEngineType::draw_engine, draw_engine_basic_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_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_hair_batch_cache_dirty_tag(), DRW_hair_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_volume_batch_cache_dirty_tag(), DRW_volume_batch_cache_free(), and RE_engines_register().

Referenced by RE_engines_init().

◆ 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 3162 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_notify_view_update()

void DRW_notify_view_update ( const DRWUpdateContext update_ctx)

◆ 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_flat_normal()

bool DRW_object_is_flat_normal ( const Object ob)

Definition at line 241 of file draw_manager.c.

References Object::data, MPoly::flag, ME_SMOOTH, Mesh::mpoly, OB_MESH, and Object::type.

◆ 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_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_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_render_check_grease_pencil()

bool DRW_render_check_grease_pencil ( 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 ( RenderEngine engine,
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])

◆ DRW_state_do_color_management()

bool DRW_state_do_color_management ( void  )

Whether the view transform should be applied.

Definition at line 2827 of file draw_manager.c.

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

◆ DRW_state_draw_background()

bool DRW_state_draw_background ( void  )

Whether we should render the background

Definition at line 2891 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 2881 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 DRW_draw_depth_loop(), 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_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_cache_resize()

static void drw_viewport_cache_resize ( void  )
static

◆ drw_viewport_colormanagement_set()

static void drw_viewport_colormanagement_set ( void  )
static

◆ drw_viewport_engine_data_ensure()

void* drw_viewport_engine_data_ensure ( void *  engine_type)

◆ 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 454 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 449 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 702 of file draw_manager.c.

References DST, GPU_viewport_texture_list_get(), and DRWManager::viewport.

Referenced by 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_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().

◆ drw_viewport_var_init()

static void drw_viewport_var_init ( void  )
static

Definition at line 555 of file draw_manager.c.

References BLI_memblock_create, BLI_memblock_create_ex(), BLI_rctf_transform_calc_m4_pivot_min(), ViewportMemoryPool::callbuffers, RegionView3D::clip, ViewportMemoryPool::commands, ViewportMemoryPool::commands_small, ViewportMemoryPool::cullstates, View2D::cur, DefaultFramebufferList::default_fb, DRWManager::default_framebuffer, DRWManager::draw_ctx, DRWManager::draw_list, draw_unit_state_create(), DRW_DRAWLIST_LEN, DRW_instance_data_list_reset(), DRW_RESOURCE_CHUNK_LEN, DRW_uniform_attrs_pool_new(), DRW_view_camtexco_set(), DRW_view_clip_planes_set(), DRW_view_create(), DST, ED_view3d_init_mats_rv3d(), G_draw, GPU_draw_list_create(), GPU_SHADER_CFG_CLIPPED, GPU_uniformbuf_create_ex(), GPU_viewport_framebuffer_list_get(), GPU_viewport_instance_data_list_get(), GPU_viewport_mempool_get(), GPU_viewport_size_get(), DRWManager::idatalist, ViewportMemoryPool::images, DRWManager::inv_size, normalize_v3_v3(), NULL, ViewportMemoryPool::obattrs_ubo_pool, ViewportMemoryPool::obinfos, DRWContextState::object_edit, DRWManager::object_instance_data, ViewportMemoryPool::obmats, DRWManager::pass_handle, ViewportMemoryPool::passes, DRWManager::pixsize, RegionView3D::pixsize, DRWManager::primary_view_ct, DRWContextState::region, DRWManager::resource_handle, DRWContextState::rv3d, RV3D_BOXCLIP, RV3D_LOCK_FLAGS, DRWManager::screenvecs, DRWContextState::sh_cfg, ViewportMemoryPool::shgroups, size(), DRWManager::size, ViewportMemoryPool::uniforms, unit_m4(), ARegion::v2d, DRWManager::view_active, DRWManager::view_default, DRWManager::view_previous, DRW_Global::view_ubo, RegionView3D::viewcamtexcofac, RegionView3D::viewinv, RegionView3D::viewmat, DRWManager::viewport, ViewportMemoryPool::views, DRWManager::vmempool, RegionView3D::winmat, and zero_v3().

Referenced by DRW_cache_restart(), DRW_custom_pipeline(), drw_draw_depth_loop_impl(), 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().

◆ duplidata_value_free()

static void duplidata_value_free ( void *  val)
static

Definition at line 747 of file draw_manager.c.

References DST, DRWManager::enabled_engine_count, 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 856 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 840 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

◆ DRW_engines

ListBase DRW_engines = {NULL, NULL}
static

Definition at line 113 of file draw_manager.c.

Referenced by DRW_engine_register(), and DRW_engines_free().

◆ DST

DRWManager DST = {NULL}

Render State: No persistent data between draw calls.

Definition at line 111 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_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_depth_loop_gpencil(), drw_draw_depth_loop_impl(), 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_notify_view_update(), DRW_object_get_dupli(), DRW_object_get_dupli_parent(), DRW_object_is_renderable(), DRW_object_resource_id_get(), DRW_opengl_context_create(), DRW_opengl_context_destroy(), DRW_opengl_context_disable_ex(), DRW_opengl_context_enable(), DRW_opengl_context_enable_ex(), 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_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_create_from_material(), DRW_shader_create_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_material_texture(), drw_shgroup_uniform_create_ex(), DRW_state_do_color_management(), DRW_state_draw_background(), DRW_state_draw_support(), DRW_state_is_depth(), DRW_state_is_fbo(), DRW_state_is_image_render(), 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_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_cache_resize(), drw_viewport_colormanagement_set(), drw_viewport_engine_data_ensure(), 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_viewport_var_init(), duplidata_value_free(), and use_drw_engine().

◆ g_select_buffer

struct DRWSelectBuffer g_select_buffer = {NULL}
static