Blender  V2.93
Macros | Variables
select_engine.c File Reference
#include "DNA_screen_types.h"
#include "UI_resources.h"
#include "DRW_engine.h"
#include "DRW_select_buffer.h"
#include "draw_cache_impl.h"
#include "draw_manager.h"
#include "select_engine.h"
#include "select_private.h"

Go to the source code of this file.

Macros

#define SELECT_ENGINE   "SELECT_ENGINE"
 

Functions

Utils
static void select_engine_framebuffer_setup (void)
 
Engine Functions
static void select_engine_init (void *vedata)
 
static void select_cache_init (void *vedata)
 
static void select_cache_populate (void *vedata, Object *ob)
 
static void select_draw_scene (void *vedata)
 
static void select_engine_free (void)
 
Exposed <tt>select_private.h</tt> functions
struct SELECTID_ContextDRW_select_engine_context_get (void)
 
GPUFrameBufferDRW_engine_select_framebuffer_get (void)
 
GPUTextureDRW_engine_select_texture_get (void)
 

Variables

struct {
   struct GPUFrameBuffer *   framebuffer_select_id
 
   struct GPUTexture *   texture_u32
 
   SELECTID_Shaders   sh_data [GPU_SHADER_CFG_LEN]
 
   struct SELECTID_Context   context
 
