Blender V4.3
draw_cache.cc File Reference
#include "DNA_curve_types.h"
#include "DNA_curves_types.h"
#include "DNA_grease_pencil_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_particle_types.h"
#include "DNA_pointcloud_types.h"
#include "DNA_scene_types.h"
#include "DNA_volume_types.h"
#include "UI_resources.hh"
#include "BLI_utildefines.h"
#include "BKE_object.hh"
#include "BKE_paint.hh"
#include "GPU_batch.hh"
#include "GPU_batch_utils.hh"
#include "GPU_capabilities.hh"
#include "MEM_guardedalloc.h"
#include "draw_cache.hh"
#include "draw_cache_impl.hh"
#include "draw_manager_c.hh"

Go to the source code of this file.

Classes

struct  Vert
 
struct  VertShaded
 
struct  DRWShapeCache
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Macros

#define NSEGMENTS   32
 
#define CIRCLE_RESOL   64
 
#define NSEGMENTS   8
 
#define NSEGMENTS   12
 
#define NSEGMENTS   24 /* Must be multiple of 2. */
 
#define CIRCLE_RESOL   32
 
#define CIRCLE_RESOL   32
 
#define SPIRAL_RESOL   32
 
#define CIRCLE_RESOL   32
 
#define CIRCLE_RESOL   32
 
#define SIDE_STIPPLE   32
 
#define CIRCLE_RESOL   32
 
#define SIDE_STIPPLE   32
 
#define CIRCLE_RESOL   32
 
#define CIRCLE_RESOL   64
 
#define CIRCLE_RESOL   64
 
#define CIRCLE_RESOL   64
 
#define CIRCLE_RESOL   12
 
#define CIRCLE_RESOL   32
 
Internal Defines
#define VCLASS_LIGHT_AREA_SHAPE   (1 << 0)
 
#define VCLASS_LIGHT_SPOT_SHAPE   (1 << 1)
 
#define VCLASS_LIGHT_SPOT_BLEND   (1 << 2)
 
#define VCLASS_LIGHT_SPOT_CONE   (1 << 3)
 
#define VCLASS_LIGHT_DIST   (1 << 4)
 
#define VCLASS_CAMERA_FRAME   (1 << 5)
 
#define VCLASS_CAMERA_DIST   (1 << 6)
 
#define VCLASS_CAMERA_VOLUME   (1 << 7)
 
#define VCLASS_SCREENSPACE   (1 << 8)
 
#define VCLASS_SCREENALIGNED   (1 << 9)
 
#define VCLASS_EMPTY_SCALED   (1 << 10)
 
#define VCLASS_EMPTY_AXES   (1 << 11)
 
#define VCLASS_EMPTY_AXES_NAME   (1 << 12)
 
#define VCLASS_EMPTY_AXES_SHADOW   (1 << 13)
 
#define VCLASS_EMPTY_SIZE   (1 << 14)
 
#define DRW_SPHERE_SHAPE_LATITUDE_LOW   32
 
#define DRW_SPHERE_SHAPE_LONGITUDE_LOW   24
 
#define DRW_SPHERE_SHAPE_LATITUDE_MEDIUM   64
 
#define DRW_SPHERE_SHAPE_LONGITUDE_MEDIUM   48
 
#define DRW_SPHERE_SHAPE_LATITUDE_HIGH   80
 
#define DRW_SPHERE_SHAPE_LONGITUDE_HIGH   60
 

Functions

blender::gpu::Batch * blender::draw::DRW_cache_volume_face_wireframe_get (Object *ob)
 
blender::gpu::Batch * blender::draw::DRW_cache_volume_selection_surface_get (Object *ob)
 
void DRW_cdlayer_attr_aliases_add (GPUVertFormat *format, const char *base_name, const int data_type, const char *layer_name, bool is_active_render, bool is_active_layer)
 
Procedural Batches
blender::gpu::Batch * drw_cache_procedural_points_get ()
 
blender::gpu::Batch * drw_cache_procedural_lines_get ()
 
blender::gpu::Batch * drw_cache_procedural_triangles_get ()
 
blender::gpu::Batch * drw_cache_procedural_triangle_strips_get ()
 
Helper functions
static GPUVertFormat extra_vert_format ()
 
static void UNUSED_FUNCTION add_fancy_edge (blender::gpu::VertBuf *vbo, uint pos_id, uint n1_id, uint n2_id, uint *v_idx, const float co1[3], const float co2[3], const float n1[3], const float n2[3])
 
static blender::gpu::VertBufsphere_wire_vbo (const float rad, int flag)
 
blender::gpu::Batch * DRW_cache_fullscreen_quad_get ()
 
blender::gpu::Batch * DRW_cache_quad_get ()
 
blender::gpu::Batch * DRW_cache_quad_wires_get ()
 
blender::gpu::Batch * DRW_cache_grid_get ()
 
static void sphere_lat_lon_vert (blender::gpu::VertBuf *vbo, int *v_ofs, float lat, float lon)
 
blender::gpu::Batch * DRW_cache_sphere_get (const eDRWLevelOfDetail level_of_detail)
 
Generic
void blender::draw::DRW_vertbuf_create_wiredata (blender::gpu::VertBuf *vbo, const int vert_len)
 
Dummy VBO's

We need a dummy VBO containing the vertex count to draw instances ranges.

blender::gpu::Batch * DRW_gpencil_dummy_buffer_get ()
 
Common Object API
Note
Curve and text objects evaluate to the evaluated geometry set's mesh component if they have a surface, so curve objects themselves do not have a surface (the mesh component is presented to render engines as a separate object).
blender::gpu::Batch * DRW_cache_object_all_edges_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_object_edge_detection_get (Object *ob, bool *r_is_manifold)
 
blender::gpu::Batch * DRW_cache_object_face_wireframe_get (const Scene *scene, Object *ob)
 
blender::gpu::Batch * DRW_cache_object_loose_edges_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_object_surface_get (Object *ob)
 
