Blender V5.0
gpu_immediate.cc File Reference

Go to the source code of this file.

Functions

void immActivate ()
void immDeactivate ()
GPUVertFormatimmVertexFormat ()
void immBindShader (blender::gpu::Shader *shader)
void immBindBuiltinProgram (GPUBuiltinShader shader_id)
void immUnbindProgram ()
bool immIsShaderBound ()
blender::gpu::ShaderimmGetShader ()
static bool vertex_count_makes_sense_for_primitive (uint vertex_len, GPUPrimType prim_type)
void immBegin (GPUPrimType prim_type, uint vertex_len)
void immBeginAtMost (GPUPrimType prim_type, uint vertex_len)
blender::gpu::Batch * immBeginBatch (GPUPrimType prim_type, uint vertex_len)
blender::gpu::Batch * immBeginBatchAtMost (GPUPrimType prim_type, uint vertex_len)
void immEnd ()
static void setAttrValueBit (uint attr_id)
void immAttr1f (uint attr_id, float x)
void immAttr2f (uint attr_id, float x, float y)
void immAttr3f (uint attr_id, float x, float y, float z)
void immAttr4f (uint attr_id, float x, float y, float z, float w)
void immAttr1u (uint attr_id, uint x)
void immAttr2i (uint attr_id, int x, int y)
void immAttr2fv (uint attr_id, const float data[2])
void immAttr3fv (uint attr_id, const float data[3])
void immAttr4fv (uint attr_id, const float data[4])
void immAttr4ub (uint attr_id, uchar r, uchar g, uchar b, uchar a)
void immAttr4ubv (uint attr_id, const uchar data[4])
void immAttrSkip (uint attr_id)
static void immEndVertex ()
void immVertex2f (uint attr_id, float x, float y)
void immVertex3f (uint attr_id, float x, float y, float z)
void immVertex4f (uint attr_id, float x, float y, float z, float w)
void immVertex2i (uint attr_id, int x, int y)
void immVertex2fv (uint attr_id, const float data[2])
void immVertex3fv (uint attr_id, const float data[3])
void immVertex2iv (uint attr_id, const int data[2])
void immUniform1f (const char *name, float x)
void immUniform2f (const char *name, float x, float y)
void immUniform2fv (const char *name, const float data[2])
void immUniform3f (const char *name, float x, float y, float z)
void immUniform3fv (const char *name, const float data[3])
void immUniform4f (const char *name, float x, float y, float z, float w)
void immUniform4fv (const char *name, const float data[4])
void immUniformArray4fv (const char *name, const float *data, int count)
void immUniformMatrix4fv (const char *name, const float data[4][4])
void immUniform1i (const char *name, int x)
void immBindTexture (const char *name, blender::gpu::Texture *tex)
void immBindTextureSampler (const char *name, blender::gpu::Texture *tex, GPUSamplerState state)
void immBindUniformBuf (const char *name, blender::gpu::UniformBuf *ubo)
void immUniformColor4f (float r, float g, float b, float a)
void immUniformColor4fv (const float rgba[4])
void immUniformColor3f (float r, float g, float b)
void immUniformColor3fv (const float rgb[3])
void immUniformColor3fvAlpha (const float rgb[3], float a)
void immUniformColor3ub (uchar r, uchar g, uchar b)
void immUniformColor4ub (uchar r, uchar g, uchar b, uchar a)
void immUniformColor3ubv (const uchar rgb[3])
void immUniformColor3ubvAlpha (const uchar rgb[3], uchar alpha)
void immUniformColor4ubv (const uchar rgba[4])
void immUniformThemeColor (int color_id)
void immUniformThemeColorAlpha (int color_id, float a)
void immUniformThemeColor3 (int color_id)
void immUniformThemeColorShade (int color_id, int offset)
void immUniformThemeColorShadeAlpha (int color_id, int color_offset, int alpha_offset)
void immUniformThemeColorBlendShade (int color_id1, int color_id2, float fac, int offset)
void immUniformThemeColorBlend (int color_id1, int color_id2, float fac)
void immThemeColorShadeAlpha (int colorid, int coloffset, int alphaoffset)
Wide line workaround

Some systems do not support wide lines. We workaround this by using specialized shaders.

static void wide_line_workaround_start (GPUPrimType prim_type)
static void wide_line_workaround_end ()

Variables

static Immediateimm = nullptr

Detailed Description

Mimics old style opengl immediate mode drawing.

Definition in file gpu_immediate.cc.

Function Documentation

◆ immActivate()

◆ immAttr1f()

◆ immAttr1u()

◆ immAttr2f()

◆ immAttr2fv()

void immAttr2fv ( uint attr_id,
const float data[2] )

Definition at line 462 of file gpu_immediate.cc.

References attr_id, data, and immAttr2f().

◆ immAttr2i()

void immAttr2i ( uint attr_id,
int x,
int y )

◆ immAttr3f()

◆ immAttr3fv()

◆ immAttr4f()

◆ immAttr4fv()

◆ immAttr4ub()

◆ immAttr4ubv()

void immAttr4ubv ( uint attr_id,
const uchar data[4] )

Definition at line 495 of file gpu_immediate.cc.

References attr_id, data, and immAttr4ub().

Referenced by draw_keyframe_shape(), and widget_draw_vertex_buffer().

◆ immAttrSkip()

void immAttrSkip ( uint attr_id)

◆ immBegin()

void immBegin ( GPUPrimType prim_type,
uint vertex_len )

Must supply exactly vertex_len vertices.

Definition at line 200 of file gpu_immediate.cc.

References BLI_assert, GPU_PRIM_NONE, imm, vertex_count_makes_sense_for_primitive(), and wide_line_workaround_start().