   uint   runtime_new_objects
 
e_data = {NULL}
 
char datatoc_common_view_lib_glsl []
 
char datatoc_selection_id_3D_vert_glsl []
 
char datatoc_selection_id_frag_glsl []
 
Engine Type
static const DrawEngineDataSize select_data_size = DRW_VIEWPORT_DATA_SIZE(SELECTID_Data)
 
DrawEngineType draw_engine_select_type
 
RenderEngineType DRW_engine_viewport_select_type
 

Detailed Description

Engine for drawing a selection map where the pixels indicate the selection indices.

Definition in file select_engine.c.

Macro Definition Documentation

◆ SELECT_ENGINE

#define SELECT_ENGINE   "SELECT_ENGINE"

Definition at line 38 of file select_engine.c.

Function Documentation

◆ DRW_engine_select_framebuffer_get()

GPUFrameBuffer* DRW_engine_select_framebuffer_get ( void  )

Definition at line 406 of file select_engine.c.

References e_data.

Referenced by DRW_select_buffer_read().

◆ DRW_engine_select_texture_get()

GPUTexture* DRW_engine_select_texture_get ( void  )

Definition at line 411 of file select_engine.c.

References e_data.

Referenced by DRW_select_buffer_read().

◆ DRW_select_engine_context_get()

struct SELECTID_Context* DRW_select_engine_context_get ( void  )

◆ select_cache_init()

static void select_cache_init ( void *  vedata)
static

◆ select_cache_populate()

static void select_cache_populate ( void *  vedata,
Object ob 
)
static

◆ select_draw_scene()

static void select_draw_scene ( void *  vedata)
static

◆ select_engine_framebuffer_setup()

static void select_engine_framebuffer_setup ( void  )
static

◆ select_engine_free()

static void select_engine_free ( void  )
static

◆ select_engine_init()

static void select_engine_init ( void *  vedata)
static

Variable Documentation

◆ context

struct SELECTID_Context context

Definition at line 46 of file select_engine.c.

Referenced by blender::nodes::MFNetworkTreeMap::add(), blender::fn::MFContextBuilder::add_global_context(), blender::nodes::MFNetworkTreeMap::add_try_match(), autotrack_context_init_autotrack(), autotrack_context_init_clips(), autotrack_context_init_image_accessor(), autotrack_context_init_markers(), autotrack_context_init_tracks(), autotrack_context_init_tracks_for_clip(), autotrack_context_step_cb(), autotrack_count_all_usable_markers(), autotrack_count_trackable_markers(), autotrack_is_track_trackable(), BKE_animsys_nla_remap_keyframe_values(), BKE_autotrack_context_finish(), BKE_autotrack_context_free(), BKE_autotrack_context_new(), BKE_autotrack_context_step(), BKE_autotrack_context_sync(), BKE_autotrack_context_sync_user(), BKE_blender_user_menu_ensure(), BKE_blender_user_menu_find(), BKE_node_tree_ui_storage_get_from_context(), BKE_nodetree_attribute_hint_add(), BKE_nodetree_error_message_add(), BKE_nodetree_ui_storage_free_for_context(), BKE_screen_area_blend_read_lib(), BKE_screen_foreach_id_screen_area(), BKE_subdiv_foreach_subdiv_geometry(), BKE_tracking_reconstruction_context_free(), BKE_tracking_reconstruction_context_new(), BKE_tracking_reconstruction_error_message_get(), BKE_tracking_reconstruction_finish(), BKE_tracking_reconstruction_report_error_message(), BKE_tracking_reconstruction_solve(), BLI_windows_system_backtrace_run_trace(), bli_windows_system_backtrace_stack_thread(), ObjectSocketMultiFunction::call(), blender::fn::MFNetworkEvaluator::call(), blender::io::AbstractHierarchyWriter::check_has_deforming_physics(), blender::io::AbstractHierarchyWriter::check_has_physics(), blender::io::AbstractHierarchyWriter::check_is_animated(), blender::io::alembic::ABCNurbsWriter::check_is_animated(), blender::io::alembic::ABCTransformWriter::check_is_animated(), blender::io::usd::USDTransformWriter::check_is_animated(), blender::fn::mf_network_optimization::compute_constant_sockets_and_add_folded_nodes(), blender::io::alembic::ABCCurveWriter::create_alembic_objects(), blender::io::alembic::ABCInstanceWriter::create_alembic_objects(), blender::io::alembic::ABCGenericMeshWriter::create_alembic_objects(), blender::io::alembic::ABCNurbsWriter::create_alembic_objects(), blender::io::alembic::ABCHierarchyIterator::create_data_writer(), blender::io::usd::USDHierarchyIterator::create_data_writer(), blender::io::alembic::ABCHierarchyIterator::create_hair_writer(), blender::io::usd::USDHierarchyIterator::create_hair_writer(), blender::io::alembic::ABCHierarchyIterator::create_particle_writer(), blender::io::alembic::ABCHierarchyIterator::create_transform_writer(), blender::io::usd::USDHierarchyIterator::create_transform_writer(), GHOST_SystemCocoa::createOffscreenContext(), GHOST_SystemSDL::createOffscreenContext(), GHOST_SystemWin32::createOffscreenContext(), GHOST_SystemX11::createOffscreenContext(), GHOST_SystemWayland::createOffscreenContext(), GHOST_SystemWin32::createOffscreenContextD3D(), CTX_store_add_all(), blender::io::AbstractHierarchyIterator::determine_graph_index_dupli(), blender::io::alembic::ABCHierarchyIterator::determine_graph_index_dupli(), blender::io::AbstractHierarchyIterator::determine_graph_index_object(), blender::io::alembic::ABCHierarchyIterator::determine_graph_index_object(), direct_link_area(), GHOST_SystemCocoa::disposeContext(), GHOST_SystemSDL::disposeContext(), GHOST_SystemWin32::disposeContext(), GHOST_SystemX11::disposeContext(), GHOST_SystemWayland::disposeContext(), GHOST_SystemWin32::disposeContextD3D(), do_add_effect(), do_adjustment(), do_adjustment_impl(), do_alphaover_effect(), do_alphaunder_effect(), do_blend_mode_effect(), do_colormix_effect(), do_cross_effect(), do_gammacross_effect(), do_gaussian_blur_effect(), do_gaussian_blur_effect_x_cb(), do_gaussian_blur_effect_y_cb(), do_glow_effect(), do_mul_effect(), do_multicam(), do_overdrop_effect(), do_render_sequencer(), do_render_strip_seqbase(), do_render_strip_uncached(), do_solid_color(), do_speed_effect(), do_sub_effect(), do_text_effect(), do_transform_effect(), do_wipe_effect(), blender::io::alembic::ABCCameraWriter::do_write(), blender::io::alembic::ABCCurveWriter::do_write(), blender::io::alembic::ABCHairWriter::do_write(), blender::io::alembic::ABCGenericMeshWriter::do_write(), blender::io::alembic::ABCNurbsWriter::do_write(), blender::io::alembic::ABCPointsWriter::do_write(), blender::io::alembic::ABCTransformWriter::do_write(), blender::io::usd::USDCameraWriter::do_write(), blender::io::usd::USDHairWriter::do_write(), blender::io::usd::USDLightWriter::do_write(), blender::io::usd::USDGenericMeshWriter::do_write(), blender::io::usd::USDTransformWriter::do_write(), BVHNode::dump_graph(), ED_buttons_set_context(), ED_screen_user_menu_ensure(), ED_screen_user_menus_find(), ED_spreadsheet_context_free(), ED_spreadsheet_context_path_clear(), ED_spreadsheet_context_path_hash(), ED_spreadsheet_set_geometry_node_context(), blender::io::alembic::ABCAbstractWriter::ensure_custom_properties_exporter(), blender::nodes::GeoNodeExecParams::error_message_add(), followtrack_context_init(), followtrack_distance_from_viewplane_get(), followtrack_evaluate(), followtrack_evaluate_using_2d_position(), followtrack_evaluate_using_3d_position(), followtrack_evaluate_using_3d_position_camera(), followtrack_evaluate_using_3d_position_object(), followtrack_fit_frame(), followtrack_project_to_depth_object_if_needed(), followtrack_undistort_if_needed(), blender::io::ObjectIdentifier::for_hierarchy_context(), gammacross_init_execution(), blender::nodes::get_dot_cluster_for_context(), blender::fn::MFContext::get_global_context(), blender::io::alembic::ABCAbstractWriter::get_id_properties(), blender::io::alembic::ABCTransformWriter::get_id_properties(), blender::io::AbstractHierarchyIterator::get_object_data_path(), get_sequence_effect_impl(), GHOST_SystemX11::getClipboard(), GHOST_SystemX11::getClipboard_xcout(), GHOST_ActivateOpenGLContext(), GHOST_DisposeOpenGLContext(), GHOST_GetContextDefaultOpenGLFramebuffer(), GHOST_ReleaseOpenGLContext(), GHOST_XrGraphicsBindingCreateFromType(), blender::io::AbstractHierarchyIterator::graph_children(), group_initexec(), icon_merge(), icon_merge_context_free(), icon_merge_context_info_for_icon_head(), icon_merge_context_init(), icon_merge_context_register_icon(), icondir_to_png(), IMB_anim_index_rebuild(), IMB_anim_index_rebuild_context(), IMB_anim_index_rebuild_finish(), input_preprocess(), blender::io::alembic::ABCCameraWriter::is_supported(), blender::io::alembic::ABCInstanceWriter::is_supported(), blender::io::alembic::ABCMetaballWriter::is_supported(), blender::io::alembic::ABCGenericMeshWriter::is_supported(), blender::io::alembic::ABCNurbsWriter::is_supported(), blender::io::alembic::ABCPointsWriter::is_supported(), blender::io::usd::USDCameraWriter::is_supported(), blender::io::usd::USDLightWriter::is_supported(), blender::io::usd::USDGenericMeshWriter::is_supported(), blender::io::usd::USDMetaballWriter::is_supported(), lib_link_workspace_layout_restore(), log_ui_hints(), blender::io::usd::USDAbstractWriter::mark_as_instance(), meshdeform_matrix_add_cell(), meshdeform_matrix_add_rhs(), meshdeform_matrix_solve(), mikk_compute_tangents(), mikk_get_normal(), mikk_get_num_faces(), mikk_get_num_verts_of_face(), mikk_get_position(), mikk_get_texture_coordinate(), mikk_set_tangent_space(), modifier_mask_get(), modifier_render_mask_input(), multires_create_grids_in_unsubdivided_base_mesh(), multires_unsubdivide_context_free(), multires_unsubdivide_context_init(), multires_unsubdivide_extract_grids(), multires_unsubdivide_extract_single_grid_from_face_edge(), multires_unsubdivide_prepare_original_bmesh_for_extract(), multires_unsubdivide_private_extract_data_free(), multires_unsubdivide_to_basemesh(), GHOST_WindowCocoa::newDrawingContext(), GHOST_WindowSDL::newDrawingContext(), GHOST_WindowX11::newDrawingContext(), node_ui_storage_ensure(), ntree_exec_begin(), ntreeShaderBeginExecTree(), ntreeShaderBeginExecTree_internal(), ntreeTexBeginExecTree(), ntreeTexBeginExecTree_internal(), outliner_set_properties_tab(), outliner_sync_to_properties_editors(), p_abf_matrix_invert(), p_chart_lscm_load_solution(), p_chart_lscm_solve(), panel_type_context_poll(), prepare_effect_imbufs(), proxy_startjob(), pyop_call(), pyop_poll(), pyrna_struct_driver_add(), pyrna_struct_driver_remove(), reconstruct_retrieve_libmv(), reconstruct_retrieve_libmv_intrinsics(), reconstruct_retrieve_libmv_tracks(), reconstructionOptionsFromContext(), blender::io::remove_weak_subtrees(), reorder_instanced_panel_list(), reportContextString(), reset_tree_ui_storage(), RNA_def_property_translation_context(), RNA_def_struct_translation_context(), screen_opengl_render_apply(), seq_cache_allocate_key(), seq_cache_get(), seq_cache_populate_key(), seq_cache_put(), seq_cache_put_if_possible(), SEQ_can_use_proxy(), seq_input_have_to_preprocess(), SEQ_modifier_apply_stack(), seq_prefetch_get_original_context(), seq_prefetch_start(), seq_prefetch_start_ex(), seq_prefetch_update_context(), seq_proxy_build_frame(), seq_proxy_fetch(), SEQ_proxy_rebuild(), SEQ_proxy_rebuild_context(), SEQ_proxy_rebuild_finish(), seq_render_effect_execute_threaded(), seq_render_effect_strip_impl(), SEQ_render_give_ibuf(), SEQ_render_give_ibuf_direct(), seq_render_give_ibuf_seqbase(), seq_render_image_strip(), seq_render_image_strip_view(), seq_render_mask(), seq_render_mask_strip(), seq_render_movie_strip(), seq_render_movie_strip_custom_file_proxy(), seq_render_movie_strip_view(), seq_render_movieclip_strip(), seq_render_preprocess_ibuf(), seq_render_scene_strip(), seq_render_strip(), seq_render_strip_stack(), seq_render_strip_stack_apply_effect(), seq_speed_effect_target_frame_get(), sequencer_ibuf_get(), sequencer_rebuild_proxy_exec(), slice_get_byte_buffers(), slice_get_float_buffers(), blender::ed::spreadsheet::spreadsheet_context_free(), blender::ed::spreadsheet::spreadsheet_context_hash(), blender::ed::spreadsheet::spreadsheet_context_modifier_free(), blender::ed::spreadsheet::spreadsheet_context_modifier_hash(), blender::ed::spreadsheet::spreadsheet_context_modifier_new(), blender::ed::spreadsheet::spreadsheet_context_node_free(), blender::ed::spreadsheet::spreadsheet_context_node_hash(), blender::ed::spreadsheet::spreadsheet_context_node_new(), blender::ed::spreadsheet::spreadsheet_context_object_free(), blender::ed::spreadsheet::spreadsheet_context_object_hash(), blender::ed::spreadsheet::spreadsheet_context_object_new(), spreadsheet_free(), spreadsheet_id_remap(), store_grid_data(), try_get_socket_to_preview_for_spreadsheet(), ui_pie_menu_level_create(), uiItemFullO(), uiItemFullO_ptr(), uiItemFullO_ptr_ex(), uiItemFullOMenuHold_ptr(), uiItemPopoverPanelFromGroup(), uiItemsFullEnumO(), uiItemsFullEnumO_items(), uiLayoutContextCopy(), update_pinned_context_path_if_outdated(), WM_menu_name_call(), WM_opengl_context_activate(), WM_opengl_context_dispose(), WM_opengl_context_release(), wm_operator_call_internal(), WM_operator_call_py(), WM_operator_name_call(), WM_operator_name_call_ptr(), WM_operator_name_call_with_properties(), WM_operator_poll_context(), wm_xr_init(), wm_xr_runtime_data_free(), blender::io::alembic::ABCAbstractWriter::write(), blender::io::usd::USDAbstractWriter::write(), write_area(), blender::io::alembic::ABCAbstractWriter::write_visibility(), and blender::io::usd::USDAbstractWriter::write_visibility().

◆ datatoc_common_view_lib_glsl

char datatoc_common_view_lib_glsl[]
extern

Definition at line 59 of file intern/ghost/test/multitest/stubs.c.

Referenced by select_engine_init().

◆ datatoc_selection_id_3D_vert_glsl

char datatoc_selection_id_3D_vert_glsl[]
extern

Referenced by select_engine_init().

◆ datatoc_selection_id_frag_glsl

char datatoc_selection_id_frag_glsl[]
extern

Referenced by select_engine_init().

◆ draw_engine_select_type

DrawEngineType draw_engine_select_type
Initial value:
= {
N_("Select ID"),
}
#define N_(msgid)
static void select_cache_populate(void *vedata, Object *ob)
static void select_cache_init(void *vedata)
static const DrawEngineDataSize select_data_size
static void select_engine_free(void)
static void select_draw_scene(void *vedata)
static void select_engine_init(void *vedata)
Definition: select_engine.c:96

Definition at line 359 of file select_engine.c.

Referenced by DRW_draw_select_id(), DRW_engines_register(), DRW_select_buffer_context_offset_for_object_elem(), select_cache_init(), and select_cache_populate().

◆ DRW_engine_viewport_select_type

RenderEngineType DRW_engine_viewport_select_type
Initial value:
= {
N_("Select ID"),
{NULL, NULL, NULL},
}
#define RE_USE_STEREO_VIEWPORT
Definition: RE_engine.h:65
#define RE_INTERNAL
Definition: RE_engine.h:57
#define RE_USE_GPU_CONTEXT
Definition: RE_engine.h:66
DrawEngineType draw_engine_select_type
#define SELECT_ENGINE
Definition: select_engine.c:38

Definition at line 378 of file select_engine.c.

◆ 

struct { ... } e_data

◆ framebuffer_select_id

struct GPUFrameBuffer* framebuffer_select_id

Definition at line 43 of file select_engine.c.

◆ runtime_new_objects

uint runtime_new_objects

Definition at line 48 of file select_engine.c.

◆ select_data_size

const DrawEngineDataSize select_data_size = DRW_VIEWPORT_DATA_SIZE(SELECTID_Data)
static

Definition at line 357 of file select_engine.c.

◆ sh_data

Definition at line 46 of file select_engine.c.

Referenced by select_engine_free(), and select_engine_init().

◆ texture_u32

struct GPUTexture* texture_u32

Definition at line 44 of file select_engine.c.