blender::gpu::VertBufDRW_cache_object_pos_vertbuf_get (Object *ob)
 
int DRW_cache_object_material_count_get (const Object *ob)
 
blender::gpu::Batch ** DRW_cache_object_surface_material_get (Object *ob, GPUMaterial **gpumat_array, uint gpumat_array_len)
 
Empties
blender::gpu::Batch * DRW_cache_plain_axes_get ()
 
blender::gpu::Batch * DRW_cache_empty_cube_get ()
 
blender::gpu::Batch * DRW_cache_single_arrow_get ()
 
blender::gpu::Batch * DRW_cache_empty_sphere_get ()
 
blender::gpu::Batch * DRW_cache_empty_cone_get ()
 
blender::gpu::Batch * DRW_cache_empty_cylinder_get ()
 
blender::gpu::Batch * DRW_cache_empty_capsule_body_get ()
 
blender::gpu::Batch * DRW_cache_empty_capsule_cap_get ()
 
blender::gpu::Batch * DRW_cache_field_wind_get ()
 
blender::gpu::Batch * DRW_cache_field_force_get ()
 
blender::gpu::Batch * DRW_cache_field_vortex_get ()
 
blender::gpu::Batch * DRW_cache_field_curve_get ()
 
blender::gpu::Batch * DRW_cache_field_tube_limit_get ()
 
blender::gpu::Batch * DRW_cache_field_cone_limit_get ()
 
blender::gpu::Batch * DRW_cache_field_sphere_limit_get ()
 
Speaker
blender::gpu::Batch * DRW_cache_speaker_get ()
 
Probe
blender::gpu::Batch * DRW_cache_lightprobe_cube_get ()
 
blender::gpu::Batch * DRW_cache_lightprobe_grid_get ()
 
blender::gpu::Batch * DRW_cache_lightprobe_planar_get ()
 
Camera
blender::gpu::Batch * DRW_cache_camera_frame_get ()
 
blender::gpu::Batch * DRW_cache_camera_volume_get ()
 
blender::gpu::Batch * DRW_cache_camera_volume_wire_get ()
 
blender::gpu::Batch * DRW_cache_camera_tria_wire_get ()
 
blender::gpu::Batch * DRW_cache_camera_tria_get ()
 
blender::gpu::Batch * DRW_cache_camera_distances_get ()
 
Meshes
blender::gpu::Batch * DRW_cache_mesh_all_verts_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_all_edges_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_loose_edges_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_edge_detection_get (Object *ob, bool *r_is_manifold)
 
blender::gpu::Batch * DRW_cache_mesh_surface_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_edges_get (Object *ob)
 
blender::gpu::Batch ** DRW_cache_mesh_surface_shaded_get (Object *ob, GPUMaterial **gpumat_array, uint gpumat_array_len)
 
blender::gpu::Batch ** DRW_cache_mesh_surface_texpaint_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_texpaint_single_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_vertpaint_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_sculptcolors_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_weights_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_face_wireframe_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_mesh_analysis_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_mesh_surface_viewer_attribute_get (Object *ob)
 
Curve
blender::gpu::Batch * DRW_cache_curve_edge_wire_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_curve_edge_wire_viewer_attribute_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_curve_edge_normal_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_curve_edge_overlay_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_curve_vert_overlay_get (Object *ob)
 
Font
blender::gpu::Batch * DRW_cache_text_edge_wire_get (Object *ob)
 
Surface
blender::gpu::Batch * DRW_cache_surf_edge_wire_get (Object *ob)
 
Lattice
blender::gpu::Batch * DRW_cache_lattice_verts_get (Object *ob)
 
blender::gpu::Batch * DRW_cache_lattice_wire_get (Object *ob, bool use_weight)
 
blender::gpu::Batch * DRW_cache_lattice_vert_overlay_get (Object *ob)
 
Particles
blender::gpu::Batch * DRW_cache_particles_get_hair (Object *object, ParticleSystem *psys, ModifierData *md)
 
blender::gpu::Batch * DRW_cache_particles_get_dots (Object *object, ParticleSystem *psys)
 
blender::gpu::Batch * DRW_cache_particles_get_edit_strands (Object *object, ParticleSystem *psys, PTCacheEdit *edit, bool use_weight)
 
blender::gpu::Batch * DRW_cache_particles_get_edit_inner_points (Object *object, ParticleSystem *psys, PTCacheEdit *edit)
 
blender::gpu::Batch * DRW_cache_particles_get_edit_tip_points (Object *object, ParticleSystem *psys, PTCacheEdit *edit)
 
blender::gpu::Batch * DRW_cache_particles_get_prim (int type)
 
blender::gpu::Batch * DRW_cache_cursor_get (bool crosshair_lines)
 
Batch Cache Implementation (common)
void drw_batch_cache_validate (Object *ob)
 
void drw_batch_cache_generate_requested (Object *ob)
 
void drw_batch_cache_generate_requested_evaluated_mesh_or_curve (Object *ob)
 
void drw_batch_cache_generate_requested_delayed (Object *ob)
 
Garbage Collection
void blender::draw::DRW_batch_cache_free_old (Object *ob, int ctime)
 

Lights

#define DIAMOND_NSEGMENTS   4
 
#define INNER_NSEGMENTS   8
 
#define OUTER_NSEGMENTS   10
 
#define CIRCLE_NSEGMENTS   32
 
static float light_distance_z_get (char axis, const bool start)
 
blender::gpu::Batch * DRW_cache_groundline_get ()
 
blender::gpu::Batch * DRW_cache_light_icon_inner_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_icon_outer_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_icon_sun_rays_get ()
 
blender::gpu::Batch * DRW_cache_light_point_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_sun_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_spot_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_spot_volume_get ()
 
blender::gpu::Batch * DRW_cache_light_area_disk_lines_get ()
 
blender::gpu::Batch * DRW_cache_light_area_square_lines_get ()
 

