Blender
V3.3
|
Go to the source code of this file.
Utility drawing functions (rough equivalent to OpenGL's GLU)
Definition in file GPU_immediate_util.h.
Pack color into 3 bytes
This define converts a numerical value to the equivalent 24-bit color, while not being endian-sensitive. On little-endian, this is the same as doing a 'naive' indexing, on big-endian, it is not!
x | color. |
Definition at line 131 of file gpu_immediate_util.c.
References immUniformColor3ub(), and x.
Referenced by curve_draw_stroke_3d().
Definition at line 444 of file gpu_immediate_util.c.
References imm_draw_box_checker_2d_ex(), TH_TRANSPARENT_CHECKER_PRIMARY, TH_TRANSPARENT_CHECKER_SECONDARY, TH_TRANSPARENT_CHECKER_SIZE, UI_GetThemeColor4fv(), UI_GetThemeValue(), x2, and y1.
Referenced by draw_movieclip_buffer(), and sequencer_draw_preview().
void imm_draw_box_checker_2d_ex | ( | float | x1, |
float | y1, | ||
float | x2, | ||
float | y2, | ||
const float | color_primary[4], | ||
const float | color_secondary[4], | ||
int | checker_size | ||
) |
Draw a standard checkerboard to indicate transparent backgrounds.
Definition at line 424 of file gpu_immediate_util.c.
References GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_2D_CHECKER, GPU_vertformat_attr_add(), immBindBuiltinProgram(), immRectf(), immUnbindProgram(), immUniform1i(), immUniform4fv(), immVertexFormat(), pos, x2, and y1.
Referenced by imm_draw_box_checker_2d(), and playanim_toscreen().
Draw a lined box.
pos | The vertex attribute number for position. |
x1 | left. |
y1 | bottom. |
x2 | right. |
y2 | top. |
Definition at line 387 of file gpu_immediate_util.c.
References GPU_PRIM_LINES, immBegin(), immEnd(), immVertex2f(), pos, x2, and y1.
Referenced by draw_marker_areas(), draw_marker_outline(), draw_rect_point(), draw_seq_outline(), draw_sequence_extensions_overlay(), draw_stabilization_border(), drawrenderborder(), drawviewborder(), ED_image_draw_info(), ED_imbuf_sample_draw(), ED_region_do_draw(), file_draw_preview(), nla_draw_strip(), blender::ed::space_node::node_draw_preview(), sequencer_draw_borders_overlay(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HSVCUBE(), UI_draw_safe_areas(), and wm_gesture_draw_rect().
Definition at line 405 of file gpu_immediate_util.c.
References GPU_PRIM_LINES, immBegin(), immEnd(), immVertex3f(), pos, x2, and y1.
Definition at line 377 of file gpu_immediate_util.c.
References GPU_PRIM_LINES, imm_draw_circle_3D(), pos, x, and y.
Referenced by SCULPT_cloth_simulation_limits_draw().
Draw a filled circle with the given radius. The circle is centered at x, y and drawn in the XY plane.
shdr_pos | The vertex attribute number for position. |
x | Horizontal center. |
y | Vertical center. |
radius | The circle's radius. |
nsegments | The number of segments to use in drawing (more = smoother). |
Definition at line 172 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_FAN, imm_draw_circle(), x, and y.
Referenced by annotation_draw_eraser(), ED_gpencil_brush_draw_eraser(), gpencil_brush_cursor_draw(), gpencil_draw_eraser(), radial_control_paint_cursor(), radial_control_paint_tex(), ui_hsv_cursor(), and wm_gesture_draw_circle().
Definition at line 382 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_FAN, imm_draw_circle_3D(), pos, x, and y.
Referenced by arrow_draw_geom(), button2d_geom_draw_backdrop(), cursor_draw_point_screen_space(), dial_geom_draw(), and move_geom_draw().
void imm_draw_circle_fill_aspect_2d | ( | uint | shdr_pos, |
float | x, | ||
float | y, | ||
float | radius_x, | ||
float | radius_y, | ||
int | nsegments | ||
) |
Definition at line 182 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_FAN, imm_draw_circle(), x, and y.
Referenced by cage2d_draw_circle_handles().
void imm_draw_circle_partial_wire_2d | ( | uint | pos, |
float | x, | ||
float | y, | ||
float | radius, | ||
int | nsegments, | ||
float | start, | ||
float | sweep | ||
) |
Same as 'imm_draw_disk_partial_fill_2d', except it draws a wire arc.
Definition at line 235 of file gpu_immediate_util.c.
References GPU_PRIM_LINE_STRIP, imm_draw_circle_partial(), pos, x, and y.
void imm_draw_circle_partial_wire_3d | ( | uint | pos, |
float | x, | ||
float | y, | ||
float | z, | ||
float | radius, | ||
int | nsegments, | ||
float | start, | ||
float | sweep | ||
) |
Definition at line 241 of file gpu_immediate_util.c.
References GPU_PRIM_LINE_STRIP, imm_draw_circle_partial_3d(), pos, x, y, and z.
Referenced by dial_geom_draw().
Draw a circle outline with the given radius. The circle is centered at x, y and drawn in the XY plane.
shdr_pos | The vertex attribute number for position. |
x | Horizontal center. |
y | Vertical center. |
radius | The circle's radius. |
nsegments | The number of segments to use in drawing (more = smoother). |
Definition at line 167 of file gpu_immediate_util.c.
References GPU_PRIM_LINE_LOOP, imm_draw_circle(), x, and y.
Referenced by annotation_draw_eraser(), annotation_draw_stabilizer(), brush_drawcursor(), drawSnapping(), ED_gpencil_brush_draw_eraser(), gpencil_brush_cursor_draw(), gpencil_draw_eraser(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_draw(), paint_draw_2D_view_brush_cursor(), radial_control_paint_cursor(), tracking_segment_knot_cb(), ui_draw_but_HSVCIRCLE(), ui_draw_but_UNITVEC(), ui_draw_pie_center(), ui_hsv_cursor(), and wm_gesture_draw_circle().
Use this version when GPUVertFormat has a vec3 position.
Definition at line 372 of file gpu_immediate_util.c.
References GPU_PRIM_LINE_LOOP, imm_draw_circle_3D(), pos, x, and y.
Referenced by button2d_geom_draw_backdrop(), dial_geom_draw(), dyntopo_detail_size_edit_draw(), move_geom_draw(), paint_cursor_draw_main_inactive_cursor(), paint_draw_3D_view_inactive_brush_cursor(), paint_draw_legacy_3D_view_brush_cursor(), SCULPT_cloth_simulation_limits_draw(), and SCULPT_layer_brush_height_preview_draw().
void imm_draw_circle_wire_aspect_2d | ( | uint | shdr_pos, |
float | x, | ||
float | y, | ||
float | radius_x, | ||
float | radius_y, | ||
int | nsegments | ||
) |
Definition at line 177 of file gpu_immediate_util.c.
References GPU_PRIM_LINE_LOOP, imm_draw_circle(), x, and y.
Referenced by cage2d_draw_circle_handles().
void imm_draw_cube_corners_3d | ( | uint | pos, |
const float | center[3], | ||
const float | aspect[3], | ||
float | factor | ||
) |
Definition at line 491 of file gpu_immediate_util.c.
References add_v3_v3(), ARRAY_SIZE, center, copy_v3_v3(), cube_coords, cube_line_index, GPU_PRIM_LINES, immBegin(), immEnd(), immVertex3fv(), madd_v3_v3v3v3(), mul_v3_fl(), pos, sub_v3_v3(), and sub_v3_v3v3().
Referenced by cursor_box_draw().
Definition at line 454 of file gpu_immediate_util.c.
References ARRAY_SIZE, center, cube_coords, cube_quad_index, GPU_PRIM_TRIS, immBegin(), immEnd(), immVertex3fv(), madd_v3_v3v3v3(), and pos.
Referenced by cage3d_draw_box_interaction(), and imm_draw_point_aspect_3d().
Definition at line 475 of file gpu_immediate_util.c.
References ARRAY_SIZE, center, cube_coords, cube_line_index, GPU_PRIM_LINES, immBegin(), immEnd(), immVertex3fv(), madd_v3_v3v3v3(), and pos.
Referenced by cage3d_draw_box_corners(), cage3d_draw_circle_wire(), and imm_draw_point_aspect_3d().
void imm_draw_cylinder_fill_3d | ( | uint | pos, |
float | base, | ||
float | top, | ||
float | height, | ||
int | slices, | ||
int | stacks | ||
) |
Definition at line 615 of file gpu_immediate_util.c.
References cosf, float(), GPU_PRIM_TRIS, height, immBegin(), immEnd(), immVertex3fv(), M_PI, pos, sinf, top, v1, and v2.
Referenced by arrow_draw_geom().
void imm_draw_cylinder_fill_normal_3d | ( | uint | pos, |
uint | nor, | ||
float | base, | ||
float | top, | ||
float | height, | ||
int | slices, | ||
int | stacks | ||
) |
Draw a cylinder. Replacement for #gluCylinder.
pos | The vertex attribute number for position. |
nor | The vertex attribute number for normal. |
base | Specifies the radius of the cylinder at z = 0. |
top | Specifies the radius of the cylinder at z = height. |
height | Specifies the height of the cylinder. |
slices | Specifies the number of subdivisions around the z axis. |
stacks | Specifies the number of subdivisions along the z axis. |
Definition at line 521 of file gpu_immediate_util.c.
References cosf, float(), GPU_PRIM_TRIS, height, immAttr3fv(), immBegin(), immEnd(), immVertex3fv(), M_PI, nor, normalize_v3(), pos, sinf, sub_v3_v3v3(), top, v1, and v2.
void imm_draw_cylinder_wire_3d | ( | uint | pos, |
float | base, | ||
float | top, | ||
float | height, | ||
int | slices, | ||
int | stacks | ||
) |
Definition at line 577 of file gpu_immediate_util.c.
References cosf, float(), GPU_PRIM_LINES, height, immBegin(), immEnd(), immVertex3fv(), M_PI, pos, sinf, top, v1, and v2.
void imm_draw_disk_partial_fill_2d | ( | uint | pos, |
float | x, | ||
float | y, | ||
float | rad_inner, | ||
float | rad_outer, | ||
int | nsegments, | ||
float | start, | ||
float | sweep | ||
) |
Draw a filled arc with the given inner and outer radius. The circle is centered at x, y and drawn in the XY plane.
gluPartialDisk
compatible.pos | The vertex attribute number for position. |
x | Horizontal center. |
y | Vertical center. |
rad_inner | The inner circle's radius. |
rad_outer | The outer circle's radius (can be zero). |
nsegments | The number of segments to use in drawing (more = smoother). |
start | Specifies the starting angle, in degrees, of the disk portion. |
sweep | Specifies the sweep angle, in degrees, of the disk portion. |
Definition at line 306 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_STRIP, imm_draw_disk_partial(), pos, x, and y.
Referenced by dial_ghostarc_draw().
void imm_draw_disk_partial_fill_3d | ( | uint | pos, |
float | x, | ||
float | y, | ||
float | z, | ||
float | rad_inner, | ||
float | rad_outer, | ||
int | nsegments, | ||
float | start, | ||
float | sweep | ||
) |
Definition at line 318 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_STRIP, imm_draw_disk_partial_3d(), pos, x, y, and z.
Referenced by dial_geom_draw().
Definition at line 693 of file gpu_immediate_util.c.
References circball_array_fill(), CIRCLE_RESOL, GPU_PRIM_LINE_LOOP, immBegin(), immEnd(), immVertex3fv(), pos, and verts.
Referenced by drawPropCircle(), drawSnapping(), and ED_view3d_cursor_snap_draw_util().
Definition at line 52 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_FAN, immBegin(), immEnd(), immVertex2f(), pos, x2, and y1.
Referenced by acf_generic_channel_backdrop(), acf_generic_dataexpand_backdrop(), ANIM_channel_draw(), ANIM_draw_action_framerange(), ANIM_draw_framerange(), ANIM_draw_previewrange(), clip_draw_dopesheet_background(), clip_draw_dopesheet_channels(), clip_draw_dopesheet_main(), clip_draw_sfra_efra(), console_textview_draw_cursor(), draw_background(), draw_cache_view(), draw_channel_strips(), draw_color_strip_band(), draw_columnheader_background(), draw_current_frame(), draw_effect_inputs_highlight(), draw_marker_slide_square(), draw_markers_background(), draw_movieclip_muted(), draw_nla_main_data(), draw_seq_background(), draw_seq_handle(), draw_seq_in_view(), draw_seq_invalid(), draw_seq_locked(), draw_seq_outline(), draw_seq_strips(), draw_seq_timeline_channels(), draw_sequence_extensions_overlay(), drawmeta_contents(), drawSnapping(), drawviewborder(), ED_region_do_draw(), ED_region_grid_draw(), ED_region_image_metadata_draw(), ED_time_scrub_channel_search_draw(), gizmo_cage2d_draw_intern(), gizmo_cage3d_draw_intern(), gizmo_ruler_draw(), imm_draw_box_checker_2d_ex(), knifetool_draw_angle(), knifetool_draw_visible_distances(), nla_action_draw_keyframes(), nla_draw_strip(), blender::ed::space_node::node_draw_preview_background(), screen_draw_join_highlight(), seq_draw_sfra_efra(), timeline_cache_draw_single(), ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), and ui_draw_but_CURVEPROFILE().
Same as immRectf / immRecti but does not call immBegin / immEnd. To use with GPU_PRIM_TRIS.
Definition at line 72 of file gpu_immediate_util.c.
References immVertex2f(), pos, x2, and y1.
Referenced by timeline_cache_draw_cached_segments().
void immRectf_fast_with_color | ( | uint | pos, |
uint | col, | ||
float | x1, | ||
float | y1, | ||
float | x2, | ||
float | y2, | ||
const float | color[4] | ||
) |
Definition at line 83 of file gpu_immediate_util.c.
References col, color, immAttr4fv(), immVertex2f(), pos, x2, and y1.
Definition at line 62 of file gpu_immediate_util.c.
References GPU_PRIM_TRI_FAN, immBegin(), immEnd(), immVertex2i(), pos, x2, and y1.
Referenced by blender::ed::spreadsheet::draw_alternating_row_overlay(), draw_image_cache(), blender::ed::spreadsheet::draw_index_column_background(), draw_keyframe(), draw_movieclip_cache(), blender::ed::spreadsheet::draw_top_row_background(), ED_image_draw_info(), ED_region_cache_draw_background(), ED_region_cache_draw_cached_segments(), ED_region_cache_draw_curfra_label(), ED_region_info_draw_multiline(), outliner_draw_highlights(), outliner_draw_struct_marks(), textview_draw_sel(), textview_draw_string(), UI_draw_text_underline(), UI_panel_category_draw_all(), vicon_colorset_draw(), vicon_gplayer_color_draw(), widget_draw_text(), wm_gesture_draw_rect(), and wm_software_cursor_draw_crosshair().
void immRecti_fast_with_color | ( | uint | pos, |
uint | col, | ||
int | x1, | ||
int | y1, | ||
int | x2, | ||
int | y2, | ||
const float | color[4] | ||
) |
Definition at line 101 of file gpu_immediate_util.c.
References col, color, immAttr4fv(), immVertex2i(), pos, x2, and y1.