|
Blender
V2.93
|
#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 |
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) |
| DrawDataList * | DRW_drawdatalist_from_id (ID *id) |
| DrawData * | DRW_drawdata_get (ID *id, DrawEngineType *engine_type) |
| DrawData * | DRW_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) |
| typedef struct IdDdtTemplate IdDdtTemplate |
|
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().
|
static |
Definition at line 2220 of file draw_manager.c.
References DRWSelectBuffer::framebuffer_depth_only, g_select_buffer, GPU_DEPTH_COMPONENT24, GPU_framebuffer_check_valid(), GPU_framebuffer_create(), GPU_framebuffer_texture_attach(), GPU_texture_create_2d(), GPU_texture_free(), GPU_texture_height(), GPU_texture_width(), NULL, size(), and DRWSelectBuffer::texture_depth.
Referenced by DRW_draw_select_loop().
|
static |
Definition at line 527 of file draw_manager.c.
References BLI_memblock_alloc(), DRWCullingState::bsphere, copy_v3_fl(), ViewportMemoryPool::cullstates, DRW_handle_increment(), DST, DRWObjectMatrix::model, DRWObjectMatrix::modelinverse, NULL, DRWObjectInfos::ob_color, DRWObjectInfos::ob_flag, DRWObjectInfos::ob_index, DRWObjectInfos::ob_random, ViewportMemoryPool::obinfos, ViewportMemoryPool::obmats, DRWObjectInfos::orcotexfac, BoundSphere::radius, DRWManager::resource_handle, unit_m4(), DRWCullingState::user_data, and DRWManager::vmempool.
Referenced by drw_viewport_var_init().
| void DRW_cache_free_old_batches | ( | Main * | bmain | ) |
Definition at line 981 of file draw_manager.c.
References BKE_scene_get_depsgraph(), DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, DRW_batch_cache_free_old(), ListBase::first, Scene::id, ID::next, ViewLayer::next, NULL, PIL_check_seconds_timer(), scene, Main::scenes, and Scene::view_layers.
Referenced by view3d_main_region_draw().
| void DRW_cache_restart | ( | void | ) |
Definition at line 2034 of file draw_manager.c.
References DRWManager::buffer_finish_called, copy_v2_v2(), DRW_hair_init(), drw_viewport_cache_resize(), drw_viewport_var_init(), DST, DRWManager::inv_size, size(), and DRWManager::size.
Referenced by EEVEE_motion_blur_cache_finish(), and eevee_render_to_image().
| 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().
|
static |
Definition at line 493 of file draw_manager.c.
References BKE_object_pose_armature_get(), DRWManager::draw_ctx, DST, GPU_SHADER_CFG_CLIPPED, GPU_SHADER_CFG_DEFAULT, Object::mode, NULL, OB_MODE_ALL_WEIGHT_PAINT, OB_MODE_EDIT, OB_MODE_OBJECT, OB_MODE_POSE, DRWContextState::obact, DRWContextState::object_edit, DRWContextState::object_mode, DRWContextState::object_pose, DRWContextState::rv3d, RV3D_CLIPPING_ENABLED, DRWContextState::sh_cfg, and DRWContextState::v3d.
Referenced by 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().
| void DRW_custom_pipeline | ( | DrawEngineType * | draw_engine_type, |
| struct Depsgraph * | depsgraph, | ||
| void(*)(void *vedata, void *user_data) | callback, | ||
| void * | user_data | ||
| ) |
Definition at line 1980 of file draw_manager.c.
References DRWManager::buffer_finish_called, callback, data, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWManager::draw_background, DRWManager::draw_ctx, drw_context_state_init(), DRW_hair_init(), drw_state_prepare_clean_for_draw(), drw_viewport_engine_data_ensure(), drw_viewport_var_init(), DST, GPU_finish(), GPU_framebuffer_restore(), GPU_viewport_create(), GPU_viewport_free(), GPU_viewport_size_set(), DRWManager::is_image_render, DRWManager::is_scene_render, NULL, OB_MODE_OBJECT, DRWManager::options, scene, DRWContextState::scene, size(), user_data, and DRWManager::viewport.
Referenced by lightbake_do_sample().
| void DRW_draw_callbacks_post_scene | ( | void | ) |
Definition at line 1401 of file draw_manager.c.
References DEG_get_input_scene(), depsgraph, DRWContextState::depsgraph, DRWManager::draw_ctx, drw_debug_draw(), DRW_draw_gizmo_2d(), DRW_draw_gizmo_3d(), DRW_draw_region_info(), drw_draw_show_annotation(), drw_engines_draw_text(), DRW_state_reset(), DRW_stats_draw(), DRW_viewport_framebuffer_list_get(), DST, ED_annotation_draw_view3d(), ED_region_draw_cb_draw(), ED_region_visible_rect(), DRWContextState::evil_C, View3D::flag2, G, View3D::gizmo_flag, GPU_apply_state(), GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind(), GPU_matrix_projection_set, GPU_matrix_set, DefaultFramebufferList::overlay_fb, DRWContextState::region, REGION_DRAW_POST_VIEW, DRWContextState::rv3d, DRWContextState::v3d, V3D_GIZMO_HIDE, V3D_HIDE_OVERLAYS, RegionView3D::viewmat, and RegionView3D::winmat.
Referenced by DRW_draw_render_loop_ex().
| void DRW_draw_callbacks_pre_scene | ( | void | ) |
Definition at line 1386 of file draw_manager.c.
References DRWManager::draw_ctx, DRW_state_reset(), DST, ED_region_draw_cb_draw(), DRWContextState::evil_C, GPU_matrix_projection_set, GPU_matrix_set, DRWContextState::region, REGION_DRAW_PRE_VIEW, DRWContextState::rv3d, RegionView3D::viewmat, and RegionView3D::winmat.
Referenced by DRW_draw_render_loop_ex(), and DRW_draw_select_loop().
| void DRW_draw_depth_loop | ( | struct Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| GPUViewport * | viewport | ||
| ) |
object mode select-loop, see: ED_view3d_draw_depth_loop (legacy drawing).
Definition at line 2601 of file draw_manager.c.
References depsgraph, DRWManager::draw_ctx, drw_draw_depth_loop_impl(), drw_engines_enable_basic(), drw_engines_enable_overlays(), DRW_state_draw_support(), drw_state_prepare_clean_for_draw(), DST, and DRWContextState::v3d.
Referenced by ED_view3d_depth_override().
| 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().
|
static |
object mode select-loop, see: ED_view3d_draw_depth_loop (legacy drawing).
Definition at line 2494 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, DefaultFramebufferList::depth_only_fb, DRWManager::draw_ctx, drw_context_state_init(), 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_init(), drw_engines_world_update(), DRW_globals_update(), DRW_hair_init(), DRW_hair_update(), DRW_opengl_context_disable(), DRW_opengl_context_enable(), DRW_render_instance_buffer_finish(), DRW_state_reset(), drw_task_graph_deinit(), drw_task_graph_init(), drw_viewport_cache_resize(), drw_viewport_var_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_parent, DRWManager::dupli_source, ED_view3d_engine_type(), GPUViewport::fbl, GPU_framebuffer_bind(), GPU_framebuffer_restore(), GPU_viewport_framebuffer_list_get(), DRWManager::is_depth, NULL, OBACT, View3D::object_type_exclude_viewport, DRWManager::options, DRWContextState::region, ARegion::regiondata, scene, DRWContextState::scene, View3D::shading, View3DShading::type, and DRWManager::viewport.
Referenced by DRW_draw_depth_loop(), and DRW_draw_depth_loop_gpencil().
| void DRW_draw_depth_object | ( | Scene * | scene, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| GPUViewport * | viewport, | ||
| Object * | object | ||
| ) |
Clears the Depth Buffer and draws only the specified object.
Definition at line 2722 of file draw_manager.c.
References batch, BLI_task_graph_create(), BLI_task_graph_free(), BLI_task_graph_work_and_wait(), RegionView3D::clip_local, DefaultFramebufferList::depth_only_fb, drw_batch_cache_validate(), DRW_mesh_batch_cache_create_requested(), DRW_mesh_batch_cache_get_edit_triangles(), DRW_mesh_batch_cache_get_surface(), ED_view3d_clipping_local(), GPUViewport::fbl, float(), GPU_batch_draw(), GPU_batch_program_set_builtin_with_config(), GPU_batch_uniform_4fv_array, GPU_clip_distances(), GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind(), GPU_framebuffer_restore(), GPU_matrix_mul, GPU_matrix_projection_set, GPU_matrix_set, GPU_SHADER_3D_DEPTH_ONLY, GPU_SHADER_CFG_CLIPPED, GPU_SHADER_CFG_DEFAULT, GPU_viewport_framebuffer_list_get(), GPUBatch, Object::mode, NULL, OB_CURVE, OB_MESH, OB_MODE_EDIT, OB_SURF, Object::obmat, ARegion::regiondata, RV3D_CLIPPING_ENABLED, scene, Object::type, RegionView3D::viewmat, and RegionView3D::winmat.
Referenced by ED_view3d_depth_override().
| void DRW_draw_region_engine_info | ( | int | xoffset, |
| int * | yoffset, | ||
| int | line_height | ||
| ) |
Definition at line 1166 of file draw_manager.c.
References BLF_default(), BLF_disable(), BLF_draw_default(), BLF_enable(), BLF_shadow(), BLF_SHADOW, BLF_shadow_offset(), BLI_strncpy(), data, drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, LISTBASE_FOREACH, TH_TEXT_HI, and UI_FontThemeColor().
Referenced by view3d_draw_region_info().
| void DRW_draw_render_loop | ( | struct Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| GPUViewport * | viewport | ||
| ) |
Definition at line 1666 of file draw_manager.c.
References DEG_get_evaluated_scene(), depsgraph, DRW_draw_render_loop_ex(), drw_state_prepare_clean_for_draw(), DST, ED_view3d_engine_type(), NULL, scene, View3D::shading, and View3DShading::type.
| 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().
| 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().
| 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 | ||
| ) |
| viewport | can be NULL, in this case we create one. |
Definition at line 1683 of file draw_manager.c.
References depsgraph, DRWManager::do_color_management, DRWManager::draw_background, draw_background(), DRW_draw_render_loop_ex(), drw_state_prepare_clean_for_draw(), DST, ELEM, View3DShading::flag, View3D::flag2, GPU_blend(), GPU_BLEND_ALPHA_PREMULT, GPU_BLEND_NONE, GPU_clear_color(), GPU_matrix_identity_projection_set(), GPU_matrix_identity_set(), GPU_offscreen_bind(), GPU_viewport_bind_from_offscreen(), GPU_viewport_create(), GPU_viewport_free(), GPU_viewport_unbind_from_offscreen(), DRWManager::is_image_render, NULL, OB_MATERIAL, OB_RENDER, OB_SOLID, OB_WIRE, DRWManager::options, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, V3D_SHADING_SCENE_WORLD, and V3D_SHADING_SCENE_WORLD_RENDER.
Referenced by ED_view3d_draw_offscreen().
| void DRW_draw_select_id | ( | Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| const rcti * | rect | ||
| ) |
Definition at line 2639 of file draw_manager.c.
References DRWManager::buffer_finish_called, DEG_get_evaluated_object(), DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWManager::draw_ctx, draw_engine_select_type, drw_context_state_init(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_init(), DRW_globals_update(), DRW_render_instance_buffer_finish(), drw_resource_buffer_finish(), DRW_select_engine_context_get(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), drw_task_graph_deinit(), drw_task_graph_init(), drw_viewport_cache_resize(), drw_viewport_var_init(), DST, SELECTID_Context::index_drawn_len, SELECTID_Context::is_dirty, SELECTID_Context::last_rect, OBACT, SELECTID_Context::objects, SELECTID_Context::objects_drawn_len, SELECTID_Context::objects_len, DRWContextState::region, ARegion::regiondata, scene, use_drw_engine(), DRWManager::viewport, DRWManager::vmempool, and WM_draw_region_get_viewport().
| 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.
|
static |
Definition at line 131 of file draw_manager.c.
References BLI_assert, DRWManager::draw_ctx, DST, SpaceImage::flag, View3D::flag2, NULL, return(), SI_SHOW_GPENCIL, DRWContextState::space_data, SPACE_IMAGE, SPACE_NODE, SpaceLink::spacetype, DRWContextState::v3d, V3D_HIDE_OVERLAYS, and V3D_SHOW_ANNOTATION.
Referenced by DRW_draw_callbacks_post_scene(), and DRW_draw_render_loop_2d_ex().
| void DRW_draw_view | ( | const bContext * | C | ) |
Definition at line 1496 of file draw_manager.c.
References RenderData::alphamode, C, CTX_data_expect_evaluated_depsgraph(), CTX_wm_region(), CTX_wm_view3d(), DEG_get_evaluated_scene(), depsgraph, DRWManager::do_color_management, DRWManager::draw_background, DRWManager::draw_text, DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), drw_state_prepare_clean_for_draw(), DST, ED_view3d_engine_type(), View3DOverlay::flag, View3D::flag2, OB_RENDER, DRWManager::options, View3D::overlay, Scene::r, R_ADDSKY, scene, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, V3D_OVERLAY_HIDE_TEXT, and WM_draw_region_get_bound_viewport().
| DrawData* DRW_drawdata_ensure | ( | ID * | id, |
| DrawEngineType * | engine_type, | ||
| size_t | size, | ||
| DrawDataInitCb | init_cb, | ||
| DrawDataFreeCb | free_cb | ||
| ) |
Definition at line 899 of file draw_manager.c.
References BASE_FROM_DUPLI, BLI_addtail(), BLI_assert, DRW_drawdata_get(), DRW_drawdatalist_from_id(), DRW_instance_data_next(), DRW_instance_data_request(), DST, DrawData::engine_type, float(), DrawData::free, GS, id, id_can_have_drawdata(), ID_OB, DRWManager::idatalist, MAX_INSTANCE_DATA_SIZE, MEM_callocN, ID::name, NULL, DRWManager::object_instance_data, size(), and t.
Referenced by EEVEE_light_data_ensure(), EEVEE_lightprobe_data_ensure(), EEVEE_object_data_ensure(), EEVEE_world_data_ensure(), select_cache_populate(), and workbench_shadow_cache_populate().
| 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().
| DrawData* DRW_drawdata_get | ( | ID * | id, |
| DrawEngineType * | engine_type | ||
| ) |
Definition at line 883 of file draw_manager.c.
References DRW_drawdatalist_from_id(), LISTBASE_FOREACH, and NULL.
Referenced by DRW_drawdata_ensure(), DRW_select_buffer_context_offset_for_object_elem(), EEVEE_light_data_get(), EEVEE_lightprobe_data_get(), EEVEE_object_data_get(), EEVEE_world_data_get(), select_cache_init(), select_cache_populate(), and workbench_id_update().
|
static |
Definition at line 962 of file draw_manager.c.
References BASE_FROM_DUPLI, BLI_listbase_clear(), DRW_drawdatalist_from_id(), GS, id, ID_OB, ID::name, and NULL.
Referenced by drw_engines_cache_populate().
| DrawDataList* DRW_drawdatalist_from_id | ( | ID * | id | ) |
Definition at line 869 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().
|
static |
Definition at line 756 of file draw_manager.c.
References BLI_ghash_free(), drw_batch_cache_generate_requested(), DST, DRWManager::dupli_ghash, duplidata_value_free(), and NULL.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_ex(), DRW_draw_select_loop(), and DRW_render_object_iter().
| void** DRW_duplidata_get | ( | void * | vedata | ) |
Definition at line 767 of file draw_manager.c.
References DST, DRWManager::dupli_datas, DRWManager::dupli_source, DRWManager::enabled_engine_count, NULL, and DRWManager::vedata_array.
Referenced by OVERLAY_duplidata_get().
|
static |
Definition at line 718 of file draw_manager.c.
References BLI_ghash_ensure_p(), BLI_ghash_ptr_new(), drw_batch_cache_validate(), DST, DRWManager::dupli_datas, DRWManager::dupli_ghash, DRWManager::dupli_origin, DRWManager::enabled_engine_count, MEM_callocN, NULL, and DupliObject::ob.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_ex(), DRW_draw_select_loop(), and DRW_render_object_iter().
| 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().
| 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().
| 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 | ||
| ) |
Definition at line 411 of file draw_manager.c.
References DrawEngineDataSize::fbl_len, DrawEngineDataSize::psl_len, DrawEngineDataSize::stl_len, DrawEngineDataSize::txl_len, and DrawEngineType::vedata_size.
Referenced by GPU_viewport_bind(), GPU_viewport_cache_release(), GPU_viewport_engine_data_create(), and gpu_viewport_engines_data_free().
|
static |
Definition at line 1113 of file draw_manager.c.
References DrawEngineType::cache_finish, data, DST, DRWManager::enabled_engines, ListBase::first, MEM_freeN, and DRWManager::vedata_array.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().
|
static |
Definition at line 1032 of file draw_manager.c.
References BLI_listbase_count(), DrawEngineType::cache_init, data, DRW_text_cache_destroy(), drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engine_count, DRWManager::enabled_engines, ListBase::first, MEM_mallocN, NULL, DRWManager::text_store_p, and DRWManager::vedata_array.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().
|
static |
Definition at line 1073 of file draw_manager.c.
References DrawEngineType::cache_populate, data, drw_batch_cache_generate_requested(), drw_batch_cache_validate(), drw_drawdata_unlink_dupli(), DST, DRWManager::dupli_source, DRWManager::enabled_engines, ListBase::first, Object::id, DrawEngineType::id_update, DRWManager::ob_handle, and DRWManager::vedata_array.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().
|
static |
Definition at line 1290 of file draw_manager.c.
References BLI_array_alloca, BLI_listbase_count(), DST, DRWManager::enabled_engines, GPU_viewport_engines_data_validate(), LISTBASE_FOREACH, NULL, and DRWManager::viewport.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_loop(), and DRW_notify_view_update().
|
static |
Definition at line 1285 of file draw_manager.c.
References BLI_freelistN(), DST, and DRWManager::enabled_engines.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), and DRW_notify_view_update().
|
static |
Definition at line 1127 of file draw_manager.c.
References data, DRWManager::default_framebuffer, DrawEngineType::draw_scene, DRW_state_is_fbo(), DRW_state_reset(), DRW_stats_group_end(), DRW_stats_group_start(), drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, GPU_framebuffer_bind(), DrawEngineType::idname, LISTBASE_FOREACH, PROFILE_END_UPDATE, and PROFILE_START.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().
|
static |
Definition at line 1150 of file draw_manager.c.
References data, DRWManager::draw_ctx, DRW_text_cache_draw(), drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, LISTBASE_FOREACH, PROFILE_END_UPDATE, PROFILE_START, DRWContextState::region, and DRWContextState::v3d.
Referenced by DRW_draw_callbacks_post_scene(), and DRW_draw_render_loop_2d_ex().
|
static |
Definition at line 1270 of file draw_manager.c.
References DRWManager::draw_ctx, draw_engine_gpencil_type, drw_engines_enable_from_engine(), drw_engines_enable_overlays(), DST, OB_SOLID, View3D::shading, View3DShading::type, use_drw_engine(), DRWContextState::v3d, and XRAY_ENABLED.
Referenced by DRW_draw_render_loop_ex(), and DRW_notify_view_update().
|
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().
|
static |
Definition at line 1249 of file draw_manager.c.
References DRWManager::draw_ctx, draw_engine_image_type, draw_engine_overlay_type, DST, SpaceNode::flag, SNODE_BACKDRAW, DRWContextState::space_data, SPACE_IMAGE, SPACE_NODE, SpaceLink::spacetype, and use_drw_engine().
Referenced by DRW_draw_render_loop_2d_ex().
|
static |
Definition at line 1217 of file draw_manager.c.
References RenderEngineType::draw_engine, DRW_engine_viewport_external_type, DRW_engine_viewport_workbench_type, RenderEngineType::flag, NULL, OB_MATERIAL, OB_RENDER, OB_SOLID, OB_WIRE, RE_INTERNAL, and use_drw_engine().
Referenced by drw_engines_enable().
|
static |
Definition at line 1237 of file draw_manager.c.
References draw_engine_overlay_type, and use_drw_engine().
Referenced by DRW_draw_depth_loop(), DRW_draw_select_loop(), and drw_engines_enable().
| void DRW_engines_free | ( | void | ) |
Definition at line 2968 of file draw_manager.c.
References BLI_remlink(), DRW_Global::block_ubo, DRWManager::draw_list, DRW_engines, DRW_globals_free(), DRW_hair_free(), DRW_opengl_context_disable(), DRW_opengl_context_enable(), DRW_shape_cache_free(), DRW_stats_free(), DRW_TEXTURE_FREE_SAFE, DRW_UBO_FREE_SAFE, DST, ListBase::first, DRWSelectBuffer::framebuffer_depth_only, G_draw, g_select_buffer, DRWManager::gl_context, GPU_draw_list_discard(), GPU_FRAMEBUFFER_FREE_SAFE, next, NULL, R_engines, DRW_Global::ramp, DRWSelectBuffer::texture_depth, type, DRW_Global::view_ubo, and DRW_Global::weight_ramp.
Referenced by RE_engines_exit().
|
static |
Definition at line 1017 of file draw_manager.c.
References data, drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, DrawEngineType::engine_init, LISTBASE_FOREACH, PROFILE_END_UPDATE, and PROFILE_START.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().
| 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().
|
static |
Definition at line 1057 of file draw_manager.c.
References data, drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, World::id, DrawEngineType::id_update, LISTBASE_FOREACH, NULL, scene, and Scene::world.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_ex(), and DRW_draw_select_loop().
Definition at line 1307 of file draw_manager.c.
References DEG_id_type_any_exists(), depsgraph, ID_GD, OB_GPENCIL, and View3D::object_type_exclude_viewport.
Referenced by DRW_draw_render_loop_ex(), DRW_draw_select_loop(), DRW_notify_view_update(), and DRW_render_check_grease_pencil().
| 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().
| void DRW_gpu_render_context_enable | ( | void * | re_gpu_context | ) |
Definition at line 3153 of file draw_manager.c.
References BLI_assert, BLI_thread_is_main(), and GPU_context_active_set().
Referenced by DRW_render_context_enable(), eevee_lightbake_context_enable(), and eevee_lightbake_delete_resources().
| void DRW_notify_view_update | ( | const DRWUpdateContext * | update_ctx | ) |
Definition at line 1319 of file draw_manager.c.
References BLI_ticket_mutex_lock(), BLI_ticket_mutex_unlock(), data, depsgraph, DRWUpdateContext::depsgraph, DRWManager::draw_ctx, drw_engines_data_validate(), drw_engines_disable(), drw_engines_enable(), drw_gpencil_engine_needed(), drw_state_prepare_clean_for_draw(), drw_viewport_engine_data_ensure(), DST, DRWManager::enabled_engines, DRWUpdateContext::engine_type, DRWManager::gl_context_mutex, GPU_viewport_active_view_set(), LISTBASE_FOREACH, NULL, OB_MODE_OBJECT, OBACT, DRWUpdateContext::region, DRWContextState::region, ARegion::regiondata, scene, DRWUpdateContext::scene, DRWUpdateContext::v3d, view, DRWUpdateContext::view_layer, DrawEngineType::view_update, DRWManager::viewport, and WM_draw_region_get_viewport().
Referenced by ED_render_view3d_update().
| struct DupliObject* DRW_object_get_dupli | ( | const Object * | UNUSEDob | ) |
Definition at line 306 of file draw_manager.c.
References DST, and DRWManager::dupli_source.
Referenced by DRW_hair_duplimat_get(), EEVEE_motion_blur_object_data_get(), motion_blur_deform_data_get(), and wireframe_hair_cache_populate().
Definition at line 301 of file draw_manager.c.
References DST, and DRWManager::dupli_parent.
Referenced by DRW_hair_duplimat_get(), EEVEE_motion_blur_object_data_get(), and wireframe_hair_cache_populate().
| 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.
| bool DRW_object_is_in_edit_mode | ( | const Object * | ob | ) |
Definition at line 204 of file draw_manager.c.
References BKE_object_is_in_editmode(), Object::data, DEG_is_original_id(), Mesh::edit_mesh, Mesh::id, if(), Object::mode, NULL, OB_MESH, OB_MODE_EDIT, and Object::type.
Referenced by drw_batch_cache_generate_requested(), DRW_mesh_batch_cache_create_requested(), DRW_object_is_renderable(), overlay_edit_uv_cache_populate(), overlay_object_is_edit_mode(), and OVERLAY_wireframe_cache_populate().
| bool DRW_object_is_renderable | ( | const Object * | ob | ) |
Definition at line 183 of file draw_manager.c.
References Object::base_flag, BASE_VISIBLE_DEPSGRAPH, BLI_assert, DRWManager::draw_ctx, DRW_object_is_in_edit_mode(), DST, View3DOverlay::edit_flag, OB_MESH, DRWContextState::object_edit, View3D::overlay, Object::type, DRWContextState::v3d, and V3D_OVERLAY_EDIT_OCCLUDE_WIRE.
Referenced by basic_cache_populate(), EEVEE_cache_populate(), external_cache_populate(), OVERLAY_cache_populate(), and workbench_cache_populate().
| bool DRW_object_is_visible_psys_in_active_context | ( | const Object * | object, |
| const ParticleSystem * | psys | ||
| ) |
Definition at line 271 of file draw_manager.c.
References ParticleSettings::childtype, DRWContextState::depsgraph, DRW_context_state_get(), DRW_state_is_image_render(), ParticleSystem::flag, PointCache::flag, ParticleEditSettings::flag, Object::mode, OB_MODE_PARTICLE_EDIT, DRWContextState::object_edit, ParticleSystem::part, ToolSettings::particle, PE_DRAW_PART, ParticleSystem::pointcache, psys_check_enabled(), PSYS_HAIR_DYNAMICS, psys_in_edit_mode(), PTCACHE_BAKED, scene, DRWContextState::scene, and Scene::toolsettings.
Referenced by basic_cache_populate(), EEVEE_cryptomatte_particle_hair_cache_populate(), EEVEE_particle_hair_cache_populate(), external_cache_populate(), OVERLAY_particle_cache_populate(), OVERLAY_wireframe_cache_populate(), and workbench_cache_populate().
| bool DRW_object_use_hide_faces | ( | const struct Object * | ob | ) |
Definition at line 252 of file draw_manager.c.
References Object::data, Mesh::editflag, ME_EDIT_PAINT_FACE_SEL, ME_EDIT_PAINT_VERT_SEL, Object::mode, OB_MESH, OB_MODE_SCULPT, OB_MODE_TEXTURE_PAINT, OB_MODE_VERTEX_PAINT, OB_MODE_WEIGHT_PAINT, and Object::type.
Referenced by drw_batch_cache_generate_requested(), and workbench_color_type_get().
| int DRW_object_visibility_in_active_context | ( | const Object * | ob | ) |
Return whether this object is visible depending if we are rendering or drawing in the viewport.
Definition at line 235 of file draw_manager.c.
References BKE_object_visibility(), DAG_EVAL_RENDER, DAG_EVAL_VIEWPORT, and DRW_state_is_scene_render().
Referenced by DRW_render_check_grease_pencil(), EEVEE_cache_populate(), EEVEE_render_cache(), external_cache_populate(), GPENCIL_cache_populate(), GPENCIL_render_cache(), overlay_edit_uv_cache_populate(), OVERLAY_relationship_lines(), and workbench_cache_populate().
| void DRW_opengl_context_create | ( | void | ) |
Definition at line 3063 of file draw_manager.c.
References BLI_assert, BLI_ticket_mutex_alloc(), DST, DRWManager::gl_context, DRWManager::gl_context_mutex, DRWManager::gpu_context, GPU_context_create(), NULL, WM_opengl_context_activate(), WM_opengl_context_create(), and wm_window_reset_drawable().
Referenced by WM_init_opengl().
| void DRW_opengl_context_destroy | ( | void | ) |
Definition at line 3077 of file draw_manager.c.
References BLI_assert, BLI_thread_is_main(), BLI_ticket_mutex_free(), DST, DRWManager::gl_context, DRWManager::gl_context_mutex, DRWManager::gpu_context, GPU_context_active_set(), GPU_context_discard(), NULL, WM_opengl_context_activate(), and WM_opengl_context_dispose().
Referenced by WM_exit_ex().
| void DRW_opengl_context_disable | ( | void | ) |
Definition at line 3130 of file draw_manager.c.
References DRW_opengl_context_disable_ex().
Referenced by drw_draw_depth_loop_impl(), DRW_engines_free(), DRW_render_context_disable(), DRW_select_buffer_read(), ED_view3d_draw_offscreen_imbuf(), eevee_lightbake_context_disable(), eevee_lightbake_delete_resources(), gpu_viewport_default_fb_create(), GPU_viewport_unbind(), screen_opengl_render_doit(), screen_opengl_render_end(), screen_opengl_render_init(), and view3d_opengl_select().
| void DRW_opengl_context_disable_ex | ( | bool | restore | ) |
Definition at line 3101 of file draw_manager.c.
References BLI_thread_is_main(), BLI_ticket_mutex_unlock(), DST, DRWManager::gl_context, DRWManager::gl_context_mutex, GPU_context_active_set(), GPU_flush(), NULL, WM_opengl_context_release(), and wm_window_reset_drawable().
Referenced by drw_deferred_shader_compilation_free(), DRW_opengl_context_disable(), and WM_exit_ex().
| void DRW_opengl_context_enable | ( | void | ) |
Definition at line 3122 of file draw_manager.c.
References DRW_opengl_context_enable_ex(), DST, G, DRWManager::gl_context, NULL, and WM_init_opengl().
Referenced by drw_draw_depth_loop_impl(), DRW_engines_free(), DRW_render_context_enable(), DRW_select_buffer_read(), ED_view3d_draw_offscreen_imbuf(), eevee_lightbake_context_enable(), eevee_lightbake_delete_resources(), GPU_viewport_bind(), screen_opengl_render_doit(), screen_opengl_render_end(), screen_opengl_render_init(), and view3d_opengl_select().
| void DRW_opengl_context_enable_ex | ( | bool | UNUSEDrestore | ) |
Definition at line 3089 of file draw_manager.c.
References BLI_ticket_mutex_lock(), DST, DRWManager::gl_context, DRWManager::gl_context_mutex, DRWManager::gpu_context, GPU_context_active_set(), NULL, and WM_opengl_context_activate().
Referenced by DRW_opengl_context_enable().
| void DRW_opengl_render_context_disable | ( | void * | re_gl_context | ) |
Definition at line 3145 of file draw_manager.c.
References BLI_ticket_mutex_unlock(), DST, DRWManager::gl_context_mutex, and WM_opengl_context_release().
Referenced by DRW_render_context_disable(), eevee_lightbake_context_disable(), and eevee_lightbake_delete_resources().
| void DRW_opengl_render_context_enable | ( | void * | re_gl_context | ) |
Definition at line 3135 of file draw_manager.c.
References BLI_assert, BLI_thread_is_main(), BLI_ticket_mutex_lock(), DST, DRWManager::gl_context_mutex, and WM_opengl_context_activate().
Referenced by DRW_render_context_enable(), eevee_lightbake_context_enable(), and eevee_lightbake_delete_resources().
| bool DRW_render_check_grease_pencil | ( | Depsgraph * | depsgraph | ) |
Definition at line 1740 of file draw_manager.c.
References DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, drw_gpencil_engine_needed(), DRW_object_visibility_in_active_context(), NULL, OB_GPENCIL, and OB_VISIBLE_SELF.
Referenced by DRW_render_gpencil(), and engine_depsgraph_init().
| void DRW_render_context_disable | ( | Render * | render | ) |
Definition at line 3036 of file draw_manager.c.
References DRW_gpu_render_context_disable(), DRW_opengl_context_disable(), DRW_opengl_render_context_disable(), GPU_context_main_unlock(), GPU_use_main_context_workaround(), NULL, RE_gl_context_get(), and RE_gpu_context_get().
Referenced by DRW_render_gpencil(), engine_depsgraph_free(), engine_depsgraph_init(), and engine_render_view_layer().
| void DRW_render_context_enable | ( | Render * | render | ) |
Definition at line 3009 of file draw_manager.c.
References DRW_gpu_render_context_enable(), DRW_opengl_context_enable(), DRW_opengl_render_context_enable(), DST, G, DRWManager::gl_context, GPU_context_main_lock(), GPU_use_main_context_workaround(), NULL, RE_gl_context_get(), RE_gpu_context_get(), and WM_init_opengl().
Referenced by DRW_render_gpencil(), engine_depsgraph_free(), engine_depsgraph_init(), and engine_render_view_layer().
| void DRW_render_gpencil | ( | struct RenderEngine * | engine, |
| struct Depsgraph * | depsgraph | ||
| ) |
Definition at line 1768 of file draw_manager.c.
References RenderData::alphamode, BLI_assert, BLI_rcti_init(), BLI_rcti_is_empty(), DRWManager::buffer_finish_called, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWManager::draw_background, DRWManager::draw_ctx, drw_context_state_init(), DRW_render_check_grease_pencil(), DRW_render_context_disable(), DRW_render_context_enable(), DRW_render_gpencil_to_image(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), DRW_view_reset(), drw_viewport_cache_resize(), drw_viewport_var_init(), DST, ListBase::first, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_restore(), GPU_viewport_create(), GPU_viewport_free(), GPU_viewport_size_set(), DRWManager::is_image_render, DRWManager::is_scene_render, ViewLayer::name, Render::name, NULL, OB_MODE_OBJECT, DRWManager::options, Scene::r, R_ADDSKY, RenderEngine::re, RE_engine_get_result(), RE_GetRenderLayer(), RE_GetViewPlane(), RE_SetActiveRenderView(), RenderEngine::resolution_x, RenderEngine::resolution_y, scene, DRWContextState::scene, size(), RenderEngine::type, DRWManager::viewport, and RenderResult::views.
Referenced by engine_render_view_layer().
|
static |
Definition at line 1758 of file draw_manager.c.
References draw_engine_gpencil_type, drw_viewport_engine_data_ensure(), and DrawEngineType::render_to_image.
Referenced by DRW_render_gpencil().
| void DRW_render_instance_buffer_finish | ( | void | ) |
Definition at line 2245 of file draw_manager.c.
References BLI_assert, DRWManager::buffer_finish_called, DRW_instance_buffer_finish(), drw_resource_buffer_finish(), DST, DRWManager::idatalist, and DRWManager::vmempool.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), eevee_lightbake_cache_create(), EEVEE_motion_blur_cache_finish(), EEVEE_render_draw(), GPENCIL_render_to_image(), and workbench_render().
| void DRW_render_object_iter | ( | void * | vedata, |
| RenderEngine * | engine, | ||
| struct Depsgraph * | depsgraph, | ||
| void(*)(void *vedata, Object *ob, RenderEngine *engine, struct Depsgraph *depsgraph) | callback | ||
| ) |
Definition at line 1941 of file draw_manager.c.
References callback, data_, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END, depsgraph, drw_batch_cache_generate_requested(), drw_batch_cache_validate(), DRW_context_state_get(), drw_duplidata_free(), drw_duplidata_load(), DRW_hair_init(), drw_task_graph_deinit(), drw_task_graph_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_parent, DRWManager::dupli_source, NULL, DRWManager::ob_handle, View3D::object_type_exclude_viewport, Object::type, and DRWContextState::v3d.
Referenced by eevee_lightbake_cache_create(), eevee_render_to_image(), GPENCIL_render_to_image(), and workbench_render().
| void DRW_render_set_time | ( | RenderEngine * | engine, |
| Depsgraph * | depsgraph, | ||
| int | frame, | ||
| float | subframe | ||
| ) |
Definition at line 2254 of file draw_manager.c.
References DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWManager::draw_ctx, DST, RE_engine_frame_set(), DRWContextState::scene, and DRWContextState::view_layer.
Referenced by eevee_render_to_image().
| void DRW_render_to_image | ( | RenderEngine * | engine, |
| struct Depsgraph * | depsgraph | ||
| ) |
Definition at line 1850 of file draw_manager.c.
References RenderData::alphamode, BLI_rcti_init(), BLI_rcti_is_empty(), DRWManager::buffer_finish_called, data, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWManager::draw_background, DRWManager::draw_ctx, RenderEngineType::draw_engine, draw_render_result_ensure_pass_cb(), drw_context_state_init(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), DRW_view_reset(), drw_viewport_cache_resize(), drw_viewport_engine_data_ensure(), drw_viewport_var_init(), DST, ListBase::first, GPU_framebuffer_restore(), GPU_viewport(), GPU_viewport_create(), GPU_viewport_free(), GPU_viewport_size_set(), DRWManager::is_image_render, DRWManager::is_scene_render, RenderResult::layers, ViewLayer::name, Render::name, NULL, OB_MODE_OBJECT, DRWManager::options, Scene::r, R_ADDSKY, RenderEngine::re, RE_engine_begin_result(), RE_engine_end_result(), RE_engine_get_result(), RE_engine_update_render_passes(), RE_GetViewPlane(), RE_SetActiveRenderView(), DrawEngineType::render_to_image, RenderEngine::resolution_x, RenderEngine::resolution_y, scene, DRWContextState::scene, size(), DrawEngineType::store_metadata, RenderEngine::type, DRWManager::viewport, and RenderResult::views.
| void DRW_render_viewport_size_set | ( | const int | size[2] | ) |
Definition at line 431 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().
| 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.
| 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().
| 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().
| bool DRW_state_is_depth | ( | void | ) |
Definition at line 2811 of file draw_manager.c.
References DST, DRWManager::is_depth, and DRWManager::options.
Referenced by DRW_state_is_fbo(), OVERLAY_draw_scene(), OVERLAY_image_empty_cache_populate(), and OVERLAY_wireframe_cache_init().
| bool DRW_state_is_fbo | ( | void | ) |
When false, drawing doesn't output to a pixel buffer eg: Occlusion queries, or when we have setup a context to draw in already.
Definition at line 2797 of file draw_manager.c.
References DRWManager::default_framebuffer, DRW_state_is_depth(), DRW_state_is_select(), DST, DRWManager::is_image_render, NULL, and DRWManager::options.
Referenced by drw_engines_draw_scene(), GPENCIL_draw_scene_depth_only(), GPENCIL_engine_init(), OVERLAY_antialiasing_init(), OVERLAY_antialiasing_start(), OVERLAY_background_draw(), OVERLAY_draw_scene(), OVERLAY_edit_curve_draw(), OVERLAY_edit_lattice_draw(), OVERLAY_edit_mesh_draw(), OVERLAY_edit_particle_draw(), OVERLAY_edit_text_draw(), OVERLAY_extra_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_image_scene_background_draw(), OVERLAY_outline_draw(), OVERLAY_outline_init(), OVERLAY_paint_draw(), OVERLAY_pose_draw(), OVERLAY_sculpt_draw(), OVERLAY_wireframe_cache_init(), OVERLAY_xray_depth_copy(), OVERLAY_xray_depth_infront_copy(), and OVERLAY_xray_fade_draw().
| bool DRW_state_is_image_render | ( | void | ) |
Whether we are rendering for an image
Definition at line 2819 of file draw_manager.c.
References DST, DRWManager::is_image_render, and DRWManager::options.
Referenced by basic_cache_populate(), drw_deferred_shader_add(), DRW_object_is_visible_psys_in_active_context(), DRW_shader_create_from_material(), DRW_shader_create_from_world(), DRW_shader_find_from_material(), DRW_shader_find_from_world(), EEVEE_draw_effects(), eevee_draw_scene(), EEVEE_lightprobes_cache_finish(), EEVEE_lightprobes_refresh_planar(), eevee_lookdev_apply_taa(), EEVEE_materials_cache_populate(), EEVEE_materials_init(), EEVEE_renderpasses_init(), EEVEE_renderpasses_postprocess(), EEVEE_temporal_sampling_draw(), EEVEE_temporal_sampling_init(), EEVEE_temporal_sampling_sample_count_get(), EEVEE_volumes_init(), GPENCIL_cache_populate(), lightbake_render_scene_reflected(), OVERLAY_camera_cache_populate(), OVERLAY_facing_cache_populate(), OVERLAY_fade_cache_populate(), OVERLAY_wireframe_cache_populate(), workbench_antialiasing_draw_pass(), workbench_antialiasing_sample_count_get(), workbench_color_type_get(), and workbench_update_world_ubo().
| 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().
| bool DRW_state_is_opengl_render | ( | void | ) |
Whether we are rendering simple opengl render
Definition at line 2845 of file draw_manager.c.
References DST, DRWManager::is_image_render, DRWManager::is_scene_render, and DRWManager::options.
Referenced by EEVEE_lightprobes_cache_finish(), EEVEE_lookdev_init(), EEVEE_renderpasses_draw(), EEVEE_temporal_sampling_init(), OVERLAY_background_cache_init(), and workbench_draw_scene().
| bool DRW_state_is_playback | ( | void | ) |
Definition at line 2850 of file draw_manager.c.
References CTX_wm_manager(), DRWManager::draw_ctx, DST, ED_screen_animation_playing(), DRWContextState::evil_C, and NULL.
Referenced by EEVEE_temporal_sampling_draw(), and workbench_private_data_init().
| bool DRW_state_is_scene_render | ( | void | ) |
Whether we are rendering only the render engine, or if we should also render the mode engines.
Definition at line 2836 of file draw_manager.c.
References BLI_assert, DST, DRWManager::is_image_render, DRWManager::is_scene_render, and DRWManager::options.
Referenced by DRW_object_visibility_in_active_context(), DRW_state_draw_support(), EEVEE_cryptomatte_renderpasses_init(), EEVEE_materials_cache_populate(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_hair_cache_populate(), EEVEE_motion_blur_init(), eevee_motion_blur_sync_camera(), EEVEE_temporal_sampling_init(), and workbench_cache_populate().
| bool DRW_state_is_select | ( | void | ) |
For when engines need to know if this is drawing for selection or not.
Definition at line 2806 of file draw_manager.c.
References DST, DRWManager::is_select, and DRWManager::options.
Referenced by armature_context_setup(), basic_cache_init(), camera_stereoscopy_extra(), camera_view3d_reconstruction(), draw_armature_edit(), draw_armature_pose(), DRW_state_is_fbo(), OVERLAY_armature_cache_init(), OVERLAY_armature_in_front_draw(), OVERLAY_cache_populate(), OVERLAY_camera_cache_populate(), OVERLAY_draw_scene(), OVERLAY_edit_metaball_cache_populate(), OVERLAY_extra_cache_init(), OVERLAY_extra_cache_populate(), OVERLAY_image_camera_cache_populate(), OVERLAY_light_cache_populate(), OVERLAY_lightprobe_cache_populate(), OVERLAY_metaball_cache_init(), OVERLAY_volume_cache_init(), OVERLAY_volume_cache_populate(), and OVERLAY_wireframe_cache_init().
|
static |
Definition at line 115 of file draw_manager.c.
Referenced by DRW_custom_pipeline(), DRW_draw_depth_loop(), DRW_draw_depth_loop_gpencil(), DRW_draw_render_loop(), DRW_draw_render_loop_offscreen(), DRW_draw_select_id(), DRW_draw_select_loop(), DRW_draw_view(), DRW_notify_view_update(), DRW_render_gpencil(), and DRW_render_to_image().
| bool DRW_state_show_text | ( | void | ) |
Should text draw in this mode?
Definition at line 2871 of file draw_manager.c.
References DRWManager::draw_text, DST, DRWManager::is_depth, DRWManager::is_scene_render, DRWManager::is_select, and DRWManager::options.
Referenced by draw_armature_edit(), draw_armature_pose(), OVERLAY_edit_mesh_cache_populate(), OVERLAY_extra_cache_populate(), and OVERLAY_gpencil_cache_populate().
|
static |
Definition at line 165 of file draw_manager.c.
References BLI_gset_free(), BLI_task_graph_free(), BLI_task_graph_work_and_wait(), DRWManager::delayed_extraction, drw_batch_cache_generate_requested(), DST, NULL, and DRWManager::task_graph.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), and DRW_render_object_iter().
|
static |
Definition at line 158 of file draw_manager.c.
References BLI_assert, BLI_gset_ptr_new(), BLI_task_graph_create(), DRWManager::delayed_extraction, DST, NULL, and DRWManager::task_graph.
Referenced by drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_draw_select_loop(), and DRW_render_object_iter().
| struct DRWTextStore* DRW_text_cache_ensure | ( | void | ) |
Definition at line 1478 of file draw_manager.c.
References BLI_assert, DRW_text_cache_create(), DST, NULL, and DRWManager::text_store_p.
Referenced by camera_view3d_reconstruction(), draw_bone_name(), DRW_text_edit_mesh_measure_stats(), motion_path_cache(), OVERLAY_edit_uv_cache_init(), overlay_gpencil_draw_stroke_color_name(), and OVERLAY_object_name().
| void** DRW_view_layer_engine_data_ensure | ( | DrawEngineType * | engine_type, |
| void(*)(void *storage) | callback | ||
| ) |
Definition at line 817 of file draw_manager.c.
References callback, DRWManager::draw_ctx, DRW_view_layer_engine_data_ensure_ex(), DST, and DRWContextState::view_layer.
Referenced by EEVEE_view_layer_data_ensure(), and GPENCIL_view_layer_data_ensure().
| void** DRW_view_layer_engine_data_ensure_ex | ( | ViewLayer * | view_layer, |
| DrawEngineType * | engine_type, | ||
| void(*)(void *storage) | callback | ||
| ) |
Definition at line 797 of file draw_manager.c.
References BLI_addtail(), callback, ViewLayer::drawdata, ViewLayerEngineData::engine_type, ListBase::first, ViewLayerEngineData::free, MEM_callocN, ViewLayerEngineData::next, and ViewLayerEngineData::storage.
Referenced by DRW_view_layer_engine_data_ensure(), EEVEE_view_layer_data_ensure_ex(), and workbench_view_layer_data_ensure_ex().
| void* DRW_view_layer_engine_data_get | ( | DrawEngineType * | engine_type | ) |
Definition at line 787 of file draw_manager.c.
References DRWManager::draw_ctx, ViewLayer::drawdata, DST, LISTBASE_FOREACH, NULL, and DRWContextState::view_layer.
Referenced by EEVEE_view_layer_data_get().
|
static |
Definition at line 459 of file draw_manager.c.
References BLI_memblock_clear(), BLI_memblock_iternew(), BLI_memblock_iterstep(), ViewportMemoryPool::callbuffers, ViewportMemoryPool::commands, ViewportMemoryPool::commands_small, ViewportMemoryPool::cullstates, DRW_instance_data_list_free_unused(), DRW_instance_data_list_resize(), DRW_uniform_attrs_pool_clear_all(), DST, GPU_texture_free(), GPU_viewport_cache_release(), DRWManager::idatalist, ViewportMemoryPool::images, NULL, ViewportMemoryPool::obattrs_ubo_pool, ViewportMemoryPool::obinfos, ViewportMemoryPool::obmats, ViewportMemoryPool::passes, ViewportMemoryPool::shgroups, tex, ViewportMemoryPool::uniforms, DRWManager::viewport, ViewportMemoryPool::views, and DRWManager::vmempool.
Referenced by DRW_cache_restart(), drw_draw_depth_loop_impl(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), DRW_render_gpencil(), and DRW_render_to_image().
|
static |
Definition at line 318 of file draw_manager.c.
References BKE_color_managed_view_settings_init_render(), BKE_scene_uses_blender_workbench(), Scene::display_settings, RenderData::dither_intensity, DRWManager::draw_ctx, DST, SpaceImage::flag, SpaceNode::flag, View3DShading::flag, GPU_viewport_colorspace_set(), IMA_SRC_GENERATED, IMA_VIEW_AS_RENDER, SpaceImage::image, ColorManagedViewSettings::look, NULL, OB_MATERIAL, OB_RENDER, Scene::r, scene, DRWContextState::scene, View3D::shading, SI_SHOW_ALPHA, SI_SHOW_ZBUF, SNODE_SHOW_ALPHA, DRWContextState::space_data, SPACE_IMAGE, SPACE_NODE, SpaceLink::spacetype, STRNCPY, View3DShading::type, DRWContextState::v3d, V3D_SHADING_SCENE_LIGHTS, V3D_SHADING_SCENE_LIGHTS_RENDER, V3D_SHADING_SCENE_WORLD, V3D_SHADING_SCENE_WORLD_RENDER, Scene::view_settings, ColorManagedViewSettings::view_transform, and DRWManager::viewport.
Referenced by DRW_draw_render_loop_2d_ex(), and DRW_draw_render_loop_ex().
| void* drw_viewport_engine_data_ensure | ( | void * | engine_type | ) |
Definition at line 401 of file draw_manager.c.
References data, DST, GPU_viewport_engine_data_create(), GPU_viewport_engine_data_get(), NULL, and DRWManager::viewport.
Referenced by DRW_custom_pipeline(), DRW_draw_region_engine_info(), drw_engines_cache_init(), drw_engines_draw_scene(), drw_engines_draw_text(), drw_engines_init(), drw_engines_world_update(), DRW_notify_view_update(), DRW_render_gpencil_to_image(), DRW_render_to_image(), and DRW_stats_draw().
| DefaultFramebufferList* DRW_viewport_framebuffer_list_get | ( | void | ) |
Definition at line 697 of file draw_manager.c.
References DST, GPU_viewport_framebuffer_list_get(), and DRWManager::viewport.
Referenced by DRW_draw_callbacks_post_scene(), DRW_draw_render_loop_2d_ex(), eevee_draw_scene(), EEVEE_render_init(), EEVEE_renderpasses_draw(), external_draw_scene(), GPENCIL_draw_scene_depth_only(), GPENCIL_engine_init(), GPENCIL_fast_draw_end(), GPENCIL_fast_draw_start(), IMAGE_draw_scene(), OVERLAY_antialiasing_end(), OVERLAY_cache_finish(), OVERLAY_draw_scene(), OVERLAY_edit_uv_draw(), OVERLAY_image_scene_background_draw(), OVERLAY_paint_draw(), OVERLAY_sculpt_draw(), select_draw_scene(), workbench_antialiasing_draw_pass(), workbench_cache_finish(), workbench_dof_draw_pass(), workbench_draw_sample(), workbench_render(), workbench_render_framebuffers_init(), workbench_render_result_z(), and workbench_volume_draw_pass().
| const float* DRW_viewport_invert_size_get | ( | void | ) |
Definition at line 444 of file draw_manager.c.
References DST, and DRWManager::inv_size.
Referenced by basic_cache_init(), EEVEE_motion_blur_cache_init(), GPENCIL_antialiasing_init(), gpencil_layer_cache_add(), gpencil_layer_cache_populate(), gpencil_vfx_pixelize(), gpencil_vfx_rim(), gpencil_vfx_shadow(), gpencil_vfx_wave(), workbench_antialiasing_cache_init(), workbench_dof_cache_init(), and workbench_update_world_ubo().
| 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().
| void DRW_viewport_request_redraw | ( | void | ) |
Definition at line 707 of file draw_manager.c.
References DST, GPU_viewport_tag_update(), and DRWManager::viewport.
Referenced by EEVEE_draw_effects(), EEVEE_screen_raytrace_init(), EEVEE_temporal_sampling_draw(), EEVEE_volumes_init(), and workbench_antialiasing_draw_pass().
| 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().
| const float* DRW_viewport_size_get | ( | void | ) |
Definition at line 439 of file draw_manager.c.
References DST, and DRWManager::size.
Referenced by basic_cache_init(), dof_dilate_tiles_pass_init(), dof_flatten_tiles_pass_init(), dof_gather_pass_init(), dof_reduce_pass_init(), dof_setup_pass_init(), downsample_planar(), DRW_globals_update(), DRW_texture_ensure_fullscreen_2d(), DRW_texture_pool_query_fullscreen(), EEVEE_bloom_init(), eevee_cryptomatte_download_buffer(), EEVEE_cryptomatte_output_init(), eevee_cryptomatte_postprocess_weights(), EEVEE_cryptomatte_render_result(), EEVEE_depth_of_field_init(), EEVEE_effects_init(), EEVEE_lookdev_init(), EEVEE_motion_blur_cache_init(), EEVEE_motion_blur_init(), EEVEE_occlusion_compute(), EEVEE_occlusion_init(), EEVEE_render_init(), EEVEE_screen_raytrace_init(), EEVEE_subsurface_draw_init(), EEVEE_temporal_sampling_matrices_calc(), EEVEE_volumes_init(), GPENCIL_antialiasing_init(), GPENCIL_cache_finish(), GPENCIL_cache_init(), gpencil_layer_cache_add(), gpencil_layer_cache_populate(), GPENCIL_render_init(), gpencil_vfx_blur(), gpencil_vfx_pixelize(), gpencil_vfx_rim(), gpencil_vfx_shadow(), gpencil_vfx_swirl(), gpencil_vfx_wave(), workbench_antialiasing_cache_init(), workbench_antialiasing_setup(), workbench_dof_engine_init(), workbench_render_framebuffers_init(), and workbench_update_world_ubo().
| 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().
|
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().
|
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().
|
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().
|
static |
Definition at line 840 of file draw_manager.c.
Referenced by id_can_have_drawdata().
|
static |
Definition at line 1208 of file draw_manager.c.
References BLI_addtail(), LinkData::data, DST, DRWManager::enabled_engines, and MEM_callocN.
Referenced by DRW_draw_depth_loop_gpencil(), DRW_draw_select_id(), DRW_draw_select_loop(), drw_engines_enable(), drw_engines_enable_basic(), drw_engines_enable_editors(), drw_engines_enable_from_engine(), and drw_engines_enable_overlays().
Definition at line 113 of file draw_manager.c.
Referenced by DRW_engine_register(), and DRW_engines_free().
| 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().
|
static |
Referenced by draw_select_framebuffer_depth_only_setup(), DRW_draw_select_loop(), and DRW_engines_free().