Armature Bones

#define COL_WIRE   (1 << 0)
 
#define COL_HEAD   (1 << 1)
 
#define COL_TAIL   (1 << 2)
 
#define COL_BONE   (1 << 3)
 
#define POS_HEAD   (1 << 4)
 
#define POS_TAIL   (1 << 5)
 
#define POS_BONE   (1 << 6)
 
#define S_X   0.0215f
 
#define S_Y   0.025f
 
#define X_LEN   ARRAY_SIZE(x_axis_name)
 
#define S_X   0.0175f
 
#define S_Y   0.025f
 
#define Y_LEN   ARRAY_SIZE(y_axis_name)
 
#define S_X   0.02f
 
#define S_Y   0.025f
 
#define Z_LEN   ARRAY_SIZE(z_axis_name)
 
#define S_X   0.007f
 
#define S_Y   0.007f
 
#define MARKER_LEN   ARRAY_SIZE(axis_marker)
 
#define MARKER_FILL_LAYER   6
 
#define set_vert(a, b, quarter)
 
static const float bone_octahedral_verts [6][3]
 
static const uint bone_octahedral_solid_tris [8][3]
 
static const uint bone_octahedral_wire_lines_adjacency [12][4]
 
static const float bone_octahedral_solid_normals [8][3]
 
static float x_axis_name [4][2]
 
static float y_axis_name [6][2]
 
static float z_axis_name [10][2]
 
static float axis_marker [8][2]
 
static const float staticSine [16]
 
blender::gpu::Batch * DRW_cache_bone_octahedral_get ()
 
blender::gpu::Batch * DRW_cache_bone_octahedral_wire_get ()
 
blender::gpu::Batch * DRW_cache_bone_box_get ()
 
blender::gpu::Batch * DRW_cache_bone_box_wire_get ()
 
static void benv_lat_lon_to_co (const float lat, const float lon, float r_nor[3])
 
blender::gpu::Batch * DRW_cache_bone_envelope_solid_get ()
 
blender::gpu::Batch * DRW_cache_bone_envelope_outline_get ()
 
blender::gpu::Batch * DRW_cache_bone_point_get ()
 
blender::gpu::Batch * DRW_cache_bone_point_wire_outline_get ()
 
blender::gpu::Batch * DRW_cache_bone_stick_get ()
 
blender::gpu::Batch * DRW_cache_bone_arrows_get ()
 
blender::gpu::Batch * DRW_cache_bone_dof_sphere_get ()
 
blender::gpu::Batch * DRW_cache_bone_dof_lines_get ()
 

Internal Types

static struct DRWShapeCache SHC = {nullptr}
 
void DRW_shape_cache_free ()
 

Common

static const float bone_box_verts [8][3]
 
static const uint bone_box_wire [24]
 
static const uint bone_box_solid_tris [12][3]
 
static const uint bone_box_wire_lines_adjacency [12][4]
 
static const float bone_box_solid_normals [12][3]
 
static void circle_verts (blender::gpu::VertBuf *vbo, int *vert_idx, int segments, float radius, float z, int flag)
 
static void circle_dashed_verts (blender::gpu::VertBuf *vbo, int *vert_idx, int segments, float radius, float z, int flag)
 
blender::gpu::Batch * DRW_cache_cube_get ()
 
blender::gpu::Batch * DRW_cache_circle_get ()
 
blender::gpu::Batch * DRW_cache_normal_arrow_get ()
 

Macro Definition Documentation

◆ CIRCLE_NSEGMENTS

◆ CIRCLE_RESOL [1/12]

