|
Blender V4.3
|
Go to the source code of this file.
Classes | |
| struct | DRWUpdateContext |
Namespaces | |
| namespace | blender |
| namespace | blender::draw |
Typedefs | |
| using | DRW_SelectPassFn = bool (*)(eDRWSelectStage stage, void *user_data) |
| using | DRW_ObjectFilterFn = bool (*)(Object *ob, void *user_data) |
Enumerations | |
| enum | eDRWSelectStage { DRW_SELECT_PASS_PRE = 1 , DRW_SELECT_PASS_POST } |
| using DRW_ObjectFilterFn = bool (*)(Object *ob, void *user_data) |
Definition at line 63 of file DRW_engine.hh.
| using DRW_SelectPassFn = bool (*)(eDRWSelectStage stage, void *user_data) |
Definition at line 62 of file DRW_engine.hh.
| enum eDRWSelectStage |
| Enumerator | |
|---|---|
| DRW_SELECT_PASS_PRE | |
| DRW_SELECT_PASS_POST | |
Definition at line 58 of file DRW_engine.hh.
| void DRW_blender_gpu_render_context_disable | ( | void * | re_gpu_context | ) |
Definition at line 3349 of file draw_manager_c.cc.
References GPU_context_active_set(), and GPU_flush().
Referenced by DRW_render_context_disable().
| void DRW_blender_gpu_render_context_enable | ( | void * | re_gpu_context | ) |
Definition at line 3341 of file draw_manager_c.cc.
References BLI_assert, BLI_thread_is_main(), and GPU_context_active_set().
Referenced by DRW_render_context_enable().
| void DRW_cache_free_old_batches | ( | Main * | bmain | ) |
Definition at line 985 of file draw_manager_c.cc.
References BKE_scene_get_depsgraph(), BLI_time_now_seconds(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, ListBase::first, DEGObjectIterSettings::flags, int, LISTBASE_FOREACH, scene, and Main::scenes.
Referenced by view3d_main_region_draw().
| void DRW_cdlayer_attr_aliases_add | ( | GPUVertFormat * | format, |
| const char * | base_name, | ||
| int | data_type, | ||
| const char * | layer_name, | ||
| bool | is_active_render, | ||
| bool | is_active_layer ) |
Definition at line 3445 of file draw_cache.cc.
References CD_PROP_FLOAT2, GPU_MAX_SAFE_ATTR_NAME, GPU_vertformat_alias_add(), GPU_vertformat_safe_attr_name(), and SNPRINTF.
Referenced by blender::draw::pbvh::attribute_format().
| void DRW_deferred_shader_optimize_remove | ( | GPUMaterial * | mat | ) |
Definition at line 358 of file draw_manager_shader.cc.
References compiler_data(), GPU_MAT_OPTIMIZATION_READY, GPU_material_optimization_status_set(), GPU_use_main_context_workaround(), DRWShaderCompiler::optimize_queue, and blender::Vector< T, InlineBufferCapacity, Allocator >::remove_first_occurrence_and_reorder().
Referenced by DRW_shader_queue_optimize_material().
| void DRW_deferred_shader_remove | ( | GPUMaterial * | mat | ) |
Definition at line 336 of file draw_manager_shader.cc.
References BLI_assert_unreachable, compiler_data(), GPU_MAT_CREATED, GPU_MAT_OPTIMIZATION_READY, GPU_material_optimization_status_set(), GPU_material_status_set(), GPU_use_main_context_workaround(), DRWShaderCompiler::optimize_queue, DRWShaderCompiler::queue, and blender::Vector< T, InlineBufferCapacity, Allocator >::remove_first_occurrence_and_reorder().
We may want to move this into a more general location.
Definition at line 231 of file draw_view_c.cc.
References DRW_cache_cursor_get(), ED_region_pixelspace(), GPU_batch_draw(), GPU_batch_set_shader(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_line_smooth(), GPU_line_width(), GPU_matrix_pop(), GPU_matrix_projection_get, GPU_matrix_projection_set, GPU_matrix_push(), GPU_matrix_scale_2f(), GPU_matrix_translate_2f(), GPU_SHADER_3D_FLAT_COLOR, GPU_shader_get_builtin_shader(), and UI_view2d_view_to_region().
Referenced by DRW_draw_cursor_2d(), and sequencer_preview_region_draw().
| void DRW_draw_depth_loop | ( | Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| GPUViewport * | viewport, | ||
| const bool | use_gpencil, | ||
| const bool | use_basic, | ||
| const bool | use_overlay, | ||
| const bool | use_only_selected ) |
Object mode select-loop.
Definition at line 2649 of file draw_manager_c.cc.
References BASE_SELECTED, BKE_object_is_visible_in_viewport(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, DRWContextState::depsgraph, DRWManager::draw_ctx, draw_engine_gpencil_type, drw_context_state_init(), drw_duplidata_free(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_enable_basic(), drw_engines_enable_overlays(), drw_engines_init(), drw_engines_world_update(), DRW_globals_update(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_smoke_exit(), DRW_smoke_init(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, ED_view3d_engine_type(), DRWContextState::engine_type, View3D::flag2, DEGObjectIterSettings::flags, GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, GPU_framebuffer_bind(), GPU_framebuffer_clear_depth(), GPU_framebuffer_ensure_config, GPU_framebuffer_free(), GPU_framebuffer_restore(), GPU_viewport_depth_texture(), DRWManager::is_depth, DRWContextState::obact, View3D::object_type_exclude_viewport, DRWManager::options, DRWContextState::region, DRWContextState::rv3d, DRWContextState::scene, scene, View3D::shading, View3DShading::type, use_drw_engine(), DRWContextState::v3d, V3D_SHOW_VIEWER, DRWContextState::view_layer, DEGObjectIterSettings::viewer_path, View3D::viewer_path, and DRWManager::vmempool.
Referenced by ED_view3d_depth_override().
| 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 2869 of file draw_manager_c.cc.
References batch, BLI_task_graph_create(), BLI_task_graph_free(), BLI_task_graph_work_and_wait(), RegionView3D::clip_local, copy_m4_m4(), copy_v4_v4(), drw_batch_cache_validate(), ED_view3d_clipping_local(), GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, GPU_batch_draw(), GPU_batch_program_set_builtin_with_config(), GPU_batch_uniformbuf_bind, GPU_clip_distances(), GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_bind(), GPU_framebuffer_clear_depth(), GPU_framebuffer_ensure_config, GPU_framebuffer_free(), 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_uniformbuf_create_ex(), GPU_uniformbuf_free(), GPU_viewport_depth_texture(), OB_CURVES_LEGACY, OB_MESH, OB_MODE_EDIT, OB_SURF, RV3D_CLIPPING_ENABLED, RegionView3D::viewmat, and RegionView3D::winmat.
Referenced by ED_view3d_depth_override().
| bool DRW_draw_in_progress | ( | ) |
Query that drawing is in progress (use to prevent nested draw calls).
Definition at line 2953 of file draw_manager_c.cc.
References DST, and DRWManager::in_progress.
Referenced by ED_view3d_draw_offscreen_check_nested().
Draw render engine info.
Definition at line 1153 of file draw_manager_c.cc.
References BLF_draw_default(), BLI_strchr_or_end(), DRW_ENABLED_ENGINE_ITER, DST, IFACE_, and DRWManager::view_data_active.
Referenced by view3d_draw_region_info().
| void DRW_draw_render_loop | ( | Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| GPUViewport * | viewport ) |
Definition at line 1802 of file draw_manager_c.cc.
References DEG_get_evaluated_scene(), depsgraph, DRW_draw_render_loop_ex(), drw_state_prepare_clean_for_draw(), DST, ED_view3d_engine_type(), View3D::shading, and View3DShading::type.
| void DRW_draw_render_loop_2d_ex | ( | Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| GPUViewport * | viewport, | ||
| const bContext * | evil_C ) |
Definition at line 2199 of file draw_manager_c.cc.
References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, CTX_wm_space_data(), DRWManager::default_framebuffer, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, DRWContextState::depsgraph, DRWManager::draw_ctx, drw_context_state_init(), drw_debug_init(), DRW_draw_cursor_2d(), DRW_draw_gizmo_2d(), drw_draw_show_annotation(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_draw_text(), drw_engines_enable_editors(), drw_engines_init(), DRW_globals_update(), drw_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_state_reset(), DRW_stats_begin(), DRW_stats_draw(), DRW_stats_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_view_data_cache_time_get(), DRW_viewport_colormanagement_set(), DRW_viewport_framebuffer_list_get(), DST, ED_annotation_draw_view2d(), ED_region_draw_cb_draw(), ED_region_pixelspace(), ED_region_visible_rect(), DRWContextState::evil_C, DEGObjectIterSettings::flags, G, GPU_BACKEND_OPENGL, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_DEVICE_ANY, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_bind(), GPU_framebuffer_clear_depth_stencil(), GPU_framebuffer_restore(), GPU_matrix_pop_projection(), GPU_matrix_push_projection(), GPU_OS_ANY, GPU_type_matches_ex(), DRWContextState::obact, DefaultFramebufferList::overlay_fb, PROFILE_END_UPDATE, PROFILE_START, DRWContextState::region, REGION_DRAW_POST_VIEW, REGION_DRAW_PRE_VIEW, DRWContextState::scene, scene, DRWContextState::space_data, SPACE_IMAGE, SpaceLink::spacetype, DRWManager::view_data_active, DRWContextState::view_layer, WM_draw_region_get_bound_viewport(), and wmOrtho2().
Referenced by DRW_draw_view().
| void DRW_draw_render_loop_ex | ( | 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 1657 of file draw_manager_c.cc.
References BKE_object_is_visible_in_viewport(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, DRWManager::default_framebuffer, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, DRWContextState::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_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_smoke_exit(), DRW_smoke_init(), DRW_state_reset(), DRW_stats_begin(), DRW_stats_reset(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_view_data_cache_time_get(), DRW_viewport_colormanagement_set(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, DRWContextState::engine_type, DRWContextState::evil_C, RenderEngineType::flag, View3D::flag2, DEGObjectIterSettings::flags, GPU_BACKEND_OPENGL, GPU_DEVICE_ANY, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_active_get(), GPU_framebuffer_back_get(), GPU_framebuffer_bind(), GPU_framebuffer_clear_depth_stencil(), GPU_framebuffer_restore(), GPU_OS_ANY, GPU_type_matches_ex(), OB_RENDER, DRWContextState::obact, View3D::object_type_exclude_viewport, PROFILE_END_UPDATE, PROFILE_START, RE_INTERNAL, DRWContextState::region, DRWContextState::rv3d, DRWContextState::scene, scene, View3D::shading, View3DShading::type, DRWContextState::v3d, V3D_HIDE_OVERLAYS, V3D_SHOW_VIEWER, DRWManager::view_data_active, DRWContextState::view_layer, DEGObjectIterSettings::viewer_path, View3D::viewer_path, DRWManager::vmempool, 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 | ( | Depsgraph * | depsgraph, |
| RenderEngineType * | engine_type, | ||
| ARegion * | region, | ||
| View3D * | v3d, | ||
| bool | is_image_render, | ||
| bool | draw_background, | ||
| bool | do_color_management, | ||
| GPUOffScreen * | ofs, | ||
| GPUViewport * | viewport ) |
| viewport | can be NULL, in this case we create one. |
Definition at line 1816 of file draw_manager_c.cc.
References depsgraph, draw_background(), DRWManager::draw_background, DRW_draw_render_loop_ex(), drw_notify_view_update_offscreen(), drw_state_prepare_clean_for_draw(), DST, ELEM, View3D::flag, View3DShading::flag, View3D::flag2, GPU_blend(), GPU_BLEND_ALPHA_PREMULT, GPU_BLEND_NONE, GPU_clear_color(), GPU_framebuffer_restore(), 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, OB_MATERIAL, OB_RENDER, OB_SOLID, OB_WIRE, DRWManager::options, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, V3D_SHADING_SCENE_WORLD, V3D_SHADING_SCENE_WORLD_RENDER, and V3D_XR_SESSION_SURFACE.
Referenced by ED_view3d_draw_offscreen().
Definition at line 2777 of file draw_manager_c.cc.
References BKE_object_is_visible_in_viewport(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), DRWManager::buffer_finish_called, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, DRWContextState::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_manager_exit(), drw_manager_init(), DRW_object_is_in_edit_mode(), 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(), DST, DEGObjectIterSettings::flags, SELECTID_Context::index_drawn_len, OB_MESH, DRWContextState::obact, SELECTID_Context::objects, DRWContextState::region, RETOPOLOGY_ENABLED, RGN_TYPE_WINDOW, DRWContextState::rv3d, DRWContextState::scene, scene, SPACE_VIEW3D, UI_SetTheme(), use_drw_engine(), DRWContextState::v3d, DRWContextState::view_layer, DRWManager::vmempool, WM_draw_region_get_viewport(), and XRAY_ENABLED.
Referenced by DRW_select_buffer_read().
| void DRW_draw_select_loop | ( | Depsgraph * | depsgraph, |
| ARegion * | region, | ||
| View3D * | v3d, | ||
| bool | use_obedit_skip, | ||
| bool | draw_surface, | ||
| bool | use_nearest, | ||
| bool | do_material_sub_selection, | ||
| const rcti * | rect, | ||
| DRW_SelectPassFn | select_pass_fn, | ||
| void * | select_pass_user_data, | ||
| DRW_ObjectFilterFn | object_filter_fn, | ||
| void * | object_filter_user_data ) |
Object mode select-loop.
Definition at line 2401 of file draw_manager_c.cc.
References BASE_ENABLED_AND_VISIBLE_IN_DEFAULT_VIEWPORT, BASE_FROM_DUPLI, BASE_SELECTABLE, BKE_modifiers_is_deformed_by_armature(), BKE_object_is_visible_in_viewport(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, BLI_rcti_size_x(), BLI_rcti_size_y(), DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, DRWContextState::depsgraph, DefaultTextureList::depth, DRWManager::draw_ctx, draw_engine_gpencil_type, draw_engine_select_next_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_manager_exit(), drw_manager_init(), DRW_render_instance_buffer_finish(), DRW_select_load_id(), DRW_SELECT_PASS_POST, DRW_SELECT_PASS_PRE, DRW_smoke_exit(), DRW_smoke_init(), DRW_STATE_DEPTH_TEST_ENABLED, DRW_state_lock(), drw_state_prepare_clean_for_draw(), DRW_state_reset(), DRW_STATE_WRITE_DEPTH, drw_task_graph_deinit(), drw_task_graph_init(), DRW_viewport_texture_list_get(), DRW_volume_init(), DST, DRWManager::dupli_origin, DRWManager::dupli_origin_data, DRWManager::dupli_parent, DRWManager::dupli_source, ED_view3d_engine_type(), DRWContextState::engine_type, View3DOverlay::flag, View3D::flag2, DEGObjectIterSettings::flags, FOREACH_OBJECT_IN_MODE_BEGIN, FOREACH_OBJECT_IN_MODE_END, DRWSelectBuffer::framebuffer_depth_only, g_select_buffer, GPU_framebuffer_bind(), GPU_framebuffer_clear_depth(), GPU_framebuffer_restore(), DRWManager::is_material_select, DRWManager::is_select, Object::mode, OB_ARMATURE, OB_MBALL, OB_MODE_POSE, DRWContextState::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, DRWContextState::rv3d, DRWContextState::scene, scene, View3D::shading, DRWSelectBuffer::texture_depth, Object::type, View3DShading::type, UNUSED_VARS, use_drw_engine(), DRWContextState::v3d, V3D_HIDE_OVERLAYS, V3D_OVERLAY_BONE_SELECT, V3D_SHOW_VIEWER, DRWContextState::view_layer, DEGObjectIterSettings::viewer_path, View3D::viewer_path, and DRWManager::vmempool.
Referenced by view3d_opengl_select_ex().
| void DRW_draw_view | ( | const bContext * | C | ) |
Everything starts here. This function takes care of calling all cache and rendering functions for each relevant engine / mode engine.
Definition at line 1630 of file draw_manager_c.cc.
References CTX_data_expect_evaluated_depsgraph(), CTX_wm_region(), CTX_wm_view3d(), DEG_get_evaluated_scene(), depsgraph, 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, R_ADDSKY, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, V3D_OVERLAY_HIDE_TEXT, and WM_draw_region_get_bound_viewport().
Referenced by blender::ed::space_node::draw_nodespace_back_pix(), image_main_region_draw(), and view3d_draw_view().
| void DRW_drawdata_free | ( | ID * | id | ) |
Definition at line 948 of file draw_manager_c.cc.
References BLI_freelistN(), DRW_drawdatalist_from_id(), and LISTBASE_FOREACH.
Referenced by image_free_data(), mask_free_data(), movie_clip_free_data(), object_free_data(), scene_free_data(), texture_free_data(), and world_free_data().
| DrawDataList * DRW_drawdatalist_from_id | ( | ID * | id | ) |
Get DrawData from the given ID-block. In order for this to work, we assume that the DrawData pointer is stored in the in the same fashion as in IdDdtTemplate.
Definition at line 873 of file draw_manager_c.cc.
References IdDdtTemplate::drawdata, and id_can_have_drawdata().
Referenced by direct_link_id_common(), DRW_drawdata_ensure(), DRW_drawdata_free(), DRW_drawdata_get(), drw_drawdata_unlink_dupli(), id_buffer_init_from_id(), blender::deg::RuntimeBackup::init_from_id(), and select_cache_populate().
| void DRW_engine_external_free | ( | RegionView3D * | rv3d | ) |
Definition at line 522 of file external_engine.cc.
References DRW_gpu_context_disable_ex(), DRW_gpu_context_enable_ex(), RE_FreeViewRender(), and RegionView3D::view_render.
Referenced by ED_view3d_stop_render_preview(), and view3d_main_region_free().
| void DRW_engine_register | ( | DrawEngineType * | draw_engine_type | ) |
Definition at line 3062 of file draw_manager_c.cc.
References BLI_addtail(), BLI_listbase_count(), DRWRegisteredDrawEngine::draw_engine, g_registered_engines, DRWRegisteredDrawEngine::index, and MEM_mallocN.
Referenced by DRW_engines_register(), and RE_engines_register().
| bool DRW_engine_render_support | ( | DrawEngineType * | draw_engine_type | ) |
Definition at line 3057 of file draw_manager_c.cc.
References DrawEngineType::render_to_image.
| void DRW_engines_free | ( | ) |
Definition at line 3149 of file draw_manager_c.cc.
References DRW_Global::block_ubo, DRW_Global::clipping_ubo, DRWManager::debug, DRWManager::draw_list, drw_debug_module_free(), DRW_globals_free(), DRW_gpu_context_disable(), DRW_gpu_context_enable(), drw_registered_engines_free(), DRW_shaders_free(), DRW_shape_cache_free(), DRW_stats_free(), DRW_TEXTURE_FREE_SAFE, DRW_UBO_FREE_SAFE, DRW_volume_free(), DST, DRWSelectBuffer::framebuffer_depth_only, G_draw, g_select_buffer, GPU_draw_list_discard(), GPU_FRAMEBUFFER_FREE_SAFE, DRW_Global::ramp, DRWManager::system_gpu_context, DRWSelectBuffer::texture_depth, DRW_Global::view_ubo, and DRW_Global::weight_ramp.
Referenced by RE_engines_exit().
| void DRW_engines_register | ( | ) |
Definition at line 3073 of file draw_manager_c.cc.
References BKE_curve_batch_cache_dirty_tag_cb, BKE_curve_batch_cache_free_cb, BKE_curves_batch_cache_dirty_tag_cb, BKE_curves_batch_cache_free_cb, BKE_gpencil_batch_cache_dirty_tag_cb, BKE_gpencil_batch_cache_free_cb, BKE_grease_pencil_batch_cache_dirty_tag_cb, BKE_grease_pencil_batch_cache_free_cb, BKE_lattice_batch_cache_dirty_tag_cb, BKE_lattice_batch_cache_free_cb, BKE_mesh_batch_cache_dirty_tag_cb, BKE_mesh_batch_cache_free_cb, BKE_particle_batch_cache_dirty_tag_cb, BKE_particle_batch_cache_free_cb, BKE_pointcloud_batch_cache_dirty_tag_cb, BKE_pointcloud_batch_cache_free_cb, BKE_subsurf_modifier_free_gpu_cache_cb, BKE_volume_batch_cache_dirty_tag_cb, BKE_volume_batch_cache_free_cb, RenderEngineType::draw_engine, draw_engine_basic_type, draw_engine_compositor_type, draw_engine_debug_select_type, draw_engine_gpencil_type, draw_engine_image_type, draw_engine_overlay_next_type, draw_engine_overlay_type, draw_engine_select_next_type, draw_engine_select_type, DRW_engine_register(), DRW_engine_viewport_eevee_next_type, DRW_engine_viewport_external_type, DRW_engine_viewport_workbench_type, and RE_engines_register().
Referenced by RE_engines_init().
| void DRW_gpu_context_activate | ( | bool | drw_state | ) |
Definition at line 3460 of file draw_manager_c.cc.
References DRWManager::blender_gpu_context, BLI_thread_is_main(), DST, GPU_context_active_set(), DRWManager::system_gpu_context, WM_system_gpu_context_activate(), and wm_window_reset_drawable().
Referenced by RE_engine_gpu_context_create(), RE_engine_gpu_context_destroy(), and RE_engine_gpu_context_disable().
| void DRW_gpu_context_create | ( | ) |
Definition at line 3248 of file draw_manager_c.cc.
References DRWManager::blender_gpu_context, BLI_assert, BLI_ticket_mutex_alloc(), DRW_shader_init(), DST, GPU_context_create(), DRWManager::system_gpu_context, DRWManager::system_gpu_context_mutex, WM_system_gpu_context_activate(), WM_system_gpu_context_create(), and wm_window_reset_drawable().
Referenced by WM_init_gpu().
| void DRW_gpu_context_destroy | ( | ) |
Definition at line 3264 of file draw_manager_c.cc.
References DRWManager::blender_gpu_context, BLI_assert, BLI_thread_is_main(), BLI_ticket_mutex_free(), DRW_shader_exit(), DST, GPU_context_active_set(), GPU_context_discard(), DRWManager::system_gpu_context, DRWManager::system_gpu_context_mutex, WM_system_gpu_context_activate(), and WM_system_gpu_context_dispose().
Referenced by WM_exit_ex().
| void DRW_gpu_context_disable | ( | ) |
Definition at line 3319 of file draw_manager_c.cc.
References DRW_gpu_context_disable_ex().
Referenced by DRW_engines_free(), DRW_render_context_disable(), DRW_select_buffer_read(), ED_view3d_draw_offscreen_imbuf(), engine_depsgraph_free(), blender::render::RealtimeCompositor::execute(), GPU_viewport_unbind(), screen_opengl_render_doit(), screen_opengl_render_end(), screen_opengl_render_init(), view3d_opengl_select_ex(), and blender::render::RealtimeCompositor::~RealtimeCompositor().
| void DRW_gpu_context_disable_ex | ( | bool | restore | ) |
Definition at line 3290 of file draw_manager_c.cc.
References BLI_thread_is_main(), BLI_ticket_mutex_unlock(), DST, GPU_context_active_set(), GPU_render_end(), DRWManager::system_gpu_context, DRWManager::system_gpu_context_mutex, WM_system_gpu_context_release(), and wm_window_reset_drawable().
Referenced by DRW_engine_external_free(), DRW_gpu_context_disable(), and WM_exit_ex().
| void DRW_gpu_context_enable | ( | ) |
Definition at line 3309 of file draw_manager_c.cc.
References DRW_gpu_context_enable_ex(), DST, G, DRWManager::system_gpu_context, and WM_init_gpu().
Referenced by DRW_engines_free(), DRW_render_context_enable(), DRW_select_buffer_read(), ED_view3d_draw_offscreen_imbuf(), engine_depsgraph_free(), blender::render::RealtimeCompositor::execute(), GPU_viewport_bind(), screen_opengl_render_doit(), screen_opengl_render_end(), screen_opengl_render_init(), view3d_opengl_select_ex(), and blender::render::RealtimeCompositor::~RealtimeCompositor().
| void DRW_gpu_context_enable_ex | ( | bool | restore | ) |
Definition at line 3277 of file draw_manager_c.cc.
References DRWManager::blender_gpu_context, BLI_ticket_mutex_lock(), DST, GPU_context_active_set(), GPU_render_begin(), DRWManager::system_gpu_context, DRWManager::system_gpu_context_mutex, and WM_system_gpu_context_activate().
Referenced by DRW_engine_external_free(), DRW_gpu_context_enable(), and WM_exit_ex().
| bool DRW_gpu_context_release | ( | ) |
Definition at line 3441 of file draw_manager_c.cc.
References DRWManager::blender_gpu_context, BLI_thread_is_main(), DST, GPU_context_active_get(), GPU_context_active_set(), DRWManager::system_gpu_context, and WM_system_gpu_context_release().
Referenced by RE_engine_gpu_context_create(), RE_engine_gpu_context_destroy(), and RE_engine_gpu_context_enable().
| DRWInstanceDataList * DRW_instance_data_list_create | ( | ) |
This is here because GPUViewport needs it.
Definition at line 315 of file draw_instance_data.cc.
References BLI_addtail(), BLI_memblock_create, g_idatalists, MEM_callocN, DRWInstanceDataList::pool_batching, DRWInstanceDataList::pool_buffers, and DRWInstanceDataList::pool_instancing.
Referenced by DRW_viewport_data_create().
| void DRW_instance_data_list_free | ( | DRWInstanceDataList * | idatalist | ) |
Definition at line 329 of file draw_instance_data.cc.
References BLI_memblock_destroy(), BLI_remlink(), DRW_instance_data_free(), g_idatalists, DRWInstanceDataList::idata_head, DRWInstanceDataList::idata_tail, MAX_INSTANCE_DATA_SIZE, MEM_freeN(), DRWInstanceData::next, DRWInstanceDataList::pool_batching, DRWInstanceDataList::pool_buffers, DRWInstanceDataList::pool_instancing, temp_batch_free(), temp_buffer_handle_free(), and temp_instancing_handle_free().
Referenced by DRW_viewport_data_free().
| void DRW_notify_view_update | ( | const DRWUpdateContext * | update_ctx | ) |
Definition at line 1330 of file draw_manager_c.cc.
References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert_unreachable, BLI_ticket_mutex_lock_check_recursive(), BLI_ticket_mutex_unlock(), CLOG_ERROR, depsgraph, DRWContextState::depsgraph, DRWUpdateContext::depsgraph, DRWManager::draw_ctx, drw_engines_data_validate(), drw_engines_disable(), drw_engines_enable(), drw_gpencil_engine_needed(), drw_manager_exit(), drw_state_prepare_clean_for_draw(), DRW_view_data_engines_view_update(), drw_viewport_data_ensure(), DST, DRWContextState::engine_type, DRWUpdateContext::engine_type, GPU_viewport_is_stereo_get(), LOG, OB_MODE_OBJECT, DRWContextState::obact, DRWContextState::object_mode, DRWContextState::region, DRWUpdateContext::region, DRWContextState::rv3d, DRWContextState::scene, DRWUpdateContext::scene, scene, DRWManager::system_gpu_context_mutex, DRWContextState::v3d, DRWUpdateContext::v3d, view, DRWData::view_data, DRWManager::view_data_active, DRWContextState::view_layer, DRWUpdateContext::view_layer, DRWManager::viewport, DRWManager::vmempool, and WM_draw_region_get_viewport().
Referenced by ED_render_view3d_update(), and view3d_do_msg_notify_workbench_view_update().
| bool DRW_render_check_grease_pencil | ( | Depsgraph * | depsgraph | ) |
Helper to check if exit object type to render.
Definition at line 1879 of file draw_manager_c.cc.
References DEG_OBJECT_ITER_BEGIN, DEG_OBJECT_ITER_END, DEG_OBJECT_ITER_FOR_RENDER_ENGINE_FLAGS, DEGObjectIterSettings::depsgraph, depsgraph, drw_gpencil_engine_needed(), DRW_object_visibility_in_active_context(), ELEM, DEGObjectIterSettings::flags, OB_GPENCIL_LEGACY, OB_GREASE_PENCIL, and OB_VISIBLE_SELF.
Referenced by DRW_render_gpencil(), and engine_depsgraph_init().
| void DRW_render_context_disable | ( | Render * | render | ) |
Definition at line 3218 of file draw_manager_c.cc.
References DRW_blender_gpu_render_context_disable(), DRW_gpu_context_disable(), DRW_system_gpu_render_context_disable(), GPU_context_main_unlock(), GPU_render_end(), GPU_use_main_context_workaround(), RE_blender_gpu_context_ensure(), and RE_system_gpu_context_get().
Referenced by DRW_render_gpencil(), engine_depsgraph_free(), engine_depsgraph_init(), engine_render_view_layer(), RE_engine_gpu_context_disable(), blender::eevee::Instance::render_frame(), and blender::render::RealtimeCompositor::~RealtimeCompositor().
| void DRW_render_context_enable | ( | Render * | render | ) |
Definition at line 3190 of file draw_manager_c.cc.
References DRW_blender_gpu_render_context_enable(), DRW_gpu_context_enable(), DRW_system_gpu_render_context_enable(), DST, G, GPU_context_main_lock(), GPU_render_begin(), GPU_use_main_context_workaround(), RE_blender_gpu_context_ensure(), RE_system_gpu_context_get(), DRWManager::system_gpu_context, and WM_init_gpu().
Referenced by DRW_render_gpencil(), engine_depsgraph_free(), engine_depsgraph_init(), engine_render_view_layer(), RE_engine_gpu_context_enable(), blender::eevee::Instance::render_frame(), and blender::render::RealtimeCompositor::~RealtimeCompositor().
| void DRW_render_gpencil | ( | RenderEngine * | engine, |
| Depsgraph * | depsgraph ) |
Definition at line 1912 of file draw_manager_c.cc.
References BLI_assert, BLI_rcti_init(), BLI_rcti_is_empty(), DRWManager::buffer_finish_called, DEG_get_evaluated_scene(), DEG_get_evaluated_view_layer(), depsgraph, DRWContextState::depsgraph, DRWManager::draw_background, DRWManager::draw_ctx, drw_context_state_init(), drw_manager_exit(), drw_manager_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(), DST, DRWContextState::engine_type, ListBase::first, GPU_DEPTH_NONE, GPU_depth_test(), GPU_framebuffer_restore(), DRWManager::is_image_render, DRWManager::is_scene_render, ViewLayer::name, OB_MODE_OBJECT, DRWContextState::object_mode, DRWManager::options, R_ADDSKY, RenderEngine::re, RE_engine_get_result(), RE_GetRenderLayer(), RE_GetViewPlane(), RE_SetActiveRenderView(), RenderEngine::resolution_x, RenderEngine::resolution_y, DRWContextState::scene, scene, RenderEngine::type, DRWContextState::view_layer, and RenderResult::views.
Referenced by engine_render_view_layer().
| void DRW_system_gpu_render_context_disable | ( | void * | re_system_gpu_context | ) |
Definition at line 3334 of file draw_manager_c.cc.
References BLI_ticket_mutex_unlock(), DST, DRWManager::system_gpu_context_mutex, and WM_system_gpu_context_release().
Referenced by DRW_render_context_disable().
| void DRW_system_gpu_render_context_enable | ( | void * | re_system_gpu_context | ) |
Definition at line 3324 of file draw_manager_c.cc.
References BLI_assert, BLI_thread_is_main(), BLI_ticket_mutex_lock(), DST, DRWManager::system_gpu_context_mutex, and WM_system_gpu_context_activate().
Referenced by DRW_render_context_enable().
| void DRW_uniform_attrs_pool_free | ( | GHash * | table | ) |
Definition at line 747 of file draw_instance_data.cc.
References BLI_ghash_free(), and drw_uniform_attrs_pool_free_cb().
Referenced by DRW_viewport_data_free().
| DRWData * DRW_viewport_data_create | ( | ) |
Definition at line 367 of file draw_manager_c.cc.
References BLI_ghash_new(), BLI_ghashutil_intcmp(), BLI_ghashutil_inthash_p_simple(), BLI_memblock_create, BLI_memblock_create_ex(), DRWData::callbuffers, DRWData::commands, DRWData::commands_small, DRWData::cullstates, DRW_instance_data_list_create(), DRW_RESOURCE_CHUNK_LEN, DRW_texture_pool_create(), DRW_uniform_attrs_pool_new(), DRW_view_data_create(), g_registered_engines, DRWData::idatalist, DRWData::images, MEM_callocN, DRWData::obattrs_ubo_pool, DRWData::obinfos, DRWData::obmats, DRWData::passes, DRWData::shgroups, DRWData::texture_pool, DRWData::uniforms, DRWData::view_data, DRWData::views, and DRWData::vlattrs_name_cache.
Referenced by drw_manager_init(), and drw_viewport_data_ensure().
| void DRW_viewport_data_free | ( | DRWData * | drw_data | ) |
Definition at line 457 of file draw_manager_c.cc.
References BLI_freelistN(), BLI_ghash_free(), BLI_memblock_destroy(), DRWData::callbuffers, DRWData::commands, DRWData::commands_small, DRWData::cullstates, DRWData::curves_ubos, draw_texture_release(), DRW_instance_data_list_free(), DRW_texture_pool_free(), DRW_uniform_attrs_pool_free(), DRW_view_data_free(), DRW_volume_ubos_pool_free(), GPU_uniformbuf_free(), DRWData::idatalist, DRWData::images, DRWData::matrices_ubo, MEM_freeN(), DRWData::obattrs_ubo_pool, DRWData::obinfos, DRWData::obinfos_ubo, DRWData::obmats, DRWData::passes, DRWData::shgroups, DRWData::texture_pool, DRWData::ubo_len, DRWData::uniforms, DRWData::view_data, DRWData::views, DRWData::vlattrs_buf, DRWData::vlattrs_name_cache, DRWData::vlattrs_name_list, DRWData::vlattrs_ubo, and DRWData::volume_grids_ubos.
Referenced by drw_manager_exit(), and GPU_viewport_free().