|
Blender V4.5
|
#include "DNA_userdef_types.h"#include "BLI_math_vector.h"#include "BLI_utildefines.h"#include "GPU_state.hh"#include "gpu_backend.hh"#include "gpu_context_private.hh"#include "gpu_state_private.hh"Go to the source code of this file.
Macros | |
| #define | PIXELSIZE (U.pixelsize) |
| #define | SET_STATE(_prefix, _state, _value) |
| #define | SET_IMMUTABLE_STATE(_state, _value) |
| #define | SET_MUTABLE_STATE(_state, _value) |
Functions | |
Immutable state Setters | |
| void | GPU_blend (eGPUBlend blend) |
| void | GPU_face_culling (eGPUFaceCullTest culling) |
| eGPUFaceCullTest | GPU_face_culling_get () |
| void | GPU_front_facing (bool invert) |
| void | GPU_provoking_vertex (eGPUProvokingVertex vert) |
| void | GPU_depth_test (eGPUDepthTest test) |
| void | GPU_stencil_test (eGPUStencilTest test) |
| void | GPU_line_smooth (bool enable) |
| void | GPU_polygon_smooth (bool enable) |
| void | GPU_logic_op_xor_set (bool enable) |
| void | GPU_write_mask (eGPUWriteMask mask) |
| void | GPU_color_mask (bool r, bool g, bool b, bool a) |
| void | GPU_depth_mask (bool depth) |
| void | GPU_shadow_offset (bool enable) |
| void | GPU_clip_distances (int distances_enabled) |
| void | GPU_state_set (eGPUWriteMask write_mask, eGPUBlend blend, eGPUFaceCullTest culling_test, eGPUDepthTest depth_test, eGPUStencilTest stencil_test, eGPUStencilOp stencil_op, eGPUProvokingVertex provoking_vert) |
| void | GPU_clip_control_unit_range (bool enable) |
Mutable State Setters | |
| void | GPU_depth_range (float near, float far) |
| void | GPU_line_width (float width) |
| void | GPU_point_size (float size) |
| void | GPU_program_point_size (bool enable) |
| void | GPU_scissor_test (bool enable) |
| void | GPU_scissor (int x, int y, int width, int height) |
| void | GPU_viewport (int x, int y, int width, int height) |
| void | GPU_stencil_reference_set (uint reference) |
| void | GPU_stencil_write_mask_set (uint write_mask) |
| void | GPU_stencil_compare_mask_set (uint compare_mask) |
State Getters | |
| eGPUBlend | GPU_blend_get () |
| eGPUWriteMask | GPU_write_mask_get () |
| uint | GPU_stencil_mask_get () |
| eGPUDepthTest | GPU_depth_test_get () |
| eGPUStencilTest | GPU_stencil_test_get () |
| float | GPU_line_width_get () |
| bool | GPU_line_smooth_get () |
| void | GPU_scissor_get (int coords[4]) |
| void | GPU_viewport_size_get_f (float coords[4]) |
| void | GPU_viewport_size_get_i (int coords[4]) |
| bool | GPU_depth_mask_get () |
| bool | GPU_mipmap_enabled () |
Context Utils | |
| void | GPU_flush () |
| void | GPU_finish () |
| void | GPU_apply_state () |
BGL workaround | |
bgl makes direct GL calls that makes our state tracking out of date. This flag make it so that the pyGPU calls will not override the state set by bgl functions. | |
| void | GPU_bgl_start () |
| void | GPU_bgl_end () |
| bool | GPU_bgl_get () |
Synchronization Utils | |
| void | GPU_memory_barrier (eGPUBarrier barrier) |
| GPUFence * | GPU_fence_create () |
| void | GPU_fence_free (GPUFence *fence) |
| void | GPU_fence_signal (GPUFence *fence) |
| void | GPU_fence_wait (GPUFence *fence) |
| #define PIXELSIZE (U.pixelsize) |
Definition at line 11 of file gpu_state.cc.
Referenced by GPU_line_width().
| #define SET_IMMUTABLE_STATE | ( | _state, | |
| _value ) |
Definition at line 35 of file gpu_state.cc.
Referenced by GPU_blend(), GPU_clip_control_unit_range(), GPU_clip_distances(), GPU_depth_test(), GPU_face_culling(), GPU_front_facing(), GPU_line_smooth(), GPU_logic_op_xor_set(), GPU_polygon_smooth(), GPU_provoking_vertex(), GPU_shadow_offset(), GPU_stencil_test(), and GPU_write_mask().
| #define SET_MUTABLE_STATE | ( | _state, | |
| _value ) |
Definition at line 36 of file gpu_state.cc.
Referenced by GPU_line_width(), GPU_stencil_compare_mask_set(), GPU_stencil_reference_set(), and GPU_stencil_write_mask_set().
| #define SET_STATE | ( | _prefix, | |
| _state, | |||
| _value ) |
Definition at line 28 of file gpu_state.cc.
| void GPU_apply_state | ( | ) |
Definition at line 315 of file gpu_state.cc.
References blender::gpu::StateManager::apply_state(), blender::gpu::Context::get(), and blender::gpu::Context::state_manager.
Referenced by drw_callbacks_post_scene(), and pygpu_offscreen_unbind().
| void GPU_bgl_end | ( | ) |
Just turn off the bgl safeguard system. Can be called even without GPU_bgl_start.
Definition at line 360 of file gpu_state.cc.
References blender::gpu::StateManager::force_state(), blender::gpu::Context::get(), blender::gpu::Context::state_manager, and blender::gpu::StateManager::use_bgl.
Referenced by BLF_draw(), BLF_draw_svg_icon(), bpy_import_test(), ed_region_draw_cb_draw(), pygpu_offscreen_draw_view3d(), and wm_draw_window().
| bool GPU_bgl_get | ( | ) |
Definition at line 374 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::Context::state_manager, and blender::gpu::StateManager::use_bgl.
Referenced by blender::gpu::debug::check_gl_resources(), and pygpu_offscreen_draw_view3d().
| void GPU_bgl_start | ( | ) |
Definition at line 330 of file gpu_state.cc.
References blender::gpu::StateManager::apply_state(), blender::gpu::Context::get(), GPU_blend(), GPU_BLEND_NONE, GPU_DEPTH_LESS_EQUAL, GPU_depth_test(), GPU_depth_test_get(), blender::gpu::Context::state_manager, and blender::gpu::StateManager::use_bgl.
Referenced by pygpu_offscreen_draw_view3d().
| void GPU_blend | ( | eGPUBlend | blend | ) |
Definition at line 42 of file gpu_state.cc.
References blend(), and SET_IMMUTABLE_STATE.
Referenced by ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_framerange(), ANIM_draw_previewrange(), annotation_draw_data(), annotation_draw_eraser(), annotation_draw_stabilizer(), arrow_draw_intern(), blender::gpu::tests::blend_test(), blf_batch_draw(), brush_drawcursor(), button2d_draw_intern(), channel_list_draw_keys(), clip_draw_dopesheet_channels(), clip_draw_dopesheet_main(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), BlenderDisplayDriver::draw(), blender::ed::spreadsheet::draw_alternating_row_overlay(), draw_anti_tria(), draw_azone_arrow(), draw_background(), blender::ed::vse::draw_cache_view(), draw_channel_strips(), blender::ed::spreadsheet::draw_column_reorder_source(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_fcurve(), draw_fcurve_handles(), draw_fcurve_samples(), draw_fcurve_vertices(), draw_filled_lasso(), blender::ed::vse::draw_histogram(), draw_image_cache(), draw_lasso_smooth_stroke_indicator(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_marker(), draw_markers_background(), draw_mask_layers(), draw_movieclip_buffer(), draw_movieclip_cache(), draw_nla_main_data(), draw_nla_track_list(), draw_normalization_borders(), draw_overshoot_triangle(), draw_plane_marker_image(), draw_scope_end(), blender::ed::vse::draw_seq_in_view(), blender::ed::vse::draw_seq_strips(), blender::ed::vse::draw_seq_timeline_channels(), blender::ed::vse::draw_strips_background(), blender::ed::vse::draw_strips_foreground(), draw_text_decoration(), draw_text_main(), blender::ed::vse::draw_timeline_sfra_efra(), draw_tracks_motion_and_error_curves(), blender::ed::vse::draw_vectorscope_graticule(), draw_view_axis(), blender::ed::transform::drawAutoKeyWarning(), blender::ed::transform::drawEdgeSlide(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), DRW_draw_render_loop_offscreen(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_image_draw_info(), ED_mask_draw_region(), ED_region_do_draw(), ED_region_image_render_region_draw(), ED_region_info_draw_multiline(), ED_screen_draw_edges(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), file_draw_preview(), file_draw_special_image(), gizmo_axis_draw(), gizmo_button2d_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_dial_draw(), gizmo_move_draw(), gizmo_primitive_draw_intern(), gizmo_ruler_draw(), GPU_bgl_start(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_channel_names(), graph_draw_ghost_curves(), graph_main_region_draw(), histogram_draw_one(), icon_draw_size(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move3d_draw_intern(), nla_draw_strip(), nla_draw_strip_curves(), blender::ed::space_node::node_draw_hidden(), blender::ed::space_node::node_draw_link_end_marker(), blender::ed::space_node::node_draw_mute_line(), blender::ed::space_node::node_draw_nodesocket(), blender::ed::space_node::node_draw_nodetree(), blender::ed::space_node::node_draw_preview(), blender::ed::space_node::node_draw_space(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::space_node::nodelink_batch_draw(), blender::ed::space_node::nodesocket_batch_end(), blender::ed::outliner::outliner_draw_active_indicator(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::outliner::outliner_draw_highlights(), blender::ed::outliner::outliner_draw_tree(), blender::ed::outliner::outliner_draw_tree_element(), blender::ed::sculpt_paint::paint_cursor_restore_drawing_state(), blender::ed::sculpt_paint::paint_cursor_setup_2D_drawing(), blender::ed::sculpt_paint::paint_cursor_setup_3D_drawing(), blender::ed::sculpt_paint::paint_draw_alpha_overlay(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), panel_draw_aligned_backdrop(), panel_draw_aligned_widgets(), playanim_toscreen_ex(), pygpu_state_blend_set(), radial_control_paint_cursor(), region_draw_azone_tab_arrow(), region_draw_azones(), region_draw_emboss(), region_draw_status_text(), blender::ed::greasepencil::render_strokes(), blender::ed::vse::sequencer_draw_scopes(), blender::ed::vse::sequencer_preview_draw_overlays(), stitch_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::ed::vse::text_edit_draw(), blender::ed::vse::text_edit_draw_box(), textview_draw_sel(), textview_draw_string(), timeline_draw_cache(), blender::ed::transform::transform_draw_cursor_draw(), UI_block_draw(), ui_draw_but(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_IMAGE(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_UNITVEC(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_button_sections_alignment_separator(), ui_draw_colorband_handle(), ui_draw_dropshadow(), ui_draw_menu_item(), ui_draw_pie_center(), ui_draw_popover_back_impl(), ui_draw_preview_item_stateless(), UI_draw_roundbox_4fv_ex(), ui_draw_separator(), ui_hsv_cursor(), UI_panel_category_draw_all(), ui_searchbox_draw_clip_tri_down(), ui_searchbox_draw_clip_tri_up(), ui_tooltip_region_draw_cb(), UI_widgetbase_draw_cache_end(), v3d_cursor_plane_draw_grid(), blender::ed::object::voxel_size_edit_draw(), widget_box(), widget_draw_icon(), widget_draw_node_link_socket(), widget_draw_submenu_tria(), widget_draw_text(), widget_draw_text_icon(), widget_menu_back(), widget_progress_type_ring(), widget_swatch(), widget_tab(), widgetbase_draw_ex(), wm_drags_draw(), wm_draw_region_blend(), wm_gesture_draw_circle(), wm_gesture_draw_line_active_side(), wm_gesture_draw_rect(), wm_software_cursor_draw_bitmap(), wm_xr_controller_aim_draw(), and wm_xr_controller_model_draw().
| eGPUBlend GPU_blend_get | ( | ) |
Definition at line 226 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by blender::ed::sculpt_paint::paint_draw_alpha_overlay(), pygpu_state_blend_get(), wide_line_workaround_end(), and wide_line_workaround_start().
| void GPU_clip_control_unit_range | ( | bool | enable | ) |
Definition at line 148 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by blender::draw::command::StateSet::execute().
| void GPU_clip_distances | ( | int | distances_enabled | ) |
Definition at line 124 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by DRW_text_cache_draw(), blender::draw::command::StateSet::execute(), and pygpu_state_clip_distances_set().
| void GPU_color_mask | ( | bool | r, |
| bool | g, | ||
| bool | b, | ||
| bool | a ) |
Definition at line 98 of file gpu_state.cc.
References b, blender::gpu::Context::get(), GPU_WRITE_ALPHA, GPU_WRITE_BLUE, GPU_WRITE_GREEN, GPU_WRITE_RED, SET_FLAG_FROM_TEST, blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear_attachment(), gpu_select_pick_begin(), gpu_select_query_begin(), GPU_viewport_stereo_composite(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), pygpu_state_color_mask_set(), and blender::ed::vse::sequencer_preview_draw_overlays().
| void GPU_depth_mask | ( | bool | depth | ) |
Definition at line 110 of file gpu_state.cc.
References blender::gpu::Context::get(), GPU_WRITE_DEPTH, SET_FLAG_FROM_TEST, blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by annotation_draw_data(), blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear_attachment(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), DRW_draw_gizmo_2d(), gizmo_draw_select_3d_loop(), gpu_select_pick_begin(), gpu_select_pick_load_id(), gpu_select_query_begin(), pygpu_state_depth_mask_set(), blender::ed::greasepencil::render_strokes(), blender::ed::vse::sequencer_preview_draw_overlays(), and blender::gpu::GLFrameBuffer::subpass_transition_impl().
| bool GPU_depth_mask_get | ( | ) |
Definition at line 287 of file gpu_state.cc.
References blender::gpu::Context::get(), GPU_WRITE_DEPTH, blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by annotation_draw_data(), blender::gpu::GLFrameBuffer::clear_attachment(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), gpu_select_pick_load_id(), and pygpu_state_depth_mask_get().
| void GPU_depth_range | ( | float | near, |
| float | far ) |
Definition at line 159 of file gpu_state.cc.
References copy_v2_fl2(), blender::gpu::Context::get(), blender::gpu::StateManager::mutable_state, state, and blender::gpu::Context::state_manager.
Referenced by blender::draw::command::StateSet::execute().
| void GPU_depth_test | ( | eGPUDepthTest | test | ) |
Definition at line 68 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by annotation_draw_strokes(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::ed::space_node::draw_nodespace_back_pix(), draw_primitive_view(), blender::ed::vse::draw_timeline_pre_view_callbacks(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drw_callbacks_post_scene(), drw_callbacks_post_scene_2D(), DRW_render_gpencil(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), gizmo_draw_select_3d_loop(), gizmos_draw_list(), GPU_bgl_start(), gpu_select_pick_begin(), gpu_select_pick_end(), gpu_select_query_begin(), gpu_select_query_end(), GPU_viewport_unbind_from_offscreen(), knifetool_draw(), blender::ed::space_node::node_draw_space(), blender::ed::sculpt_paint::paint_draw_alpha_overlay(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), blender::ed::vse::preview_draw_begin(), pygpu_state_depth_test_set(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), blender::ed::vse::sequencer_preview_draw_overlays(), view3d_gpu_select_ex(), view3d_main_region_draw(), wm_gizmo_geometryinfo_draw(), wm_xr_controller_aim_draw(), wm_xr_controller_model_draw(), and wm_xr_raycast_draw().
| eGPUDepthTest GPU_depth_test_get | ( | ) |
Definition at line 244 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by draw_primitive_view(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawPropCircle(), GPU_bgl_start(), gpu_select_pick_begin(), gpu_select_query_begin(), blender::ed::sculpt_paint::paint_draw_alpha_overlay(), pygpu_state_depth_test_get(), and blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw().
| void GPU_face_culling | ( | eGPUFaceCullTest | culling | ) |
Definition at line 47 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by pygpu_state_face_culling_set(), ui_draw_but_UNITVEC(), and wm_gizmo_geometryinfo_draw().
| eGPUFaceCullTest GPU_face_culling_get | ( | ) |
Definition at line 52 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
| GPUFence * GPU_fence_create | ( | ) |
Definition at line 390 of file gpu_state.cc.
References blender::gpu::GPUBackend::fence_alloc(), blender::gpu::GPUBackend::get(), and blender::gpu::wrap().
Referenced by BlenderDisplayDriver::gpu_resources_create().
| void GPU_fence_free | ( | GPUFence * | fence | ) |
Definition at line 396 of file gpu_state.cc.
References blender::gpu::unwrap().
Referenced by BlenderDisplayDriver::gpu_resources_destroy().
| void GPU_fence_signal | ( | GPUFence * | fence | ) |
Definition at line 401 of file gpu_state.cc.
References blender::gpu::unwrap().
Referenced by BlenderDisplayDriver::draw(), and BlenderDisplayDriver::update_end().
| void GPU_fence_wait | ( | GPUFence * | fence | ) |
Definition at line 406 of file gpu_state.cc.
References blender::gpu::unwrap().
Referenced by BlenderDisplayDriver::draw(), BlenderDisplayDriver::flush(), and BlenderDisplayDriver::update_begin().
| void GPU_finish | ( | ) |
Definition at line 310 of file gpu_state.cc.
References blender::gpu::Context::finish(), and blender::gpu::Context::get().
Referenced by blender::draw::compositor_engine::Instance::draw(), DRW_custom_pipeline_end(), blender::render::Context::evaluate_operation_post(), blender::gpu::MTLQueryPool::get_occlusion_result(), GPU_debug_capture_begin(), GPU_debug_capture_end(), GPU_debug_capture_scope_begin(), GPU_debug_capture_scope_end(), blender::gpu::tests::gpu_shader_lib_test(), blender::gpu::MTLIndexBuf::read(), blender::gpu::MTLStorageBuf::read(), blender::gpu::MTLVertBuf::read(), blender::eevee::IrradianceBake::surfels_lights_eval(), blender::opensubdiv::GPUComputeEvaluator::Synchronize(), blender::gpu::tests::test_framebuffer_clear_color_multiple_attachments(), blender::gpu::tests::test_framebuffer_clear_color_single_attachment(), blender::gpu::tests::test_framebuffer_clear_depth(), blender::gpu::tests::test_framebuffer_clear_multiple_color_multiple_attachments(), blender::gpu::tests::test_framebuffer_multi_viewport(), blender::gpu::tests::test_framebuffer_scissor_test(), blender::gpu::tests::test_framebuffer_subpass_input(), and blender::gpu::tests::ShaderSpecializationConst::validate().
| void GPU_flush | ( | ) |
Definition at line 305 of file gpu_state.cc.
References blender::gpu::Context::flush(), and blender::gpu::Context::get().
Referenced by blender::gpu::MTLStorageBuf::async_flush_to_host(), blender::gpu::tests::blend_test(), blender::gpu::MTLContext::compute_dispatch(), blender::gpu::MTLContext::compute_dispatch_indirect(), blender::draw::compositor_engine::Instance::draw(), BlenderDisplayDriver::draw(), blender::workbench::Instance::draw_image_render(), DRW_blender_gpu_render_context_disable(), ED_screen_draw_edges(), DRWContext::engines_draw_scene(), playanim_toscreen_ex(), blender::eevee::DepthOfField::render(), blender::eevee::Instance::render_frame(), screen_opengl_render_doit(), blender::eevee::ShadowModule::set_view(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), BlenderDisplayDriver::update_end(), and blender::gpu::tests::vertex_buffer_fetch_mode().
| void GPU_front_facing | ( | bool | invert | ) |
Definition at line 58 of file gpu_state.cc.
References invert(), and SET_IMMUTABLE_STATE.
Referenced by blender::draw::command::RecordingState::cleanup(), blender::draw::command::RecordingState::front_facing_set(), and pygpu_state_front_facing_set().
| void GPU_line_smooth | ( | bool | enable | ) |
Definition at line 78 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by annotation_draw_data(), annotation_draw_eraser(), annotation_draw_stabilizer(), brush_drawcursor(), button2d_draw_intern(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), draw_fcurve(), draw_fcurve_handles(), draw_fcurve_samples(), draw_lasso_smooth_stroke_indicator(), draw_spline_curve(), draw_spline_points(), draw_view_axis(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_view3d_cursor_snap_draw_util(), gizmo_ruler_draw(), gizmos_draw_list(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_ghost_curves(), histogram_draw_one(), nla_draw_strip_curves(), blender::ed::space_node::node_draw_space(), blender::ed::sculpt_paint::paint_cursor_restore_drawing_state(), blender::ed::sculpt_paint::paint_cursor_setup_2D_drawing(), blender::ed::sculpt_paint::paint_cursor_setup_3D_drawing(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), radial_control_paint_cursor(), blender::draw::command::StateSet::set(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::ed::vse::text_edit_draw(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HSVCIRCLE(), ui_draw_but_UNITVEC(), ui_draw_but_VECTORSCOPE(), UI_panel_category_draw_all(), v3d_cursor_plane_draw_grid(), and blender::ed::object::voxel_size_edit_draw().
| bool GPU_line_smooth_get | ( | ) |
Definition at line 262 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by pygpu_batch_draw(), and wide_line_workaround_start().
| void GPU_line_width | ( | float | width | ) |
Definition at line 166 of file gpu_state.cc.
References max_ff(), PIXELSIZE, and SET_MUTABLE_STATE.
Referenced by ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), annotation_draw_stabilizer(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), blender::ed::sculpt_paint::draw_bezier_handle_lines(), draw_distortion(), draw_fcurve(), draw_fcurve_modifier_controls_envelope(), draw_frame_curves(), draw_lasso_smooth_stroke_indicator(), blender::ed::greasepencil::image_render::draw_lines(), draw_marker_outline(), draw_marker_slide_zones(), draw_plane_marker_ex(), blender::ed::greasepencil::image_render::draw_polyline(), blender::ed::sculpt_paint::draw_rect_point(), draw_render_info(), draw_single_handle(), draw_track_path(), blender::ed::sculpt_paint::draw_tri_point(), draw_view_axis(), blender::ed::transform::drawEdgeSlide(), drawrenderborder(), blender::ed::transform::drawTransformView(), blender::ed::transform::drawVertSlide(), drawviewborder(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_image_draw_cursor(), ED_imbuf_sample_draw(), ED_markers_draw(), ED_region_do_draw(), ED_region_draw_mouse_line_cb(), ED_region_panels_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_elem_draw(), blender::ed::sculpt_paint::boundary::edges_preview_draw(), gizmo_ruler_draw(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_driver_debug(), graph_draw_ghost_curves(), graph_main_region_draw(), blender::ed::sculpt_paint::grease_pencil_brush_cursor_draw(), histogram_draw_one(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), mask_draw_curve_type(), nla_draw_use_dashed_outlines(), nla_strip_draw_markers(), blender::ed::space_node::node_draw_basis(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::outliner::outliner_draw_separator(), blender::ed::sculpt_paint::paint_cursor_draw_main_inactive_cursor(), blender::ed::sculpt_paint::paint_cursor_pose_brush_segments_draw(), blender::ed::sculpt_paint::paint_cursor_setup_2D_drawing(), blender::ed::sculpt_paint::paint_cursor_setup_3D_drawing(), blender::ed::sculpt_paint::paint_draw_2D_view_brush_cursor_default(), blender::ed::sculpt_paint::paint_draw_3D_view_inactive_brush_cursor(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_legacy_3D_view_brush_cursor(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), pygpu_state_line_width_set(), radial_control_paint_cursor(), radial_control_paint_curve(), region_draw_azones(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), blender::ed::sculpt_paint::SCULPT_layer_brush_height_preview_draw(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::draw::command::StateSet::set(), blender::ed::sculpt_paint::cloth::simulation_limits_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), tracking_segment_knot_cb(), tracking_segment_start_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_VECTORSCOPE(), ui_draw_separator(), UI_view2d_multi_grid_draw(), v3d_cursor_plane_draw_grid(), blender::ed::object::voxel_size_edit_draw(), and wm_gesture_draw().
| float GPU_line_width_get | ( | ) |
Definition at line 256 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::mutable_state, state, and blender::gpu::Context::state_manager.
Referenced by draw_fcurve(), pygpu_batch_draw(), pygpu_state_line_width_get(), and wide_line_workaround_start().
| void GPU_logic_op_xor_set | ( | bool | enable | ) |
Definition at line 88 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by draw_marker_areas(), draw_stabilization_border(), and ED_imbuf_sample_draw().
| void GPU_memory_barrier | ( | eGPUBarrier | barrier | ) |
A barrier must be issued after a shader arbitrary write to a buffer or a texture (i.e: using imageStore, imageAtomics, or SSBO). Otherwise, the written value may not appear updated to the next user of this resource.
The type of barrier must be chosen depending on the future use of the memory that was written by the shader.
Definition at line 385 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::issue_barrier(), and blender::gpu::Context::state_manager.
Referenced by blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_gpu(), blender::nodes::node_composite_file_output_cc::FileOutputOperation::add_pass_for_result(), blender::nodes::node_composite_file_output_cc::FileOutputOperation::add_view_for_result(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter_gpu(), blender::compositor::Result::bind_as_image(), blender::compositor::Result::bind_as_texture(), blender::gpu::tests::blend_test(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::compute_motion_blur(), blender::compositor::compute_preview_gpu(), blender::draw::View::compute_procedural_bounds(), blender::draw::View::compute_visibility(), blender::draw::Manager::debug_bind(), blender::draw::draw_subdiv_accumulate_normals(), blender::draw::draw_subdiv_build_edge_fac_buffer(), blender::draw::draw_subdiv_build_edituv_stretch_angle_buffer(), blender::draw::draw_subdiv_build_edituv_stretch_area_buffer(), blender::draw::draw_subdiv_build_fdots_buffers(), blender::draw::draw_subdiv_build_lines_buffer(), blender::draw::draw_subdiv_build_lines_loose_buffer(), blender::draw::draw_subdiv_build_lnor_buffer(), blender::draw::draw_subdiv_build_sculpt_data_buffer(), blender::draw::draw_subdiv_build_tris_buffer(), blender::draw::draw_subdiv_extract_pos_nor(), blender::draw::draw_subdiv_extract_uvs(), blender::draw::draw_subdiv_finalize_custom_normals(), blender::draw::draw_subdiv_finalize_normals(), blender::draw::draw_subdiv_interp_custom_data(), blender::draw::DRW_curves_update(), blender::draw::Manager::end_sync(), blender::draw::command::Barrier::execute(), blender::nodes::node_composite_denoise_cc::DenoiseOperation::execute(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_fog_glow(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_anti_diagonal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_diagonal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_horizontal_pass_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_simple_star_vertical_pass_gpu(), blender::draw::command::DrawMultiBuf::generate_commands(), GPU_indexbuf_build_curves_on_device(), ViewportColorSampleSession::init(), blender::render::Context::output_to_render_result(), blender::compositor::parallel_reduction_dispatch(), pygpu_compute_dispatch(), blender::eevee::Film::read_aov(), blender::gpu::tests::CallData::read_back(), blender::eevee::Film::read_pass(), blender::draw::select::SelectMap::read_result(), blender::eevee::IrradianceBake::read_result_packed(), blender::eevee::IrradianceBake::read_result_unpacked(), blender::eevee::DepthOfField::render(), blender::eevee::ShadowModule::set_view(), blender::draw::Manager::submit_debug(), blender::eevee::IrradianceBake::surfels_create(), blender::gpu::tests::test_buffer_texture(), blender::gpu::tests::test_compute_direct(), blender::gpu::tests::test_compute_indirect(), blender::draw::test_eevee_shadow_page_mask_ex(), blender::gpu::tests::test_shader_compute_1d(), blender::gpu::tests::test_shader_compute_2d(), blender::gpu::tests::test_shader_compute_ibo(), blender::gpu::tests::test_shader_compute_ssbo(), blender::gpu::tests::test_shader_compute_vbo(), blender::gpu::tests::test_texture_1d(), blender::gpu::tests::test_texture_1d_array(), blender::gpu::tests::test_texture_1d_array_upload(), blender::gpu::tests::test_texture_2d_array(), blender::gpu::tests::test_texture_2d_array_upload(), blender::gpu::tests::test_texture_3d(), blender::gpu::tests::test_texture_copy(), blender::gpu::tests::test_texture_cube(), blender::gpu::tests::test_texture_read(), blender::gpu::tests::ShaderSpecializationConst::validate(), and blender::render::Context::viewer_output_to_viewer_image().
| bool GPU_mipmap_enabled | ( | ) |
Definition at line 293 of file gpu_state.cc.
Referenced by gpu_texture_create_tile_array(), gpu_texture_update_from_ibuf(), and image_get_gpu_texture().
| void GPU_point_size | ( | float | size | ) |
Definition at line 172 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::mutable_state, size(), state, and blender::gpu::Context::state_manager.
Referenced by annotation_draw_stroke_2d(), annotation_draw_stroke_buffer(), draw_distortion(), draw_fcurve_modifier_controls_envelope(), blender::ed::transform::drawEdgeSlide(), blender::ed::transform::drawVertSlide(), EDBM_preselect_elem_draw(), graph_draw_driver_debug(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), pygpu_state_point_size_set(), blender::draw::command::StateSet::set(), stitch_draw(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), and wm_xr_raycast_draw().
| void GPU_polygon_smooth | ( | bool | enable | ) |
Definition at line 83 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by button2d_draw_intern(), dial_3d_draw_util(), draw_overshoot_triangle(), gizmo_axis_draw(), gizmo_cage3d_draw_intern(), gizmos_draw_list(), ui_draw_but_CURVEPROFILE(), and ui_draw_colorband_handle().
| void GPU_program_point_size | ( | bool | enable | ) |
Programmable point size:
TODO: remove and use program point size everywhere.
Definition at line 180 of file gpu_state.cc.
References fabsf, blender::gpu::Context::get(), blender::gpu::StateManager::mutable_state, state, and blender::gpu::Context::state_manager.
Referenced by annotation_draw_strokes(), arrow_draw_geom(), channel_list_draw_keys(), clip_draw_dopesheet_main(), blender::ed::greasepencil::draw_control_points(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve_vertices(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), draw_mask_layers(), EDBM_preselect_edgering_draw(), blender::draw::command::StateSet::execute(), knifetool_draw(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), nla_action_draw_keyframes(), pygpu_state_program_point_size_set(), blender::ed::vse::sequencer_retiming_keys_draw(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_hsv_cursor(), UI_view2d_dot_grid_draw(), and vicon_keytype_draw_wrapper().
| void GPU_provoking_vertex | ( | eGPUProvokingVertex | vert | ) |
Definition at line 63 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
| void GPU_scissor | ( | int | x, |
| int | y, | ||
| int | width, | ||
| int | height ) |
Definition at line 193 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), blender::gpu::FrameBuffer::scissor_set(), x, and y.
Referenced by blender::ed::spreadsheet::draw_cell_contents(), blender::ed::spreadsheet::draw_left_column_content(), blender::ed::spreadsheet::draw_top_row_content(), ED_region_info_draw_multiline(), ED_screen_draw_edges(), ghost_event_proc(), gpu_select_query_begin(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), blender::ed::outliner::outliner_draw_tree(), pygpu_state_scissor_set(), blender::gpu::tests::test_framebuffer_scissor_test(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_IMAGE(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), wm_draw_region_bind(), wm_main_playanim_intern(), wm_paintcursor_draw(), wmPartialViewport(), wmViewport(), and wmWindowViewport_ex().
| void GPU_scissor_get | ( | int | coords[4] | ) |
Definition at line 268 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), and blender::gpu::FrameBuffer::scissor_get().
Referenced by blender::ed::spreadsheet::draw_cell_contents(), blender::ed::spreadsheet::draw_left_column_content(), blender::ed::spreadsheet::draw_top_row_content(), ED_region_info_draw_multiline(), gpu_select_pick_begin(), gpu_select_query_begin(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), blender::ed::outliner::outliner_draw_tree(), pygpu_state_scissor_get(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_IMAGE(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), and ui_draw_but_WAVEFORM().
| void GPU_scissor_test | ( | bool | enable | ) |
Definition at line 188 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), and blender::gpu::FrameBuffer::scissor_test_set().
Referenced by ED_screen_draw_edges(), gpu_select_query_begin(), blender::ed::space_node::node_draw_space(), pygpu_state_scissor_test_set(), blender::gpu::tests::test_framebuffer_scissor_test(), wm_draw_region_bind(), wm_draw_region_unbind(), and wm_paintcursor_draw().
| void GPU_shadow_offset | ( | bool | enable | ) |
Definition at line 119 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by blender::draw::command::StateSet::execute().
| void GPU_state_set | ( | eGPUWriteMask | write_mask, |
| eGPUBlend | blend, | ||
| eGPUFaceCullTest | culling_test, | ||
| eGPUDepthTest | depth_test, | ||
| eGPUStencilTest | stencil_test, | ||
| eGPUStencilOp | stencil_op, | ||
| eGPUProvokingVertex | provoking_vert ) |
Definition at line 129 of file gpu_state.cc.
References blend(), blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by blender::draw::command::StateSet::execute().
| void GPU_stencil_compare_mask_set | ( | uint | compare_mask | ) |
Definition at line 215 of file gpu_state.cc.
References SET_MUTABLE_STATE.
Referenced by blender::draw::command::StencilSet::execute().
| uint GPU_stencil_mask_get | ( | ) |
Definition at line 238 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::mutable_state, state, and blender::gpu::Context::state_manager.
Referenced by blender::gpu::GLFrameBuffer::clear().
| void GPU_stencil_reference_set | ( | uint | reference | ) |
Definition at line 205 of file gpu_state.cc.
References SET_MUTABLE_STATE.
Referenced by blender::draw::command::StencilSet::execute().
| void GPU_stencil_test | ( | eGPUStencilTest | test | ) |
Definition at line 73 of file gpu_state.cc.
References SET_IMMUTABLE_STATE.
Referenced by blender::gpu::GLFrameBuffer::clear().
| eGPUStencilTest GPU_stencil_test_get | ( | ) |
Definition at line 250 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by blender::gpu::GLFrameBuffer::clear().
| void GPU_stencil_write_mask_set | ( | uint | write_mask | ) |
Definition at line 210 of file gpu_state.cc.
References SET_MUTABLE_STATE.
Referenced by blender::gpu::GLFrameBuffer::clear(), and blender::draw::command::StencilSet::execute().
| void GPU_viewport | ( | int | x, |
| int | y, | ||
| int | width, | ||
| int | height ) |
Definition at line 199 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), blender::gpu::FrameBuffer::viewport_set(), x, and y.
Referenced by DRW_render_to_image(), ghost_event_proc(), gpu_select_pick_begin(), gpu_select_pick_end(), gpu_select_query_begin(), gpu_select_query_end(), pygpu_state_viewport_set(), wm_main_playanim_intern(), wmPartialViewport(), wmViewport(), and wmWindowViewport_ex().
| void GPU_viewport_size_get_f | ( | float | coords[4] | ) |
Definition at line 273 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), i, and blender::gpu::FrameBuffer::viewport_get().
Referenced by annotation_draw_eraser(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), arrow_draw_geom(), button2d_draw_intern(), button2d_geom_draw_backdrop(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_wire(), cage3d_draw_box_corners(), cage3d_draw_circle_wire(), dial_geom_draw(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), blender::ed::vse::draw_cursor_2d(), draw_fcurve(), draw_fcurve_modifier_controls_envelope(), draw_image_sample_line(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_marker_areas(), draw_marker_line(), blender::ed::vse::draw_overlap_frame_indicator(), draw_parallel_lines(), draw_plane_marker_ex(), draw_stabilization_border(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), drawrenderborder(), blender::ed::transform::drawVertSlide(), drawviewborder(), ED_image_draw_cursor(), ED_region_draw_mouse_line_cb(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), gizmo_axis_draw(), gizmo_primitive_draw_geom(), gizmo_ruler_draw(), gpu_select_pick_begin(), graph_draw_driver_debug(), graph_draw_ghost_curves(), blender::ed::sculpt_paint::grease_pencil_eraser_draw(), mask_draw_curve_type(), move_geom_draw(), nla_actionclip_draw_markers(), nla_draw_use_dashed_outlines(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_colorband_handle(), wide_line_workaround_start(), wm_gesture_draw_circle(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_polyline(), wm_gesture_draw_rect(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().
| void GPU_viewport_size_get_i | ( | int | coords[4] | ) |
Definition at line 282 of file gpu_state.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::get(), and blender::gpu::FrameBuffer::viewport_get().
Referenced by gpu_select_query_begin(), pygpu_state_viewport_get(), and view_draw_func().
| void GPU_write_mask | ( | eGPUWriteMask | mask | ) |
Definition at line 93 of file gpu_state.cc.
References mask(), and SET_IMMUTABLE_STATE.
Referenced by blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear_attachment(), gpu_select_pick_end(), and gpu_select_query_end().
| eGPUWriteMask GPU_write_mask_get | ( | ) |
Definition at line 232 of file gpu_state.cc.
References blender::gpu::Context::get(), blender::gpu::StateManager::state, state, and blender::gpu::Context::state_manager.
Referenced by blender::gpu::GLFrameBuffer::clear(), blender::gpu::GLFrameBuffer::clear_attachment(), gpu_select_pick_begin(), and gpu_select_query_begin().