◆ CIRCLE_RESOL [2/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [3/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [4/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [5/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [6/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [7/12]

#define CIRCLE_RESOL   32

◆ CIRCLE_RESOL [8/12]

#define CIRCLE_RESOL   64

◆ CIRCLE_RESOL [9/12]

#define CIRCLE_RESOL   64

◆ CIRCLE_RESOL [10/12]

#define CIRCLE_RESOL   64

◆ CIRCLE_RESOL [11/12]

#define CIRCLE_RESOL   12

◆ CIRCLE_RESOL [12/12]

#define CIRCLE_RESOL   32

◆ COL_BONE

#define COL_BONE   (1 << 3)

◆ COL_HEAD

#define COL_HEAD   (1 << 1)

◆ COL_TAIL

#define COL_TAIL   (1 << 2)

◆ COL_WIRE

#define COL_WIRE   (1 << 0)

◆ DIAMOND_NSEGMENTS

◆ DRW_SPHERE_SHAPE_LATITUDE_HIGH

#define DRW_SPHERE_SHAPE_LATITUDE_HIGH   80

Definition at line 70 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ DRW_SPHERE_SHAPE_LATITUDE_LOW

#define DRW_SPHERE_SHAPE_LATITUDE_LOW   32

Definition at line 64 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ DRW_SPHERE_SHAPE_LATITUDE_MEDIUM

#define DRW_SPHERE_SHAPE_LATITUDE_MEDIUM   64

Definition at line 67 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ DRW_SPHERE_SHAPE_LONGITUDE_HIGH

#define DRW_SPHERE_SHAPE_LONGITUDE_HIGH   60

Definition at line 71 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ DRW_SPHERE_SHAPE_LONGITUDE_LOW

#define DRW_SPHERE_SHAPE_LONGITUDE_LOW   24

Definition at line 65 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ DRW_SPHERE_SHAPE_LONGITUDE_MEDIUM

#define DRW_SPHERE_SHAPE_LONGITUDE_MEDIUM   48

Definition at line 68 of file draw_cache.cc.

Referenced by DRW_cache_sphere_get().

◆ INNER_NSEGMENTS

#define INNER_NSEGMENTS   8

Definition at line 1440 of file draw_cache.cc.

Referenced by DRW_cache_light_icon_inner_lines_get().

◆ MARKER_FILL_LAYER

#define MARKER_FILL_LAYER   6

Definition at line 2527 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

◆ MARKER_LEN

#define MARKER_LEN   ARRAY_SIZE(axis_marker)

Definition at line 2526 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

◆ NSEGMENTS [1/4]

◆ NSEGMENTS [2/4]

#define NSEGMENTS   8

◆ NSEGMENTS [3/4]

#define NSEGMENTS   12

◆ NSEGMENTS [4/4]

#define NSEGMENTS   24 /* Must be multiple of 2. */

◆ OUTER_NSEGMENTS

#define OUTER_NSEGMENTS   10

Definition at line 1441 of file draw_cache.cc.

Referenced by DRW_cache_light_icon_outer_lines_get().

◆ POS_BONE

#define POS_BONE   (1 << 6)

◆ POS_HEAD

#define POS_HEAD   (1 << 4)

◆ POS_TAIL

#define POS_TAIL   (1 << 5)

◆ S_X [1/4]

#define S_X   0.0215f

Definition at line 2459 of file draw_cache.cc.

◆ S_X [2/4]

#define S_X   0.0175f

Definition at line 2459 of file draw_cache.cc.

◆ S_X [3/4]

#define S_X   0.02f

Definition at line 2459 of file draw_cache.cc.

◆ S_X [4/4]

#define S_X   0.007f

Definition at line 2459 of file draw_cache.cc.

◆ S_Y [1/4]

#define S_Y   0.025f

Definition at line 2460 of file draw_cache.cc.

◆ S_Y [2/4]

#define S_Y   0.025f

Definition at line 2460 of file draw_cache.cc.

◆ S_Y [3/4]

#define S_Y   0.025f

Definition at line 2460 of file draw_cache.cc.

◆ S_Y [4/4]

#define S_Y   0.007f

Definition at line 2460 of file draw_cache.cc.

◆ set_vert

#define set_vert ( a,
b,
quarter )
Value:
{ \
copy_v2_fl2(pos, (quarter % 2 == 0) ? -(a) : (a), (quarter < 2) ? -(b) : (b)); \
GPU_vertbuf_attr_set(vbo, attr_id.pos, v++, pos); \
} \
((void)0)
ATTR_WARN_UNUSED_RESULT const BMVert * v
local_group_size(16, 16) .push_constant(Type b
struct @620::@623 attr_id

Definition at line 2590 of file draw_cache.cc.

Referenced by QuadDice::add_grid(), DRW_cache_bone_dof_lines_get(), DRW_cache_bone_dof_sphere_get(), QuadDice::set_side(), and blender::draw::overlay::ShapeCache::ShapeCache().

◆ SIDE_STIPPLE [1/2]

◆ SIDE_STIPPLE [2/2]

#define SIDE_STIPPLE   32

◆ SPIRAL_RESOL

#define SPIRAL_RESOL   32

◆ VCLASS_CAMERA_DIST

#define VCLASS_CAMERA_DIST   (1 << 6)

Definition at line 50 of file draw_cache.cc.

Referenced by DRW_cache_camera_distances_get().

◆ VCLASS_CAMERA_FRAME

◆ VCLASS_CAMERA_VOLUME

#define VCLASS_CAMERA_VOLUME   (1 << 7)

Definition at line 51 of file draw_cache.cc.

Referenced by DRW_cache_camera_volume_get(), and DRW_cache_camera_volume_wire_get().

◆ VCLASS_EMPTY_AXES

#define VCLASS_EMPTY_AXES   (1 << 11)

Definition at line 57 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get(), and DRW_cache_particles_get_prim().

◆ VCLASS_EMPTY_AXES_NAME

#define VCLASS_EMPTY_AXES_NAME   (1 << 12)

Definition at line 58 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

◆ VCLASS_EMPTY_AXES_SHADOW

#define VCLASS_EMPTY_AXES_SHADOW   (1 << 13)

Definition at line 59 of file draw_cache.cc.

◆ VCLASS_EMPTY_SCALED

◆ VCLASS_EMPTY_SIZE

◆ VCLASS_LIGHT_AREA_SHAPE

◆ VCLASS_LIGHT_DIST

◆ VCLASS_LIGHT_SPOT_BLEND

#define VCLASS_LIGHT_SPOT_BLEND   (1 << 2)

Definition at line 45 of file draw_cache.cc.

Referenced by DRW_cache_light_spot_lines_get().

◆ VCLASS_LIGHT_SPOT_CONE

#define VCLASS_LIGHT_SPOT_CONE   (1 << 3)

Definition at line 46 of file draw_cache.cc.

Referenced by DRW_cache_light_spot_lines_get().

◆ VCLASS_LIGHT_SPOT_SHAPE

#define VCLASS_LIGHT_SPOT_SHAPE   (1 << 1)

◆ VCLASS_SCREENALIGNED

◆ VCLASS_SCREENSPACE

◆ X_LEN

Definition at line 2467 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

◆ Y_LEN

Definition at line 2481 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

◆ Z_LEN

Definition at line 2499 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get().

Function Documentation

◆ add_fancy_edge()

static void UNUSED_FUNCTION add_fancy_edge ( blender::gpu::VertBuf * vbo,
uint pos_id,
uint n1_id,
uint n2_id,
uint * v_idx,
const float co1[3],
const float co2[3],
const float n1[3],
const float n2[3] )
static

Definition at line 259 of file draw_cache.cc.

References GPU_vertbuf_attr_set().

◆ benv_lat_lon_to_co()

static void benv_lat_lon_to_co ( const float lat,
const float lon,
float r_nor[3] )
static

Definition at line 2161 of file draw_cache.cc.

References cosf, and sinf.

Referenced by DRW_cache_bone_envelope_solid_get().

◆ circle_dashed_verts()

static void circle_dashed_verts ( blender::gpu::VertBuf * vbo,
int * vert_idx,
int segments,
float radius,
float z,
int flag )
static

◆ circle_verts()

◆ drw_batch_cache_generate_requested()

◆ drw_batch_cache_generate_requested_delayed()

void drw_batch_cache_generate_requested_delayed ( Object * ob)
Warning
Only evaluated mesh data is handled by this delayed generation.

Definition at line 3419 of file draw_cache.cc.

References BLI_gset_add(), DRWManager::delayed_extraction, and DST.

Referenced by drw_shgroup_bone_custom_mesh_wire(), drw_shgroup_bone_custom_solid_mesh(), drw_shgroup_custom_bone_curve(), and blender::draw::overlay::MeshUVs::edit_object_sync().

◆ drw_batch_cache_generate_requested_evaluated_mesh_or_curve()

◆ drw_batch_cache_validate()

◆ DRW_cache_bone_arrows_get()

◆ DRW_cache_bone_box_get()

◆ DRW_cache_bone_box_wire_get()

◆ DRW_cache_bone_dof_lines_get()

◆ DRW_cache_bone_dof_sphere_get()

◆ DRW_cache_bone_envelope_outline_get()

◆ DRW_cache_bone_envelope_solid_get()

◆ DRW_cache_bone_octahedral_get()

◆ DRW_cache_bone_octahedral_wire_get()

◆ DRW_cache_bone_point_get()

◆ DRW_cache_bone_point_wire_outline_get()

◆ DRW_cache_bone_stick_get()

◆ DRW_cache_camera_distances_get()

◆ DRW_cache_camera_frame_get()

◆ DRW_cache_camera_tria_get()

◆ DRW_cache_camera_tria_wire_get()

◆ DRW_cache_camera_volume_get()

◆ DRW_cache_camera_volume_wire_get()

◆ DRW_cache_circle_get()

◆ DRW_cache_cube_get()

◆ DRW_cache_cursor_get()

◆ DRW_cache_curve_edge_normal_get()

blender::gpu::Batch * DRW_cache_curve_edge_normal_get ( Object * ob)

◆ DRW_cache_curve_edge_overlay_get()

blender::gpu::Batch * DRW_cache_curve_edge_overlay_get ( Object * ob)

◆ DRW_cache_curve_edge_wire_get()

◆ DRW_cache_curve_edge_wire_viewer_attribute_get()

blender::gpu::Batch * DRW_cache_curve_edge_wire_viewer_attribute_get ( Object * ob)

Definition at line 2971 of file draw_cache.cc.

References BLI_assert, Object::data, OB_CURVES_LEGACY, and Object::type.

Referenced by populate_cache_for_geometry().

◆ DRW_cache_curve_vert_overlay_get()

blender::gpu::Batch * DRW_cache_curve_vert_overlay_get ( Object * ob)

◆ DRW_cache_empty_capsule_body_get()

◆ DRW_cache_empty_capsule_cap_get()

◆ DRW_cache_empty_cone_get()

◆ DRW_cache_empty_cube_get()

◆ DRW_cache_empty_cylinder_get()

◆ DRW_cache_empty_sphere_get()

blender::gpu::Batch * DRW_cache_empty_sphere_get ( )

◆ DRW_cache_field_cone_limit_get()

◆ DRW_cache_field_curve_get()

◆ DRW_cache_field_force_get()

◆ DRW_cache_field_sphere_limit_get()

◆ DRW_cache_field_tube_limit_get()

◆ DRW_cache_field_vortex_get()

◆ DRW_cache_field_wind_get()

◆ DRW_cache_fullscreen_quad_get()

blender::gpu::Batch * DRW_cache_fullscreen_quad_get ( )

◆ DRW_cache_grid_get()

◆ DRW_cache_groundline_get()

◆ DRW_cache_lattice_vert_overlay_get()

blender::gpu::Batch * DRW_cache_lattice_vert_overlay_get ( Object * ob)

◆ DRW_cache_lattice_verts_get()

blender::gpu::Batch * DRW_cache_lattice_verts_get ( Object * ob)

Definition at line 3039 of file draw_cache.cc.

References BLI_assert, Object::data, OB_LATTICE, and Object::type.

◆ DRW_cache_lattice_wire_get()

◆ DRW_cache_light_area_disk_lines_get()

◆ DRW_cache_light_area_square_lines_get()

◆ DRW_cache_light_icon_inner_lines_get()

◆ DRW_cache_light_icon_outer_lines_get()

◆ DRW_cache_light_icon_sun_rays_get()

◆ DRW_cache_light_point_lines_get()

◆ DRW_cache_light_spot_lines_get()

◆ DRW_cache_light_spot_volume_get()

◆ DRW_cache_light_sun_lines_get()

◆ DRW_cache_lightprobe_cube_get()

◆ DRW_cache_lightprobe_grid_get()

◆ DRW_cache_lightprobe_planar_get()

◆ DRW_cache_mesh_all_edges_get()

blender::gpu::Batch * DRW_cache_mesh_all_edges_get ( Object * ob)

Definition at line 2856 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by DRW_cache_object_all_edges_get().

◆ DRW_cache_mesh_all_verts_get()

◆ DRW_cache_mesh_edge_detection_get()

blender::gpu::Batch * DRW_cache_mesh_edge_detection_get ( Object * ob,
bool * r_is_manifold )

◆ DRW_cache_mesh_face_wireframe_get()

blender::gpu::Batch * DRW_cache_mesh_face_wireframe_get ( Object * ob)

◆ DRW_cache_mesh_loose_edges_get()

blender::gpu::Batch * DRW_cache_mesh_loose_edges_get ( Object * ob)

◆ DRW_cache_mesh_surface_edges_get()

blender::gpu::Batch * DRW_cache_mesh_surface_edges_get ( Object * ob)

◆ DRW_cache_mesh_surface_get()

◆ DRW_cache_mesh_surface_mesh_analysis_get()

blender::gpu::Batch * DRW_cache_mesh_surface_mesh_analysis_get ( Object * ob)

◆ DRW_cache_mesh_surface_sculptcolors_get()

blender::gpu::Batch * DRW_cache_mesh_surface_sculptcolors_get ( Object * ob)

Definition at line 2922 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by blender::workbench::Instance::mesh_sync().

◆ DRW_cache_mesh_surface_shaded_get()

blender::gpu::Batch ** DRW_cache_mesh_surface_shaded_get ( Object * ob,
GPUMaterial ** gpumat_array,
uint gpumat_array_len )

Return list of batches with length equal to max(1, totcol).

Definition at line 2891 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by DRW_cache_object_surface_material_get(), and blender::draw::overlay::Prepass::object_sync().

◆ DRW_cache_mesh_surface_texpaint_get()

blender::gpu::Batch ** DRW_cache_mesh_surface_texpaint_get ( Object * ob)

Return list of batches with length equal to max(1, totcol).

Definition at line 2901 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by blender::workbench::Instance::mesh_sync().

◆ DRW_cache_mesh_surface_texpaint_single_get()

blender::gpu::Batch * DRW_cache_mesh_surface_texpaint_single_get ( Object * ob)

◆ DRW_cache_mesh_surface_vertpaint_get()

blender::gpu::Batch * DRW_cache_mesh_surface_vertpaint_get ( Object * ob)

Definition at line 2915 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by blender::workbench::Instance::mesh_sync().

◆ DRW_cache_mesh_surface_viewer_attribute_get()

blender::gpu::Batch * DRW_cache_mesh_surface_viewer_attribute_get ( Object * ob)

Definition at line 2950 of file draw_cache.cc.

References BLI_assert, Object::data, OB_MESH, and Object::type.

Referenced by populate_cache_for_geometry().

◆ DRW_cache_mesh_surface_weights_get()

blender::gpu::Batch * DRW_cache_mesh_surface_weights_get ( Object * ob)

◆ DRW_cache_normal_arrow_get()

◆ DRW_cache_object_all_edges_get()

blender::gpu::Batch * DRW_cache_object_all_edges_get ( Object * ob)

Definition at line 863 of file draw_cache.cc.

References DRW_cache_mesh_all_edges_get(), OB_MESH, and Object::type.

Referenced by basic_cache_populate().

◆ DRW_cache_object_edge_detection_get()

blender::gpu::Batch * DRW_cache_object_edge_detection_get ( Object * ob,
bool * r_is_manifold )

◆ DRW_cache_object_face_wireframe_get()

blender::gpu::Batch * DRW_cache_object_face_wireframe_get ( const Scene * scene,
Object * ob )

◆ DRW_cache_object_loose_edges_get()

blender::gpu::Batch * DRW_cache_object_loose_edges_get ( Object * ob)

Definition at line 901 of file draw_cache.cc.

References DRW_cache_mesh_loose_edges_get(), OB_MESH, and Object::type.

◆ DRW_cache_object_material_count_get()

◆ DRW_cache_object_pos_vertbuf_get()

blender::gpu::VertBuf * DRW_cache_object_pos_vertbuf_get ( Object * ob)

Returns the vertbuf used by shaded surface batch.

Definition at line 921 of file draw_cache.cc.

References BKE_object_get_evaluated_mesh_no_subsurf_unchecked(), Object::data, OB_MESH, and Object::type.

Referenced by blender::eevee::VelocityModule::step_object_sync().

◆ DRW_cache_object_surface_get()

◆ DRW_cache_object_surface_material_get()

blender::gpu::Batch ** DRW_cache_object_surface_material_get ( Object * ob,
GPUMaterial ** gpumat_array,
uint gpumat_array_len )

◆ DRW_cache_particles_get_dots()

blender::gpu::Batch * DRW_cache_particles_get_dots ( Object * object,
ParticleSystem * psys )

◆ DRW_cache_particles_get_edit_inner_points()

blender::gpu::Batch * DRW_cache_particles_get_edit_inner_points ( Object * object,
ParticleSystem * psys,
PTCacheEdit * edit )

◆ DRW_cache_particles_get_edit_strands()

blender::gpu::Batch * DRW_cache_particles_get_edit_strands ( Object * object,
ParticleSystem * psys,
PTCacheEdit * edit,
bool use_weight )

◆ DRW_cache_particles_get_edit_tip_points()

blender::gpu::Batch * DRW_cache_particles_get_edit_tip_points ( Object * object,
ParticleSystem * psys,
PTCacheEdit * edit )

◆ DRW_cache_particles_get_hair()

◆ DRW_cache_particles_get_prim()

◆ DRW_cache_plain_axes_get()

◆ drw_cache_procedural_lines_get()

◆ drw_cache_procedural_points_get()

◆ drw_cache_procedural_triangle_strips_get()

◆ drw_cache_procedural_triangles_get()

◆ DRW_cache_quad_get()

◆ DRW_cache_quad_wires_get()

◆ DRW_cache_single_arrow_get()

◆ DRW_cache_speaker_get()

◆ DRW_cache_sphere_get()

◆ DRW_cache_surf_edge_wire_get()

blender::gpu::Batch * DRW_cache_surf_edge_wire_get ( Object * ob)

◆ DRW_cache_text_edge_wire_get()

◆ DRW_cdlayer_attr_aliases_add()

void DRW_cdlayer_attr_aliases_add ( GPUVertFormat * format,
const char * base_name,
const int data_type,
const char * layer_name,
bool is_active_render,
bool is_active_layer )

◆ DRW_gpencil_dummy_buffer_get()

◆ DRW_shape_cache_free()

◆ extra_vert_format()

◆ light_distance_z_get()

static float light_distance_z_get ( char axis,
const bool start )
static

◆ sphere_lat_lon_vert()

static void sphere_lat_lon_vert ( blender::gpu::VertBuf * vbo,
int * v_ofs,
float lat,
float lon )
static

Definition at line 509 of file draw_cache.cc.

References cosf, GPU_vertbuf_vert_set(), sinf, VCLASS_EMPTY_SCALED, x, y, and z().

Referenced by DRW_cache_sphere_get().

◆ sphere_wire_vbo()

Variable Documentation

◆ axis_marker

float axis_marker[8][2]
static
Initial value:
= {
{-S_X, 0.0f},
{0.0f, S_Y},
{0.0f, S_Y},
{S_X, 0.0f},
{S_X, 0.0f},
{0.0f, -S_Y},
{0.0f, -S_Y},
{-S_X, 0.0f}
}
#define S_X
#define S_Y

Definition at line 2505 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get(), and blender::draw::overlay::ShapeCache::ShapeCache().

◆ bone_box_solid_normals

const float bone_box_solid_normals[12][3]
static
Initial value:
= {
{0.0f, -1.0f, 0.0f},
{0.0f, -1.0f, 0.0f},
{1.0f, 0.0f, 0.0f},
{1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, -1.0f},
{0.0f, 0.0f, -1.0f},
{-1.0f, 0.0f, 0.0f},
{-1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 1.0f},
{0.0f, 0.0f, 1.0f},
{0.0f, 1.0f, 0.0f},
{0.0f, 1.0f, 0.0f},
}

Definition at line 700 of file draw_cache.cc.

Referenced by DRW_cache_bone_box_get().

◆ bone_box_solid_tris

const uint bone_box_solid_tris[12][3]
static
Initial value:
= {
{0, 2, 1},
{0, 3, 2},
{0, 1, 5},
{0, 5, 4},
{1, 2, 6},
{1, 6, 5},
{2, 3, 7},
{2, 7, 6},
{3, 0, 4},
{3, 4, 7},
{4, 5, 6},
{4, 6, 7},
}

Definition at line 638 of file draw_cache.cc.

Referenced by DRW_cache_bone_box_get(), DRW_cache_camera_volume_get(), and DRW_cache_cube_get().

◆ bone_box_verts

const float bone_box_verts[8][3]
static
Initial value:
= {
{1.0f, 0.0f, 1.0f},
{1.0f, 0.0f, -1.0f},
{-1.0f, 0.0f, -1.0f},
{-1.0f, 0.0f, 1.0f},
{1.0f, 1.0f, 1.0f},
{1.0f, 1.0f, -1.0f},
{-1.0f, 1.0f, -1.0f},
{-1.0f, 1.0f, 1.0f},
}

Definition at line 615 of file draw_cache.cc.

Referenced by DRW_cache_bone_box_get(), DRW_cache_camera_volume_get(), DRW_cache_camera_volume_wire_get(), DRW_cache_cube_get(), and DRW_cache_empty_cube_get().

◆ bone_box_wire

const uint bone_box_wire[24]
static
Initial value:
= {
0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7,
}

Definition at line 626 of file draw_cache.cc.

Referenced by DRW_cache_camera_volume_wire_get(), and DRW_cache_empty_cube_get().

◆ bone_box_wire_lines_adjacency

const uint bone_box_wire_lines_adjacency[12][4]
static
Initial value:
= {
{4, 2, 0, 11},
{0, 1, 2, 8},
{2, 4, 1, 14},
{1, 0, 4, 20},
{0, 8, 11, 14},
{2, 14, 8, 20},
{1, 20, 14, 11},
{4, 11, 20, 8},
{20, 0, 11, 2},
{11, 2, 8, 1},
{8, 1, 14, 4},
{14, 4, 20, 0},
}

Store indices of generated verts from bone_box_solid_tris to define adjacency infos. See bone_octahedral_solid_tris for more infos.

Definition at line 662 of file draw_cache.cc.

Referenced by DRW_cache_bone_box_wire_get().

◆ bone_octahedral_solid_normals

const float bone_octahedral_solid_normals[8][3]
static
Initial value:
= {
{M_SQRT1_2, -M_SQRT1_2, 0.00000000f},
{-0.00000000f, -M_SQRT1_2, -M_SQRT1_2},
{-M_SQRT1_2, -M_SQRT1_2, 0.00000000f},
{0.00000000f, -M_SQRT1_2, M_SQRT1_2},
{0.99388373f, 0.11043154f, -0.00000000f},
{0.00000000f, 0.11043154f, -0.99388373f},
{-0.99388373f, 0.11043154f, 0.00000000f},
{0.00000000f, 0.11043154f, 0.99388373f},
}
#define M_SQRT1_2

Definition at line 2037 of file draw_cache.cc.

Referenced by DRW_cache_bone_octahedral_get().

◆ bone_octahedral_solid_tris

const uint bone_octahedral_solid_tris[8][3]
static
Initial value:
= {
{2, 1, 0},
{3, 2, 0},
{4, 3, 0},
{1, 4, 0},
{5, 1, 2},
{5, 2, 3},
{5, 3, 4},
{5, 4, 1},
}

Definition at line 1984 of file draw_cache.cc.

Referenced by DRW_cache_bone_octahedral_get().

◆ bone_octahedral_verts

const float bone_octahedral_verts[6][3]
static
Initial value:
= {
{0.0f, 0.0f, 0.0f},
{0.1f, 0.1f, 0.1f},
{0.1f, 0.1f, -0.1f},
{-0.1f, 0.1f, -0.1f},
{-0.1f, 0.1f, 0.1f},
{0.0f, 1.0f, 0.0f},
}

Definition at line 1962 of file draw_cache.cc.

Referenced by DRW_cache_bone_octahedral_get().

◆ bone_octahedral_wire_lines_adjacency

const uint bone_octahedral_wire_lines_adjacency[12][4]
static
Initial value:
= {
{0, 1, 2, 6},
{0, 12, 1, 6},
{0, 3, 12, 6},
{0, 2, 3, 6},
{1, 6, 2, 3},
{1, 12, 6, 3},
{1, 0, 12, 3},
{1, 2, 0, 3},
{2, 0, 1, 12},
{2, 3, 0, 12},
{2, 6, 3, 12},
{2, 1, 6, 12},
}

Store indices of generated verts from bone_octahedral_solid_tris to define adjacency infos. Example: triangle {2, 1, 0} is adjacent to {3, 2, 0}, {1, 4, 0} and {5, 1, 2}. {2, 1, 0} becomes {0, 1, 2} {3, 2, 0} becomes {3, 4, 5} {1, 4, 0} becomes {9, 10, 11} {5, 1, 2} becomes {12, 13, 14} According to opengl specification it becomes (starting from the first vertex of the first face aka. vertex 2): {0, 12, 1, 10, 2, 3}

Definition at line 2007 of file draw_cache.cc.

Referenced by DRW_cache_bone_octahedral_wire_get().

◆ SHC

struct DRWShapeCache SHC = {nullptr}
static

Referenced by DRW_cache_bone_arrows_get(), DRW_cache_bone_box_get(), DRW_cache_bone_box_wire_get(), DRW_cache_bone_dof_lines_get(), DRW_cache_bone_dof_sphere_get(), DRW_cache_bone_envelope_outline_get(), DRW_cache_bone_envelope_solid_get(), DRW_cache_bone_octahedral_get(), DRW_cache_bone_octahedral_wire_get(), DRW_cache_bone_point_get(), DRW_cache_bone_point_wire_outline_get(), DRW_cache_bone_stick_get(), DRW_cache_camera_distances_get(), DRW_cache_camera_frame_get(), DRW_cache_camera_tria_get(), DRW_cache_camera_tria_wire_get(), DRW_cache_camera_volume_get(), DRW_cache_camera_volume_wire_get(), DRW_cache_circle_get(), DRW_cache_cube_get(), DRW_cache_cursor_get(), DRW_cache_empty_capsule_body_get(), DRW_cache_empty_capsule_cap_get(), DRW_cache_empty_cone_get(), DRW_cache_empty_cube_get(), DRW_cache_empty_cylinder_get(), DRW_cache_empty_sphere_get(), DRW_cache_field_cone_limit_get(), DRW_cache_field_curve_get(), DRW_cache_field_force_get(), DRW_cache_field_sphere_limit_get(), DRW_cache_field_tube_limit_get(), DRW_cache_field_vortex_get(), DRW_cache_field_wind_get(), DRW_cache_fullscreen_quad_get(), DRW_cache_grid_get(), DRW_cache_groundline_get(), DRW_cache_light_area_disk_lines_get(), DRW_cache_light_area_square_lines_get(), DRW_cache_light_icon_inner_lines_get(), DRW_cache_light_icon_outer_lines_get(), DRW_cache_light_icon_sun_rays_get(), DRW_cache_light_point_lines_get(), DRW_cache_light_spot_lines_get(), DRW_cache_light_spot_volume_get(), DRW_cache_light_sun_lines_get(), DRW_cache_lightprobe_cube_get(), DRW_cache_lightprobe_grid_get(), DRW_cache_lightprobe_planar_get(), DRW_cache_normal_arrow_get(), DRW_cache_particles_get_prim(), DRW_cache_plain_axes_get(), drw_cache_procedural_lines_get(), drw_cache_procedural_points_get(), drw_cache_procedural_triangle_strips_get(), drw_cache_procedural_triangles_get(), DRW_cache_quad_get(), DRW_cache_quad_wires_get(), DRW_cache_single_arrow_get(), DRW_cache_speaker_get(), DRW_cache_sphere_get(), DRW_gpencil_dummy_buffer_get(), and DRW_shape_cache_free().

◆ staticSine

const float staticSine[16]
static
Initial value:
= {
0.0f,
0.104528463268f,
0.207911690818f,
0.309016994375f,
0.406736643076f,
0.5f,
0.587785252292f,
0.669130606359f,
0.743144825477f,
0.809016994375f,
0.866025403784f,
0.913545457643f,
0.951056516295f,
0.978147600734f,
0.994521895368f,
1.0f,
}

Definition at line 2571 of file draw_cache.cc.

Referenced by DRW_cache_bone_dof_lines_get(), and DRW_cache_bone_dof_sphere_get().

◆ x_axis_name

float x_axis_name[4][2]
static
Initial value:
= {
{0.9f * S_X, 1.0f * S_Y},
{-1.0f * S_X, -1.0f * S_Y},
{-0.9f * S_X, 1.0f * S_Y},
{1.0f * S_X, -1.0f * S_Y},
}

Definition at line 2461 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get(), and blender::draw::overlay::ShapeCache::ShapeCache().

◆ y_axis_name

float y_axis_name[6][2]
static
Initial value:
= {
{-1.0f * S_X, 1.0f * S_Y},
{0.0f * S_X, -0.1f * S_Y},
{1.0f * S_X, 1.0f * S_Y},
{0.0f * S_X, -0.1f * S_Y},
{0.0f * S_X, -0.1f * S_Y},
{0.0f * S_X, -1.0f * S_Y},
}

Definition at line 2473 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get(), and blender::draw::overlay::ShapeCache::ShapeCache().

◆ z_axis_name

float z_axis_name[10][2]
static
Initial value:
= {
{-0.95f * S_X, 1.00f * S_Y},
{0.95f * S_X, 1.00f * S_Y},
{0.95f * S_X, 1.00f * S_Y},
{0.95f * S_X, 0.90f * S_Y},
{0.95f * S_X, 0.90f * S_Y},
{-1.00f * S_X, -0.90f * S_Y},
{-1.00f * S_X, -0.90f * S_Y},
{-1.00f * S_X, -1.00f * S_Y},
{-1.00f * S_X, -1.00f * S_Y},
{1.00f * S_X, -1.00f * S_Y},
}

Definition at line 2487 of file draw_cache.cc.

Referenced by DRW_cache_bone_arrows_get(), and blender::draw::overlay::ShapeCache::ShapeCache().