Referenced by ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), annotation_draw_stabilizer(), annotation_draw_stroke_2d(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), arrow_draw_geom(), button2d_draw_intern(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_wire(), cage3d_draw_circle_wire(), channel_list_draw_keys(), clip_draw_dopesheet_main(), cursor_point_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), draw_anti_tria(), draw_azone_arrow(), blender::ed::sculpt_paint::draw_bezier_handle_lines(), draw_channel_strips(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_columns(), blender::ed::greasepencil::draw_control_points(), draw_cross(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_dividers(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve_active_vertex(), draw_fcurve_curve(), draw_fcurve_curve_keys(), draw_fcurve_curve_samples(), draw_fcurve_modifier_controls_envelope(), draw_image_sample_line(), draw_keyframe(), draw_lasso_smooth_stroke_indicator(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), draw_marker_slide_triangle(), draw_marker_slide_zones(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_plane_marker_ex(), draw_plane_marker_image(), draw_single_handle(), draw_spline_points(), blender::ed::vse::draw_timeline_sfra_efra(), draw_track_path_lines(), draw_track_path_points(), draw_tracking_tracks(), blender::ed::sculpt_paint::draw_tri_point(), draw_view_axis(), blender::ed::transform::drawArrow(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), drawFlyPixel(), blender::ed::transform::drawLine(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), drawviewborder_grid3(), drawviewborder_triangle(), drawWalkPixel(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_parallel_lines_draw(), ED_image_draw_cursor(), ED_mask_draw_frames(), ED_region_draw_mouse_line_cb(), ED_region_grid_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), blender::ed::sculpt_paint::boundary::edges_preview_draw(), gizmo_axis_draw(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_driver_debug(), graph_main_region_draw(), histogram_draw_one(), imm_draw_box_wire_2d(), imm_draw_box_wire_3d(), imm_draw_circle(), imm_draw_circle_3D(), imm_draw_circle_partial(), imm_draw_circle_partial_3d(), imm_draw_cube_corners_3d(), imm_draw_cube_fill_3d(), imm_draw_cube_wire_3d(), imm_draw_cylinder_fill_3d(), imm_draw_cylinder_fill_normal_3d(), imm_draw_cylinder_wire_3d(), imm_draw_disk_partial(), imm_draw_disk_partial_3d(), imm_draw_point_aspect_2d(), imm_drawcircball(), immBeginAtMost(), immDrawBorderCorners(), immDrawPixelsTexScaledFullSize(), immDrawPixelsTexTiled_scaling_clipping(), immRectf(), immRectf_with_texco(), immRecti(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), mask_draw_array(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move_geom_draw(), blender::ed::sculpt_paint::brushes::multiplane_scrape_preview_draw(), nla_action_draw_keyframes(), nla_draw_strip_curves(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_line(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_cursor_pose_brush_segments_draw(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), playanim_toscreen_ex(), radial_control_paint_cursor(), radial_control_paint_curve(), radial_control_paint_tex(), rounded_corners(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), blender::ed::vse::text_edit_draw_cursor(), blender::ed::vse::text_selection_draw(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_curve_grid(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_colorband_handle(), ui_draw_colorband_handle_box(), ui_draw_colorband_handle_tri(), ui_draw_gradient(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), ui_hsv_cursor(), UI_view2d_dot_grid_draw(), vectorscope_draw_target(), vertex_draw(), vicon_keytype_draw_wrapper(), blender::ed::object::voxel_size_edit_draw(), blender::ed::object::voxel_size_parallel_lines_draw(), widget_draw_vertex_buffer(), widget_swatch(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_gizmo_vec_draw(), wm_software_cursor_draw_bitmap(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ immBeginAtMost()

◆ immBeginBatch()

◆ immBeginBatchAtMost()

blender::gpu::Batch * immBeginBatchAtMost ( GPUPrimType prim_type,
uint vertex_len )

◆ immBindBuiltinProgram()

void immBindBuiltinProgram ( GPUBuiltinShader shader_id)

Extend immBindShader to use Blender's library of built-in shader programs. Use immUnbindProgram() when done.

Definition at line 61 of file gpu_immediate.cc.

References GPU_shader_get_builtin_shader(), imm, and immBindShader().

Referenced by acf_generic_channel_backdrop(), acf_generic_dataexpand_backdrop(), ANIM_channel_draw(), ANIM_channel_draw_widgets(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), ANIM_draw_previewrange(), ANIM_draw_scene_strip_range(), annotation_draw_eraser(), annotation_draw_stabilizer(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), arrow_draw_geom(), brush_drawcursor(), button2d_draw_intern(), button2d_geom_draw_backdrop(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_corner_handles(), cage2d_draw_rect_edge_handles(), cage2d_draw_rect_rotate_handle(), cage2d_draw_rect_wire(), cage3d_draw_box_corners(), cage3d_draw_box_interaction(), cage3d_draw_circle_handles(), cage3d_draw_circle_wire(), channel_list_draw_keys(), clip_draw_dopesheet_channels(), clip_draw_dopesheet_main(), console_textview_draw_cursor(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_geom_draw(), dial_ghostarc_draw(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), draw_anti_tria(), draw_azone_arrow(), draw_background(), draw_background(), draw_channel_strips(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_background(), draw_columnheader_columns(), blender::ed::greasepencil::draw_control_points(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_dividers(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve(), draw_fcurve_handle_vertices(), draw_fcurve_handles(), draw_fcurve_keyframe_vertices(), draw_fcurve_modifier_controls_envelope(), draw_fcurve_samples(), draw_frame_curves(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), draw_image_cache(), draw_image_sample_line(), draw_image_uv_custom_region(), draw_lasso_smooth_stroke_indicator(), blender::ed::greasepencil::image_render::draw_lines(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), draw_marker_slide_zones(), draw_markers_background(), draw_movieclip_cache(), draw_movieclip_muted(), draw_nla_main_data(), blender::ed::space_node::draw_nodespace_back_pix(), draw_normalization_borders(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_plane_marker_ex(), draw_plane_marker_image(), blender::ed::greasepencil::image_render::draw_polyline(), draw_render_info(), blender::ed::vse::draw_seq_timeline_channels(), draw_single_handle(), draw_spline_points(), blender::ed::spreadsheet::draw_spreadsheet_in_region(), draw_stabilization_border(), draw_start_vertex_circle(), draw_suggestion_list(), draw_text_decoration(), draw_text_main(), draw_textscroll(), blender::ed::vse::draw_timeline_sfra_efra(), draw_track_path(), draw_tracking_tracks(), draw_view_axis(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), drawFlyPixel(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), drawrenderborder(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), drawWalkPixel(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_image_draw_cursor(), ED_image_draw_info(), ED_imbuf_sample_draw(), ED_mask_draw_frames(), ED_region_cache_draw_background(), ED_region_cache_draw_cached_segments(), ED_region_do_draw(), ED_region_draw_mouse_line_cb(), ED_region_grid_draw(), ED_region_image_metadata_draw(), ED_region_image_render_region_draw(), ED_region_info_draw_multiline(), ED_time_scrub_channel_search_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), file_draw_preview(), gizmo_axis_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_primitive_draw_geom(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), 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_eraser_draw(), imm_draw_box_checker_2d_ex(), immDrawPixelsTexSetup(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), mask_draw_curve_type(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move_geom_draw(), nla_action_draw_keyframes(), nla_actionclip_draw_markers(), nla_draw_strip(), nla_draw_use_dashed_outlines(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_preview_background(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_cursor_setup_2D_drawing(), blender::ed::sculpt_paint::paint_cursor_setup_3D_drawing(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), panel_draw_aligned_backdrop(), playanim_toscreen_ex(), blender::ed::vse::preview_draw_texture_simple(), radial_control_paint_cursor(), radial_control_paint_tex(), rounded_corners(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::vse::sequencer_draw_scopes(), blender::ed::vse::sequencer_preview_draw_overlays(), blender::ed::vse::sequencer_retiming_keys_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), blender::ed::vse::text_edit_draw(), textview_draw_sel(), textview_draw_string(), timeline_draw_cache(), tracking_segment_knot_cb(), tracking_segment_start_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_HSVCUBE(), ui_draw_but_TAB_outline(), 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_gradient(), ui_draw_pie_center(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), UI_draw_text_underline(), ui_hsv_cursor(), UI_panel_category_draw_all(), ui_tooltip_region_draw_cb(), UI_view2d_dot_grid_draw(), UI_view2d_multi_grid_draw(), v3d_cursor_plane_draw_grid(), vicon_colorset_draw(), vicon_gplayer_color_draw(), vicon_keytype_draw_wrapper(), blender::ed::object::voxel_size_edit_draw(), wide_line_workaround_end(), wide_line_workaround_start(), widget_draw_extra_mask(), widget_draw_text(), widget_progress_type_ring(), widget_swatch(), wm_gesture_draw_circle(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_gesture_draw_rect(), wm_software_cursor_draw_bitmap(), wm_software_cursor_draw_crosshair(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ immBindShader()

void immBindShader ( blender::gpu::Shader * shader)

Every immBegin must have a program bound first.

Definition at line 45 of file gpu_immediate.cc.

References BLI_assert, GPU_matrix_bind(), GPU_shader_bind(), imm, and VertexFormat_pack().

Referenced by BlenderDisplayDriver::draw(), and immBindBuiltinProgram().

◆ immBindTexture()

void immBindTexture ( const char * name,
blender::gpu::Texture * tex )

◆ immBindTextureSampler()

◆ immBindUniformBuf()

void immBindUniformBuf ( const char * name,
blender::gpu::UniformBuf * ubo )

◆ immDeactivate()

◆ immEnd()

void immEnd ( )

Definition at line 250 of file gpu_immediate.cc.

References blender::gpu::Context::assert_framebuffer_shader_compatibility(), BLI_assert, blender::gpu::Context::get(), GPU_BATCH_BUILDING, GPU_batch_set_shader(), GPU_PRIM_NONE, GPU_vertbuf_data_resize(), imm, vertex_count_makes_sense_for_primitive(), and wide_line_workaround_end().

Referenced by ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), annotation_draw_stabilizer(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_arrow_buffer(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), arrow_draw_geom(), button2d_draw_intern(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_wire(), cage3d_draw_circle_wire(), channel_list_draw_keys(), clip_draw_dopesheet_main(), cursor_point_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), draw_anti_tria(), draw_azone_arrow(), blender::ed::sculpt_paint::draw_bezier_handle_lines(), draw_channel_strips(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_columns(), blender::ed::greasepencil::draw_control_points(), draw_cross(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_dividers(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve_active_handle_vertices(), draw_fcurve_active_vertex(), draw_fcurve_curve(), draw_fcurve_curve_keys(), draw_fcurve_curve_samples(), draw_fcurve_handles(), draw_fcurve_modifier_controls_envelope(), draw_fcurve_selected_handle_vertices(), draw_fcurve_selected_keyframe_vertices(), draw_frame_curves(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), draw_image_sample_line(), draw_keyframe(), draw_lasso_smooth_stroke_indicator(), blender::ed::greasepencil::image_render::draw_lines(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), draw_marker_slide_triangle(), draw_marker_slide_zones(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_plane_marker_ex(), draw_plane_marker_image(), blender::ed::greasepencil::image_render::draw_polyline(), blender::ed::spreadsheet::draw_separator_lines(), draw_single_handle(), draw_spline_points(), blender::ed::vse::draw_timeline_sfra_efra(), draw_track_path_keyframe_points(), draw_track_path_lines(), draw_track_path_points(), draw_tracking_tracks(), blender::ed::sculpt_paint::draw_tri_point(), draw_view_axis(), blender::ed::transform::drawArrow(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), drawFlyPixel(), blender::ed::transform::drawLine(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), drawviewborder_grid3(), drawviewborder_triangle(), drawWalkPixel(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_parallel_lines_draw(), ED_image_draw_cursor(), ED_mask_draw_frames(), ED_region_draw_mouse_line_cb(), ED_region_grid_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), blender::ed::sculpt_paint::boundary::edges_preview_draw(), gizmo_axis_draw(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_driver_debug(), graph_main_region_draw(), histogram_draw_one(), imm_draw_box_wire_2d(), imm_draw_box_wire_3d(), imm_draw_circle(), imm_draw_circle_3D(), imm_draw_circle_partial(), imm_draw_circle_partial_3d(), imm_draw_cube_corners_3d(), imm_draw_cube_fill_3d(), imm_draw_cube_wire_3d(), imm_draw_cylinder_fill_3d(), imm_draw_cylinder_fill_normal_3d(), imm_draw_cylinder_wire_3d(), imm_draw_disk_partial(), imm_draw_disk_partial_3d(), imm_draw_point_aspect_2d(), imm_drawcircball(), immDrawBorderCorners(), immDrawPixelsTexScaledFullSize(), immDrawPixelsTexTiled_scaling_clipping(), immRectf(), immRectf_with_texco(), immRecti(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), mask_draw_array(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move_geom_draw(), blender::ed::sculpt_paint::brushes::multiplane_scrape_preview_draw(), nla_action_draw_keyframes(), nla_actionclip_draw_markers(), nla_draw_strip(), nla_draw_strip_curves(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_line(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_cursor_pose_brush_segments_draw(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), playanim_toscreen_ex(), radial_control_paint_cursor(), radial_control_paint_curve(), radial_control_paint_tex(), rounded_corners(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), blender::ed::vse::sequencer_retiming_keys_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), blender::ed::vse::text_edit_draw_cursor(), blender::ed::vse::text_selection_draw(), timeline_cache_draw_cached_segments(), timeline_cache_draw_geometry_nodes(), tracking_segment_end_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_curve_grid(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_TAB_outline(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_colorband_handle(), ui_draw_colorband_handle_box(), ui_draw_colorband_handle_tri(), ui_draw_gradient(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), ui_hsv_cursor(), UI_view2d_dot_grid_draw(), UI_view2d_multi_grid_draw(), v3d_cursor_plane_draw_grid(), vectorscope_draw_target(), vertex_draw(), vicon_keytype_draw_wrapper(), blender::ed::object::voxel_size_edit_draw(), blender::ed::object::voxel_size_parallel_lines_draw(), widget_draw_vertex_buffer(), widget_swatch(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_gizmo_vec_draw(), wm_software_cursor_draw_bitmap(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ immEndVertex()

◆ immGetShader()

blender::gpu::Shader * immGetShader ( )

Definition at line 81 of file gpu_immediate.cc.

References imm.

Referenced by GPU_batch_program_set_imm_shader().

◆ immIsShaderBound()

bool immIsShaderBound ( )

Check if there is a shader bound.

Useful to trigger asserts when immediate mode drawing and batch based drawing are mixed. It isn't allowed to have an immediate mode shader bound when a batch is drawn.

TODO: We should move these asserts to batch drawing, but didn't do that as it was never forced.

Definition at line 76 of file gpu_immediate.cc.

References imm.

Referenced by waveform_draw_one().

◆ immThemeColorShadeAlpha()

void immThemeColorShadeAlpha ( int colorid,
int coloffset,
int alphaoffset )

◆ immUnbindProgram()

void immUnbindProgram ( )

Call after your last immEnd, or before binding another program.

Definition at line 68 of file gpu_immediate.cc.

References BLI_assert, GPU_shader_unbind(), and imm.

Referenced by acf_generic_channel_backdrop(), acf_generic_dataexpand_backdrop(), ANIM_channel_draw(), ANIM_channel_draw_widgets(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), ANIM_draw_previewrange(), ANIM_draw_scene_strip_range(), annotation_draw_eraser(), annotation_draw_stabilizer(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), arrow_draw_geom(), brush_drawcursor(), button2d_draw_intern(), button2d_geom_draw_backdrop(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_corner_handles(), cage2d_draw_rect_edge_handles(), cage2d_draw_rect_rotate_handle(), cage2d_draw_rect_wire(), cage3d_draw_box_corners(), cage3d_draw_box_interaction(), cage3d_draw_circle_handles(), cage3d_draw_circle_wire(), channel_list_draw_keys(), clip_draw_dopesheet_channels(), clip_draw_dopesheet_main(), console_textview_draw_cursor(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_geom_draw(), dial_ghostarc_draw(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), BlenderDisplayDriver::draw(), draw_anti_tria(), draw_azone_arrow(), draw_background(), draw_background(), draw_channel_strips(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_background(), draw_columnheader_columns(), blender::ed::greasepencil::draw_control_points(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_dividers(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve(), draw_fcurve_handle_vertices(), draw_fcurve_handles(), draw_fcurve_keyframe_vertices(), draw_fcurve_modifier_controls_envelope(), draw_fcurve_samples(), draw_frame_curves(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), draw_image_cache(), draw_image_sample_line(), draw_image_uv_custom_region(), draw_lasso_smooth_stroke_indicator(), blender::ed::greasepencil::image_render::draw_lines(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), draw_marker_slide_zones(), draw_markers_background(), draw_movieclip_cache(), draw_movieclip_muted(), draw_nla_main_data(), blender::ed::space_node::draw_nodespace_back_pix(), draw_normalization_borders(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_plane_marker_ex(), draw_plane_marker_image(), blender::ed::greasepencil::image_render::draw_polyline(), draw_render_info(), blender::ed::vse::draw_seq_timeline_channels(), draw_single_handle(), draw_spline_points(), blender::ed::spreadsheet::draw_spreadsheet_in_region(), draw_stabilization_border(), draw_start_vertex_circle(), draw_suggestion_list(), draw_text_decoration(), draw_text_main(), draw_textscroll(), blender::ed::vse::draw_timeline_sfra_efra(), draw_track_path(), draw_tracking_tracks(), draw_view_axis(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), drawFlyPixel(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), drawrenderborder(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), drawWalkPixel(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_image_draw_cursor(), ED_image_draw_info(), ED_imbuf_sample_draw(), ED_mask_draw_frames(), ED_region_cache_draw_background(), ED_region_cache_draw_cached_segments(), ED_region_do_draw(), ED_region_draw_mouse_line_cb(), ED_region_grid_draw(), ED_region_image_metadata_draw(), ED_region_image_render_region_draw(), ED_region_info_draw_multiline(), ED_time_scrub_channel_search_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), file_draw_preview(), gizmo_axis_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_primitive_draw_geom(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), 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_eraser_draw(), imm_draw_box_checker_2d_ex(), immDrawPixelsTexScaledFullSize(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), mask_draw_curve_type(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move_geom_draw(), nla_action_draw_keyframes(), nla_actionclip_draw_markers(), nla_draw_strip(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_preview_background(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_cursor_restore_drawing_state(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), panel_draw_aligned_backdrop(), playanim_toscreen_ex(), blender::ed::vse::preview_draw_texture_simple(), radial_control_paint_cursor(), radial_control_paint_tex(), rounded_corners(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::vse::sequencer_draw_scopes(), blender::ed::vse::sequencer_preview_draw_overlays(), blender::ed::vse::sequencer_retiming_keys_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), blender::ed::vse::text_edit_draw(), textview_draw_sel(), textview_draw_string(), timeline_draw_cache(), tracking_segment_end_cb(), tracking_segment_knot_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_HSVCUBE(), ui_draw_but_TAB_outline(), 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_gradient(), ui_draw_pie_center(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), UI_draw_text_underline(), ui_hsv_cursor(), UI_panel_category_draw_all(), ui_tooltip_region_draw_cb(), UI_view2d_dot_grid_draw(), UI_view2d_multi_grid_draw(), blender::ocio::GPUShaderBinder::unbind(), v3d_cursor_plane_draw_grid(), vicon_colorset_draw(), vicon_gplayer_color_draw(), vicon_keytype_draw_wrapper(), blender::ed::object::voxel_size_edit_draw(), wide_line_workaround_end(), wide_line_workaround_start(), widget_draw_extra_mask(), widget_draw_text(), widget_progress_type_ring(), widget_swatch(), wm_gesture_draw_circle(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_gesture_draw_rect(), wm_software_cursor_draw_bitmap(), wm_software_cursor_draw_crosshair(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ immUniform1f()

void immUniform1f ( const char * name,
float x )

Definition at line 581 of file gpu_immediate.cc.

References GPU_shader_uniform_1f(), imm, name, and x.

Referenced by annotation_draw_eraser(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), 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(), channel_list_draw_keys(), clip_draw_dopesheet_main(), dial_geom_draw(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), blender::ed::greasepencil::image_render::draw_circles(), blender::ed::vse::draw_cursor_2d(), draw_fcurve(), draw_fcurve_handle_vertices(), draw_fcurve_keyframe_vertices(), draw_fcurve_modifier_controls_envelope(), draw_image_sample_line(), draw_image_uv_custom_region(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), blender::ed::vse::draw_overlap_frame_indicator(), draw_parallel_lines(), draw_plane_marker_ex(), draw_single_handle(), draw_spline_points(), draw_stabilization_border(), draw_track_path(), draw_tracking_tracks(), 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(), graph_draw_driver_debug(), graph_draw_ghost_curves(), blender::ed::sculpt_paint::grease_pencil_eraser_draw(), icon_draw_rect(), knifetool_draw(), mask_draw_curve_type(), move_geom_draw(), nla_action_draw_keyframes(), nla_actionclip_draw_markers(), nla_draw_use_dashed_outlines(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_draw_hierarchy_line(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::vse::sequencer_draw_scopes(), blender::ed::vse::sequencer_retiming_keys_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), tracking_segment_start_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_colorband_handle(), ui_hsv_cursor(), UI_view2d_dot_grid_draw(), vicon_keytype_draw_wrapper(), 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(), and wm_xr_controller_aim_draw().

◆ immUniform1i()

void immUniform1i ( const char * name,
int x )

Definition at line 626 of file gpu_immediate.cc.

References GPU_shader_uniform_1i(), imm, name, and x.

Referenced by ANIM_draw_action_framerange(), annotation_draw_eraser(), draw_fcurve(), draw_fcurve_modifier_controls_envelope(), draw_image_sample_line(), draw_image_uv_custom_region(), draw_marker_areas(), draw_marker_line(), blender::ed::vse::draw_overlap_frame_indicator(), draw_plane_marker_ex(), draw_stabilization_border(), blender::ed::vse::draw_timeline_sfra_efra(), blender::ed::transform::drawConstraint(), drawrenderborder(), blender::ed::transform::drawVertSlide(), drawviewborder(), ED_image_draw_cursor(), ED_region_draw_mouse_line_cb(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), graph_draw_driver_debug(), graph_draw_ghost_curves(), blender::ed::sculpt_paint::grease_pencil_eraser_draw(), imm_draw_box_checker_2d_ex(), mask_draw_curve_type(), nla_actionclip_draw_markers(), nla_draw_use_dashed_outlines(), blender::ed::space_node::node_draw_preview_background(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::vse::sequencer_draw_scopes(), timeline_draw_cache(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_colorband_handle(), wide_line_workaround_end(), wide_line_workaround_start(), wm_gesture_draw_circle(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_polyline(), and wm_gesture_draw_rect().

◆ immUniform2f()

◆ immUniform2fv()

◆ immUniform3f()

void immUniform3f ( const char * name,
float x,
float y,
float z )

Definition at line 596 of file gpu_immediate.cc.

References GPU_shader_uniform_3f(), imm, name, x, y, and z().

◆ immUniform3fv()

void immUniform3fv ( const char * name,
const float data[3] )

Definition at line 601 of file gpu_immediate.cc.

References data, GPU_shader_uniform_3fv(), imm, and name.

◆ immUniform4f()

◆ immUniform4fv()

◆ immUniformArray4fv()

void immUniformArray4fv ( const char * bare_name,
const float * data,
int count )

Note array index is not supported for name (i.e: "array[0]").

Definition at line 616 of file gpu_immediate.cc.

References count, data, float, GPU_shader_uniform_4fv_array(), imm, and name.

◆ immUniformColor3f()

◆ immUniformColor3fv()

◆ immUniformColor3fvAlpha()

◆ immUniformColor3ub()

◆ immUniformColor3ubv()

◆ immUniformColor3ubvAlpha()

void immUniformColor3ubvAlpha ( const uchar rgb[3],
uchar alpha )

◆ immUniformColor4f()

void immUniformColor4f ( float r,
float g,
float b,
float a )

Definition at line 651 of file gpu_immediate.cc.

References b, BLI_assert, copy_v4_v4(), data, GPU_shader_get_builtin_uniform(), GPU_shader_uniform_float_ex(), GPU_UNIFORM_COLOR, and imm.

Referenced by annotation_draw_eraser(), annotation_draw_stabilizer(), clip_draw_dopesheet_background(), dial_ghostarc_draw(), draw_azone_arrow(), blender::ed::sculpt_paint::draw_bezier_handle_lines(), draw_frame_curves(), draw_lasso_smooth_stroke_indicator(), draw_marker_areas(), draw_plane_marker_image(), blender::ed::sculpt_paint::draw_rect_point(), draw_stabilization_border(), draw_start_vertex_circle(), blender::ed::sculpt_paint::draw_tri_point(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawVertSlide(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_region_do_draw(), ED_region_image_render_region_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), blender::ed::sculpt_paint::grease_pencil_brush_cursor_draw(), blender::ed::sculpt_paint::grease_pencil_eraser_draw(), histogram_draw_one(), immUniformColor3f(), immUniformColor3fv(), immUniformColor3fvAlpha(), immUniformColor3ub(), immUniformColor4fv(), immUniformColor4ub(), nla_draw_strip_curves(), blender::ed::sculpt_paint::paint_cursor_pose_brush_origins_draw(), blender::ed::sculpt_paint::paint_cursor_pose_brush_segments_draw(), blender::ed::sculpt_paint::paint_cursor_preview_boundary_data_pivot_draw(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), radial_control_paint_curve(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), ui_draw_but_HISTOGRAM(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), vectorscope_draw_target(), blender::ed::object::voxel_size_edit_draw(), wm_gesture_draw_circle(), wm_gesture_draw_rect(), and wm_software_cursor_draw_crosshair().

◆ immUniformColor4fv()

void immUniformColor4fv ( const float rgba[4])

Definition at line 661 of file gpu_immediate.cc.

References immUniformColor4f().

Referenced by arrow_draw_geom(), button2d_draw_intern(), button2d_geom_draw_backdrop(), clip_draw_dopesheet_main(), dial_geom_draw(), dial_ghostarc_draw(), dial_ghostarc_draw_helpline(), draw_anti_tria(), blender::ed::sculpt_paint::draw_bezier_handle_lines(), draw_current_frame(), draw_distortion(), draw_marker_areas(), draw_nla_main_data(), blender::ed::sculpt_paint::draw_rect_point(), draw_text_decoration(), draw_text_main(), draw_tracking_tracks(), blender::ed::sculpt_paint::draw_tri_point(), drawviewborder(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_region_do_draw(), ED_region_info_draw_multiline(), file_draw_preview(), gizmo_primitive_draw_geom(), gizmo_ruler_draw(), histogram_draw_one(), immDrawPixelsTexScaledFullSize(), immUniformThemeColor(), immUniformThemeColorAlpha(), immUniformThemeColorBlendShade(), immUniformThemeColorShade(), immUniformThemeColorShadeAlpha(), knifetool_draw_angle(), knifetool_draw_visible_distances(), move_geom_draw(), nla_action_draw_keyframes(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), rounded_corners(), set_fcurve_vertex_color(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), tracking_segment_start_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_CURVE(), ui_draw_button_sections_alignment_separator(), ui_draw_rounded_corners_inverted(), UI_draw_text_underline(), UI_panel_category_draw_all(), ui_tooltip_region_draw_cb(), wide_line_workaround_start(), wm_gizmo_vec_draw(), and wm_xr_raycast_draw().

◆ immUniformColor4ub()

◆ immUniformColor4ubv()

◆ immUniformMatrix4fv()

void immUniformMatrix4fv ( const char * name,
const float data[4][4] )

Definition at line 621 of file gpu_immediate.cc.

References data, GPU_shader_uniform_mat4(), imm, and name.

Referenced by dial_geom_draw().

◆ immUniformThemeColor()

◆ immUniformThemeColor3()

◆ immUniformThemeColorAlpha()

void immUniformThemeColorAlpha ( int color_id,
float a )

◆ immUniformThemeColorBlend()

◆ immUniformThemeColorBlendShade()

void immUniformThemeColorBlendShade ( int color_id1,
int color_id2,
float fac,
int offset )

Definition at line 746 of file gpu_immediate.cc.

References immUniformColor4fv(), and UI_GetThemeColorBlendShade4fv().

Referenced by ED_region_grid_draw().

◆ immUniformThemeColorShade()

◆ immUniformThemeColorShadeAlpha()

◆ immVertex2f()

void immVertex2f ( uint attr_id,
float x,
float y )

Definition at line 537 of file gpu_immediate.cc.

References attr_id, immAttr2f(), immEndVertex(), x, and y.

Referenced by ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), annotation_draw_stabilizer(), annotation_draw_stroke_arrow_buffer(), cage3d_draw_circle_wire(), draw_anti_tria(), draw_azone_arrow(), draw_channel_strips(), draw_columnheader_columns(), draw_cross(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_fcurve_curve(), draw_fcurve_modifier_controls_envelope(), draw_frame_curves(), draw_keyframe(), draw_keyframe_shape(), draw_keyframe_shape(), draw_lasso_smooth_stroke_indicator(), draw_marker_areas(), draw_marker_line(), draw_marker_outline(), draw_marker_slide_triangle(), draw_marker_slide_zones(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), blender::ed::spreadsheet::draw_separator_lines(), draw_spline_points(), blender::ed::vse::draw_timeline_sfra_efra(), draw_tracking_tracks(), draw_view_axis(), blender::ed::transform::drawArrow(), drawFlyPixel(), drawviewborder(), drawviewborder_grid3(), drawviewborder_triangle(), drawWalkPixel(), ED_image_draw_cursor(), ED_mask_draw_frames(), ED_region_grid_draw(), gizmo_ruler_draw(), GPU_viewport_stereo_composite(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_driver_debug(), graph_main_region_draw(), histogram_draw_one(), imm_draw_box_wire_2d(), imm_draw_circle(), imm_draw_circle_partial(), imm_draw_disk_partial(), imm_draw_point_aspect_2d(), immDrawBorderCorners(), immDrawPixelsTexScaledFullSize(), immDrawPixelsTexTiled_scaling_clipping(), immRectf(), immRectf_fast(), immRectf_fast_with_color(), immRectf_with_texco(), nla_actionclip_draw_markers(), nla_draw_strip(), nla_draw_strip_curves(), blender::ed::space_node::node_draw_collapsed(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_line(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), playanim_toscreen_ex(), radial_control_paint_cursor(), radial_control_paint_curve(), radial_control_paint_tex(), rounded_corners(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::ed::vse::text_edit_draw_cursor(), blender::ed::vse::text_selection_draw(), tracking_segment_point_cb(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_curve_grid(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_TAB_outline(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_colorband_handle(), ui_draw_colorband_handle_box(), ui_draw_colorband_handle_tri(), ui_draw_gradient(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), ui_hsv_cursor(), UI_view2d_dot_grid_draw(), UI_view2d_multi_grid_draw(), vectorscope_draw_target(), vertex_draw(), widget_swatch(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_stereo3d_draw_sidebyside(), and wm_stereo3d_draw_topbottom().

◆ immVertex2fv()

◆ immVertex2i()

void immVertex2i ( uint attr_id,
int x,
int y )

Definition at line 555 of file gpu_immediate.cc.

References attr_id, immAttr2i(), immEndVertex(), x, and y.

Referenced by immRecti(), and immRecti_fast_with_color().

◆ immVertex2iv()

void immVertex2iv ( uint attr_id,
const int data[2] )

Definition at line 573 of file gpu_immediate.cc.

References attr_id, data, immAttr2i(), and immEndVertex().

◆ immVertex3f()

◆ immVertex3fv()

void immVertex3fv ( uint attr_id,
const float data[3] )

Definition at line 567 of file gpu_immediate.cc.

References attr_id, data, immAttr3f(), and immEndVertex().

Referenced by annotation_draw_stroke_3d(), annotation_draw_stroke_point(), button2d_draw_intern(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), blender::ed::greasepencil::image_render::draw_circles(), blender::ed::greasepencil::draw_control_points(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), blender::ed::greasepencil::image_render::draw_lines(), blender::ed::greasepencil::image_render::draw_polyline(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), blender::ed::transform::drawLine(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_parallel_lines_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), blender::ed::sculpt_paint::boundary::edges_preview_draw(), gizmo_axis_draw(), gizmo_ruler_draw(), imm_draw_cube_corners_3d(), imm_draw_cube_fill_3d(), imm_draw_cube_wire_3d(), imm_draw_cylinder_fill_3d(), imm_draw_cylinder_fill_normal_3d(), imm_draw_cylinder_wire_3d(), imm_drawcircball(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::sculpt_paint::paint_cursor_pose_brush_segments_draw(), blender::ed::sculpt_paint::boundary::pivot_line_preview_draw(), blender::ed::sculpt_paint::sculpt_geometry_preview_lines_draw(), v3d_cursor_plane_draw_grid(), blender::ed::object::voxel_size_edit_draw(), blender::ed::object::voxel_size_parallel_lines_draw(), wm_gizmo_vec_draw(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ immVertex4f()

void immVertex4f ( uint attr_id,
float x,
float y,
float z,
float w )

Definition at line 549 of file gpu_immediate.cc.

References attr_id, immAttr4f(), immEndVertex(), w(), x, y, and z().

◆ immVertexFormat()

GPUVertFormat * immVertexFormat ( )

Returns a cleared vertex format, ready for #add_attr.

Definition at line 39 of file gpu_immediate.cc.

References GPU_vertformat_clear(), and imm.

Referenced by acf_generic_channel_backdrop(), acf_generic_dataexpand_backdrop(), ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_cfra(), ANIM_draw_framerange(), ANIM_draw_previewrange(), ANIM_draw_scene_strip_range(), annotation_draw_eraser(), annotation_draw_stabilizer(), annotation_draw_stroke_2d(), annotation_draw_stroke_3d(), annotation_draw_stroke_buffer(), annotation_draw_stroke_point(), arrow_draw_geom(), brush_drawcursor(), button2d_draw_intern(), button2d_geom_draw_backdrop(), cage2d_draw_box_corners(), cage2d_draw_box_interaction(), cage2d_draw_circle_wire(), cage2d_draw_rect_corner_handles(), cage2d_draw_rect_edge_handles(), cage2d_draw_rect_rotate_handle(), cage2d_draw_rect_wire(), cage3d_draw_box_corners(), cage3d_draw_box_interaction(), cage3d_draw_circle_handles(), cage3d_draw_circle_wire(), channel_list_draw_keys(), clip_draw_dopesheet_channels(), clip_draw_dopesheet_main(), clip_draw_graph(), console_textview_draw_cursor(), cursor_box_draw(), blender::ed::curves::curve_draw_stroke_3d(), curve_draw_stroke_3d(), dial_geom_draw(), dial_ghostarc_draw(), dial_ghostarc_draw_helpline(), dial_ghostarc_draw_incremental_angle(), BlenderDisplayDriver::draw(), draw_anti_tria(), draw_azone_arrow(), draw_background(), draw_background(), draw_channel_strips(), blender::ed::greasepencil::image_render::draw_circles(), draw_columnheader_background(), draw_columnheader_columns(), blender::ed::greasepencil::draw_control_points(), draw_current_frame(), blender::ed::vse::draw_cursor_2d(), draw_disk_shaded(), draw_display_buffer(), draw_distortion(), draw_dividers(), blender::ed::greasepencil::image_render::draw_dot(), blender::ed::greasepencil::image_render::draw_dots(), draw_fcurve(), draw_fcurve_handles(), draw_fcurve_modifier_controls_envelope(), draw_fcurve_samples(), draw_fcurve_vertices(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), draw_image_cache(), draw_image_sample_line(), draw_image_uv_custom_region(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), blender::ed::greasepencil::image_render::draw_lines(), draw_marker_areas(), draw_marker_line(), draw_markers_background(), draw_movieclip_cache(), draw_movieclip_muted(), draw_nla_main_data(), blender::ed::space_node::draw_nodespace_back_pix(), draw_normalization_borders(), blender::ed::vse::draw_overlap_frame_indicator(), draw_overshoot_triangle(), draw_parallel_lines(), draw_plane_marker_ex(), draw_plane_marker_image(), blender::ed::greasepencil::image_render::draw_polyline(), draw_render_info(), blender::ed::vse::draw_seq_timeline_channels(), draw_single_handle(), draw_spline_points(), blender::ed::spreadsheet::draw_spreadsheet_in_region(), draw_stabilization_border(), draw_suggestion_list(), draw_text_decoration(), draw_text_main(), draw_textscroll(), blender::ed::vse::draw_timeline_sfra_efra(), draw_track_path(), draw_tracking_tracks(), draw_view_axis(), blender::ed::transform::drawConstraint(), blender::ed::transform::drawEdgeSlide(), drawFlyPixel(), blender::ed::transform::drawLine(), blender::ed::transform::drawPropCircle(), blender::ed::transform::drawPropRange(), drawrenderborder(), blender::ed::transform::drawSnapping(), blender::ed::transform::drawVertSlide(), drawviewborder(), drawWalkPixel(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_draw(), ED_image_draw_cursor(), ED_image_draw_info(), ED_imbuf_sample_draw(), ED_mask_draw_frames(), ED_region_cache_draw_background(), ED_region_cache_draw_cached_segments(), ED_region_do_draw(), ED_region_draw_mouse_line_cb(), ED_region_grid_draw(), ED_region_image_metadata_draw(), ED_region_image_render_region_draw(), ED_region_info_draw_multiline(), ED_time_scrub_channel_search_draw(), ED_view3d_cursor_snap_draw_util(), EDBM_preselect_edgering_draw(), EDBM_preselect_elem_draw(), file_draw_preview(), gizmo_axis_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_primitive_draw_geom(), gizmo_ruler_draw(), gpu_viewport_draw_colormanaged(), GPU_viewport_stereo_composite(), blender::ed::sculpt_paint::image::ops::paint::gradient_draw_line(), graph_draw_driver_debug(), graph_draw_ghost_curves(), graph_main_region_draw(), imm_draw_box_checker_2d_ex(), immDrawPixelsTexSetupAttributes(), knife_draw_line(), knifetool_draw(), knifetool_draw_angle(), knifetool_draw_visible_distances(), mask_draw_curve_type(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), move_geom_draw(), nla_action_draw_keyframes(), nla_actionclip_draw_markers(), nla_draw_strip(), nla_draw_use_dashed_outlines(), blender::ed::space_node::node_draw_collapsed(), blender::ed::space_node::node_draw_preview_background(), blender::ed::space_node::node_draw_zones_and_frames(), blender::ed::outliner::outliner_back(), blender::ed::outliner::outliner_draw_hierarchy_lines(), blender::ed::outliner::outliner_draw_separator(), blender::ed::outliner::outliner_draw_struct_marks(), blender::ed::sculpt_paint::paint_cursor_setup_2D_drawing(), blender::ed::sculpt_paint::paint_cursor_setup_3D_drawing(), blender::ed::sculpt_paint::paint_draw_cursor_overlay(), blender::ed::sculpt_paint::paint_draw_curve_cursor(), blender::ed::sculpt_paint::paint_draw_line_cursor(), blender::ed::sculpt_paint::paint_draw_smooth_cursor(), blender::ed::sculpt_paint::paint_draw_tex_overlay(), playanim_toscreen_ex(), blender::ed::vse::preview_draw_texture_simple(), blender::ed::vse::preview_draw_texture_to_linear(), radial_control_paint_cursor(), radial_control_paint_tex(), rounded_corners(), blender::ed::vse::sequencer_draw_borders_overlay(), blender::ed::vse::sequencer_draw_scopes(), blender::ed::vse::sequencer_preview_draw_overlays(), blender::ed::vse::sequencer_retiming_keys_draw(), blender::ed::vse::strip_draw_image_origin_and_outline(), blender::gpu::tests::test_immediate_one_plane(), blender::gpu::tests::test_immediate_two_planes(), blender::ed::vse::text_edit_draw(), textview_draw_sel(), textview_draw_string(), timeline_draw_cache(), blender::ed::transform::transform_draw_cursor_draw(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSVCIRCLE(), ui_draw_but_HSVCUBE(), ui_draw_but_TAB_outline(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_UNITVEC(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_button_sections_alignment_separator(), ui_draw_gradient(), ui_draw_pie_center(), ui_draw_popover_back_impl(), ui_draw_rounded_corners_inverted(), ui_draw_separator(), UI_draw_text_underline(), ui_hsv_cursor(), UI_panel_category_draw_all(), ui_tooltip_region_draw_cb(), UI_view2d_dot_grid_draw(), UI_view2d_multi_grid_draw(), blender::ed::vse::update_gpu_scopes(), v3d_cursor_plane_draw_grid(), vicon_colorset_draw(), vicon_gplayer_color_draw(), vicon_keytype_draw_wrapper(), blender::ed::object::voxel_size_edit_draw(), widget_draw_extra_mask(), widget_draw_text(), widget_progress_type_ring(), widget_swatch(), wm_gesture_draw_circle(), wm_gesture_draw_cross(), wm_gesture_draw_lasso(), wm_gesture_draw_line(), wm_gesture_draw_line_active_side(), wm_gesture_draw_polyline(), wm_gesture_draw_rect(), wm_software_cursor_draw_bitmap(), wm_software_cursor_draw_crosshair(), wm_stereo3d_draw_sidebyside(), wm_stereo3d_draw_topbottom(), wm_xr_controller_aim_draw(), and wm_xr_raycast_draw().

◆ setAttrValueBit()

void setAttrValueBit ( uint attr_id)
static

◆ vertex_count_makes_sense_for_primitive()

bool vertex_count_makes_sense_for_primitive ( uint vertex_len,
GPUPrimType prim_type )
static

◆ wide_line_workaround_end()

void wide_line_workaround_end ( )
static

◆ wide_line_workaround_start()

Variable Documentation

◆ imm