81 for (
int i = 0; i < 2; i++) {
96 DRWPass *extra_ps = *p_extra_ps;
98#define BUF_INSTANCE DRW_shgroup_call_buffer_instance
99#define BUF_POINT(grp, format) DRW_shgroup_call_buffer(grp, format, GPU_PRIM_POINTS)
100#define BUF_LINE(grp, format) DRW_shgroup_call_buffer(grp, format, GPU_PRIM_LINES)
238 const float start[3],
240 const float color[4])
247 const float start[3],
263 blender::gpu::Batch *geom,
264 const float mat[4][4],
265 const float color[4])
267 float draw_mat[4][4];
273 blender::gpu::Batch *geom,
274 const float mat[4][4],
275 const float color[4])
277 float draw_mat[4][4];
288 const float mat[4][4],
289 const float draw_size,
290 const char draw_type,
291 const float color[4])
293 float instdata[4][4];
363 float tmp[4][4], final_mat[4][4];
379 mul_m4_m4m4(tmp, ob->object_to_world().ptr(), tmp);
383 size[0] =
max_fff(size[0], size[1], size[2]);
384 size[1] = size[2] = size[0];
387 mul_m4_m4m4(tmp, ob->object_to_world().ptr(), tmp);
391 size[0] =
max_ff(size[0], size[1]);
395 mul_m4_m4m4(tmp, ob->object_to_world().ptr(), tmp);
399 size[0] =
max_ff(size[0], size[1]);
405 tmp[3][2] -= size[2];
406 mul_m4_m4m4(tmp, ob->object_to_world().ptr(), tmp);
410 size[0] =
max_ff(size[0], size[1]);
414 tmp[3][2] = center[2] +
max_ff(0.0f, size[2] - size[0]);
415 mul_m4_m4m4(final_mat, ob->object_to_world().ptr(), tmp);
418 tmp[3][2] = center[2] -
max_ff(0.0f, size[2] - size[0]);
419 mul_m4_m4m4(final_mat, ob->object_to_world().ptr(), tmp);
421 tmp[2][2] =
max_ff(0.0f, size[2] * 2.0f - size[0] * 2.0f);
422 mul_m4_m4m4(final_mat, ob->object_to_world().ptr(), tmp);
451 if (ob->
data ==
nullptr) {
455 ID *ob_data =
static_cast<ID *
>(ob->
data);
456 float *texcoloc =
nullptr;
457 float *texcosize =
nullptr;
459 switch (
GS(ob_data->
name)) {
488 if (texcoloc !=
nullptr && texcosize !=
nullptr) {
496 mul_m4_m4m4(mat, ob->object_to_world().ptr(), mat);
511 float _pad00[3], size_x;
512 float _pad01[3], size_y;
513 float _pad02[3], size_z;
514 float pos[3], _pad03[1];
518 copy_m4_m4(instdata.mat, ob->object_to_world().ptr());
519 instdata.size_x = instdata.size_y = instdata.size_z = ob->
empty_drawsize;
530 instdata.size_y = (pd->
f_strength < 0.0f) ? -instdata.size_y : instdata.size_y;
535 instdata.size_x = instdata.size_y = instdata.size_z = pd->
f_strength;
538 copy_v3_v3(instdata.pos, ob->object_to_world().location());
543 copy_v3_v3(instdata.pos, ob->object_to_world().location());
547 copy_v3_v3(instdata.pos, ob->object_to_world().location());
556 instdata.size_y = instdata.size_x;
562 instdata.size_y = instdata.size_x;
570 instdata.size_x = distance *
sinf(radius);
571 instdata.size_z = distance *
cosf(radius);
572 instdata.size_y = instdata.size_x;
578 instdata.size_x = distance *
sinf(radius);
579 instdata.size_z = distance *
cosf(radius);
580 instdata.size_y = instdata.size_x;
586 instdata.size_x = instdata.size_y = instdata.size_z = pd->
maxdist;
590 instdata.size_x = instdata.size_y = instdata.size_z = pd->
mindist;
613 float theme_color[4] = {
UNPACK3(color_p), 1.0f};
628 float _pad02[3], clip_sta;
629 float pos[3], clip_end;
633 copy_m4_m4(instdata.mat, ob->object_to_world().ptr());
639 instdata.clip_sta = la->
clipsta;
643 float light_color[4] = {1.0f};
645 if (show_light_colors) {
651 cb->
light_icon_outer, show_light_colors ? light_color : theme_color, &instdata);
655 instdata.area_size_x = instdata.area_size_y = la->
radius;
666 const float3 scale_vec = {10.0f, 10.0f, 10.0f};
677 float c = a *
b - a -
b;
681 instdata.spot_blend =
sqrtf((a2 - a2 * c2) / (c2 - a2 * c2));
682 instdata.spot_cosine = a;
688 const float color_inside[4] = {0.0f, 0.0f, 0.0f, 0.5f};
689 const float color_outside[4] = {1.0f, 1.0f, 1.0f, 0.3f};
729 float _pad02[3], clip_sta;
730 float pos[3], clip_end;
734 copy_m4_m4(instdata.mat, ob->object_to_world().ptr());
738 instdata.clip_sta = show_clipping ? prb->
clipsta : -1.0;
739 instdata.clip_end = show_clipping ? prb->
clipend : -1.0;
743 if (show_influence) {
758 instdata.clip_sta = show_clipping ? 0.0f : -1.0f;
759 instdata.clip_end = show_clipping ? prb->
clipend : -1.0f;
764 float3 axes_len = to_scale(ob->object_to_world());
768 float4x4 surfel_density_mat = from_loc_rot_scale<float4x4>(
769 float3(-1.0f + local_surfel_size), Quaternion::identity(),
float3(local_surfel_size));
770 surfel_density_mat = ob->object_to_world() * surfel_density_mat;
775 if (show_influence) {
786 instdata.mat[3][3] = 1.0;
789 instdata.mat[3][3] = 2.0;
806 if (show_influence) {
889 if (clip ==
nullptr) {
900 float bundle_color_custom[4];
903 uchar text_color_selected[4], text_color_unselected[4];
908 float camera_mat[4][4];
912 float tracking_object_mat[4][4];
921 float object_mat[4][4];
923 tracking, tracking_object, framenr, object_mat);
925 float object_imat[4][4];
928 mul_m4_m4m4(tracking_object_mat, ob->object_to_world().ptr(), object_imat);
937 float bundle_mat[4][4];
939 translate_m4(bundle_mat, track->bundle_pos[0], track->bundle_pos[1], track->bundle_pos[2]);
941 const float *bundle_color;
946 bundle_color_custom[3] = 1.0;
948 bundle_color = bundle_color_custom;
950 else if (is_solid_bundle) {
951 bundle_color = bundle_color_solid;
953 else if (is_selected) {
954 bundle_color =
color;
957 bundle_color = bundle_color_unselected;
965 if (is_solid_bundle) {
970 const float bundle_color_v4[4] = {
994 is_selected ? text_color_selected : text_color_unselected);
1030 const float delta_shiftx = shiftx - cam->
shiftx;
1031 const float width = instdata->
corner_x * 2.0f;
1032 return delta_shiftx * width;
1056 if (!is_stereo3d_cameras) {
1061 for (
int eye = 0; eye < 2; eye++) {
1071 if (is_stereo3d_cameras) {
1078 if (is_stereo3d_volume && !is_select) {
1079 float r = (eye == 1) ? 2.0f : 1.0f;
1097 if (is_stereo3d_plane && !is_select) {
1105 for (
int i = 0; i < 2; i++) {
1118 for (
int i = 0; i < 2; i++) {
1155 const bool is_active = (ob == camera_object);
1158 const bool is_multiview = (scene->r.scemode &
R_MULTIVIEW) != 0;
1160 const bool is_stereo3d_display_extra = is_active && is_multiview && (!look_through) &&
1162 const bool is_selection_camera_stereo = is_select && look_through && is_multiview &&
1165 float vec[4][3], asp[2], shift[2], scale[3], drawsize, center[2], corner[2];
1174 if (is_selection_camera_stereo) {
1179 len_v3(ob->object_to_world().ptr()[0]),
1180 len_v3(ob->object_to_world().ptr()[1]),
1181 len_v3(ob->object_to_world().ptr()[2]));
1183 if (
ELEM(0.0f, scale[0], scale[1], scale[2])) {
1190 scene, cam, cam->
drawsize, look_through, scale, asp, shift, &drawsize, vec);
1194 for (
int i = 0; i < 4; i++) {
1207 instdata.
depth = vec[0][2];
1218 for (
int i = 0; i < 4; i++) {
1229 if (is_stereo3d_display_extra) {
1237 if (!look_through) {
1239 float tria_size = 0.7f * drawsize /
fabsf(instdata.
depth);
1240 float tria_margin = 0.1f * drawsize /
fabsf(instdata.
depth);
1242 instdata.
center_y = center[1] + instdata.
corner_y + tria_margin + tria_size;
1260 World *world = scene->world;
1263 instdata.
focus = 1.0f;
1264 instdata.
mist_sta = world->miststa;
1265 instdata.
mist_end = world->miststa + world->mistdist;
1296 float *parent_pos = ob->
runtime->parent_display_origin;
1308 cb, hmd->
object->object_to_world().location(), center, relation_color);
1320 cb, hmd->
object->object_to_world().location(), center, relation_color);
1331 rbc_ob1->object_to_world().location(),
1332 ob->object_to_world().location(),
1337 rbc_ob2->object_to_world().location(),
1338 ob->object_to_world().location(),
1358 camob = data->camera ? data->camera : scene->camera;
1362 camob = data->camera ? data->camera : scene->camera;
1367 camob->object_to_world().location(),
1368 ob->object_to_world().location(),
1374 ListBase targets = {
nullptr,
nullptr};
1391 cb, ct->matrix[3], ob->object_to_world().location(), constraint_color);
1438 float voxel_cubemat[4][4] = {{0.0f}};
1440 voxel_cubemat[0][0] = fds->
cell_size[0] / 2.0f;
1441 voxel_cubemat[1][1] = fds->
cell_size[1] / 2.0f;
1442 voxel_cubemat[2][2] = fds->
cell_size[2] / 2.0f;
1443 voxel_cubemat[3][3] = 1.0f;
1448 mul_m4_m4m4(voxel_cubemat, ob->object_to_world().ptr(), voxel_cubemat);
1453 int slice_axis = -1;
1456 float viewinv[4][4];
1464 if (draw_velocity) {
1478 line_count *= fds->
res[0] * fds->
res[1] * fds->
res[2];
1481 line_count /= fds->
res[slice_axis];
1509 if (show_gridlines) {
1519 if (color_with_flags || color_range) {
1533 const int line_count = 4 * fds->
res[0] * fds->
res[1] * fds->
res[2] / fds->
res[slice_axis];
1537 if (draw_velocity || show_gridlines) {
1574 ob->object_to_world().location(),
1593 const bool is_paint_mode = (draw_ctx->
object_mode &
1598 const bool has_texspace = has_bounds &&
1602 const bool draw_obcenters = !is_paint_mode &&
1604 const bool draw_texspace = (ob->
dtx &
OB_TEXSPACE) && has_texspace;
1606 const bool draw_bounds = has_bounds && ((ob->
dt ==
OB_BOUNDBOX) ||
1612 const bool draw_volume = !from_dupli &&
1632 const float color_xform[4] = {0.15f, 0.15f, 0.15f, 0.7f};
1637 if (draw_obcenters) {
1640 if (draw_relations) {
1646 if (draw_texspace) {
bool BKE_where_on_path(const struct Object *ob, float ctime, float r_vec[4], float r_dir[3], float r_quat[4], float *r_radius, float *r_weight)
Camera data-block and utility functions.
float BKE_camera_multiview_shift_x(const struct RenderData *rd, const struct Object *camera, const char *viewname)
float BKE_camera_object_dof_distance(const struct Object *ob)
struct Object * BKE_camera_multiview_render(const struct Scene *scene, struct Object *camera, const char *viewname)
void BKE_camera_multiview_model_matrix(const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_modelmat[4][4])
void BKE_camera_multiview_model_matrix_scaled(const struct RenderData *rd, const struct Object *camera, const char *viewname, float r_modelmat[4][4])
void BKE_camera_view_frame_ex(const struct Scene *scene, const struct Camera *camera, float drawsize, bool do_clip, const float scale[3], float r_asp[2], float r_shift[2], float *r_drawsize, float r_vec[4][3])
void BKE_constraint_targets_flush(struct bConstraint *con, struct ListBase *targets, bool no_copy)
int BKE_constraint_targets_get(struct bConstraint *con, struct ListBase *r_targets)
void BKE_constraint_custom_object_space_init(struct bConstraintOb *cob, struct bConstraint *con)
const bConstraintTypeInfo * BKE_constraint_typeinfo_get(struct bConstraint *con)
struct bConstraintOb * BKE_constraints_make_evalob(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, void *subdata, short datatype)
void BKE_curve_texspace_ensure(Curve *cu)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_active_object_get(const ViewLayer *view_layer)
bool BKE_mball_is_basis(const Object *ob)
void BKE_mesh_texspace_get_reference(Mesh *mesh, char **r_texspace_flag, float **r_texspace_location, float **r_texspace_size)
bool BKE_modifier_is_enabled(const Scene *scene, ModifierData *md, int required_mode)
ModifierData * BKE_modifiers_findby_type(const Object *ob, ModifierType type)
float BKE_movieclip_remap_scene_to_clip_frame(const struct MovieClip *clip, float framenr)
General operations, lookup, etc. for blender objects.
MovieClip * BKE_object_movieclip_get(Scene *scene, const Object *ob, bool use_default)
std::optional< blender::Bounds< blender::float3 > > BKE_object_boundbox_get(const Object *ob)
void BKE_tracking_get_camera_object_matrix(const struct Object *camera_object, float mat[4][4])
#define TRACK_SELECTED(track)
void BKE_tracking_camera_get_reconstructed_interpolate(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, float framenr, float mat[4][4])
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
MINLINE float max_fff(float a, float b, float c)
MINLINE float max_ff(float a, float b)
void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
MINLINE int axis_dominant_v3_single(const float vec[3])
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void normalize_m4_m4(float rmat[4][4], const float mat[4][4]) ATTR_NONNULL()
void unit_m4(float m[4][4])
void translate_m4(float mat[4][4], float Tx, float Ty, float Tz)
void rescale_m4(float mat[4][4], const float scale[3])
void size_to_mat4(float R[4][4], const float size[3])
void mul_m4_v3(const float M[4][4], float r[3])
void scale_m4_fl(float R[4][4], float scale)
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void mul_v3_m4v3(float r[3], const float mat[4][4], const float vec[3])
bool invert_m4_m4(float inverse[4][4], const float mat[4][4])
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void copy_v2_fl2(float v[2], float x, float y)
MINLINE void madd_v3fl_v3fl_v3fl_v3i(float r[3], const float a[3], const float b[3], const int c[3])
MINLINE void mul_v3_v3(float r[3], const float a[3])
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void negate_v3(float r[3])
MINLINE void invert_v3(float r[3])
void mid_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void swap_v3_v3(float a[3], float b[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void zero_v3(float r[3])
MINLINE void add_v3_v3(float r[3], const float a[3])
MINLINE float normalize_v3_length(float n[3], float unit_length)
MINLINE float normalize_v3(float n[3])
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
float DEG_get_ctime(const Depsgraph *graph)
Object * DEG_get_evaluated_object(const Depsgraph *depsgraph, Object *object)
#define ID_IS_LINKED(_id)
#define ID_REAL_USERS(id)
@ CONSTRAINT_TAR_CUSTOM_SPACE
@ CONSTRAINT_TYPE_FOLLOWTRACK
@ CONSTRAINT_TYPE_OBJECTSOLVER
@ CONSTRAINT_OBTYPE_OBJECT
@ FLUID_DOMAIN_FIELD_FLAGS
@ FLUID_DISPLAY_INTERP_CLOSEST
@ FLUID_GRIDLINE_COLOR_TYPE_FLAGS
@ FLUID_GRIDLINE_COLOR_TYPE_RANGE
@ FLUID_DOMAIN_VECTOR_FIELD_FORCE
@ eGpencilModifierType_Hook
@ LIGHTPROBE_FLAG_SHOW_PARALLAX
@ LIGHTPROBE_FLAG_SHOW_CLIP_DIST
@ LIGHTPROBE_FLAG_SHOW_INFLUENCE
@ LIGHTPROBE_FLAG_SHOW_DATA
@ LIGHTPROBE_FLAG_CUSTOM_PARALLAX
#define OB_MODE_ALL_PAINT
#define OB_MODE_ALL_PAINT_GPENCIL
Types and defines for representing Rigid Body entities.
#define BASE_SELECTED(v3d, base)
@ SCE_VIEWS_FORMAT_STEREO_3D
#define STEREO_RIGHT_NAME
@ V3D_OVERLAY_HIDE_OBJECT_ORIGINS
@ V3D_OVERLAY_SHOW_LIGHT_COLORS
@ V3D_SHOW_RECONSTRUCTION
#define DRW_buffer_add_entry(buffer,...)
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_uniform_block(shgroup, name, ubo)
#define DRW_shgroup_call_obmat(shgroup, geom, obmat)
#define XRAY_FLAG_ENABLED(v3d)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
struct GPUShader GPUShader
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
local_group_size(16, 16) .push_constant(Type b
const Depsgraph * depsgraph
blender::gpu::Batch * DRW_cache_groundline_get()
blender::gpu::Batch * DRW_cache_field_sphere_limit_get()
blender::gpu::Batch * DRW_cache_lightprobe_cube_get()
blender::gpu::Batch * DRW_cache_light_icon_outer_lines_get()
blender::gpu::Batch * DRW_cache_field_vortex_get()
blender::gpu::Batch * DRW_cache_camera_volume_get()
blender::gpu::Batch * DRW_cache_empty_cube_get()
blender::gpu::Batch * DRW_cache_lightprobe_grid_get()
blender::gpu::Batch * DRW_cache_light_point_lines_get()
blender::gpu::Batch * DRW_cache_light_spot_lines_get()
blender::gpu::Batch * DRW_cache_field_force_get()
blender::gpu::Batch * DRW_cache_circle_get()
blender::gpu::Batch * DRW_cache_sphere_get(const eDRWLevelOfDetail level_of_detail)
blender::gpu::Batch * DRW_cache_camera_volume_wire_get()
blender::gpu::Batch * DRW_cache_light_area_square_lines_get()
blender::gpu::Batch * DRW_cache_field_cone_limit_get()
blender::gpu::Batch * DRW_cache_light_sun_lines_get()
blender::gpu::Batch * DRW_cache_empty_sphere_get()
blender::gpu::Batch * DRW_cache_light_icon_sun_rays_get()
blender::gpu::Batch * DRW_cache_field_curve_get()
blender::gpu::Batch * DRW_cache_field_wind_get()
blender::gpu::Batch * DRW_cache_bone_arrows_get()
blender::gpu::Batch * DRW_cache_single_arrow_get()
blender::gpu::Batch * DRW_cache_light_icon_inner_lines_get()
blender::gpu::Batch * DRW_cache_lightprobe_planar_get()
blender::gpu::Batch * DRW_cache_quad_get()
blender::gpu::Batch * DRW_cache_speaker_get()
blender::gpu::Batch * DRW_cache_camera_distances_get()
blender::gpu::Batch * DRW_cache_light_area_disk_lines_get()
blender::gpu::Batch * DRW_cache_camera_tria_wire_get()
blender::gpu::Batch * DRW_cache_quad_wires_get()
blender::gpu::Batch * DRW_cache_camera_frame_get()
blender::gpu::Batch * DRW_cache_light_spot_volume_get()
blender::gpu::Batch * DRW_cache_empty_cylinder_get()
blender::gpu::Batch * DRW_cache_empty_capsule_body_get()
blender::gpu::Batch * DRW_cache_camera_tria_get()
blender::gpu::Batch * DRW_cache_plain_axes_get()
blender::gpu::Batch * DRW_cache_field_tube_limit_get()
blender::gpu::Batch * DRW_cache_empty_cone_get()
blender::gpu::Batch * DRW_cache_empty_capsule_cap_get()
int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color)
float * DRW_color_background_blend_get(int theme_id)
void DRW_fluid_ensure_flags(FluidModifierData *fmd)
void DRW_fluid_ensure_range_field(FluidModifierData *fmd)
void DRW_smoke_ensure_velocity(FluidModifierData *fmd)
bool DRW_state_show_text()
DRWTextStore * DRW_text_cache_ensure()
int DRW_object_visibility_in_active_context(const Object *ob)
bool DRW_state_is_image_render()
DefaultTextureList * DRW_viewport_texture_list_get()
const DRWContextState * DRW_context_state_get()
bool DRW_state_is_select()
DRWShadingGroup * DRW_shgroup_create(GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_shgroup_state_disable(DRWShadingGroup *shgroup, DRWState state)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
void DRW_shgroup_uniform_ivec3_copy(DRWShadingGroup *shgroup, const char *name, const int *value)
void DRW_buffer_add_entry_struct(DRWCallBuffer *callbuf, const void *data)
void DRW_shgroup_state_enable(DRWShadingGroup *shgroup, DRWState state)
void DRW_shgroup_uniform_vec3_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
void DRW_shgroup_uniform_int_copy(DRWShadingGroup *shgroup, const char *name, const int value)
void DRW_shgroup_call_procedural_points(DRWShadingGroup *shgroup, const Object *ob, uint point_count)
void DRW_shgroup_call_procedural_lines(DRWShadingGroup *shgroup, const Object *ob, uint line_count)
void DRW_shgroup_uniform_vec4_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value)
void DRW_shgroup_uniform_mat4_copy(DRWShadingGroup *shgroup, const char *name, const float(*value)[4])
void DRW_view_viewmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_draw_pass(DRWPass *pass)
void DRW_select_load_id(uint id)
void DRW_text_cache_add(DRWTextStore *dt, const float co[3], const char *str, const int str_len, short xoffs, short yoffs, short flag, const uchar col[4], const bool shadow, const bool align_center)
@ DRW_TEXT_CACHE_GLOBALSPACE
@ DRW_TEXT_CACHE_STRING_PTR
@ DRW_STATE_IN_FRONT_SELECT
@ DRW_STATE_DEPTH_LESS_EQUAL
const ProjectiveReconstruction & reconstruction
void MEM_freeN(void *vmemh)
ccl_device_inline float reduce_max(const float2 a)
T midpoint(const T &a, const T &b)
void OVERLAY_image_camera_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_image_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_extra_wire(bool use_object, bool is_select)
GPUShader * OVERLAY_shader_volume_gridlines(bool color_with_flags, bool color_range)
GPUShader * OVERLAY_shader_extra_grid()
GPUShader * OVERLAY_shader_volume_velocity(bool use_needle, bool use_mac)
GPUShader * OVERLAY_shader_extra_point()
GPUShader * OVERLAY_shader_extra_loose_point()
GPUShader * OVERLAY_shader_extra(bool is_select)
BLI_INLINE void pack_v4_in_mat4(float rmat[4][4], const float mat[4][4], const float v[4])
OVERLAY_InstanceFormats * OVERLAY_shader_instance_formats_get()
GPUShader * OVERLAY_shader_extra_groundline()
BLI_INLINE void pack_fl_in_mat4(float rmat[4][4], const float mat[4][4], float a)
float convergence_distance
struct ListBase bg_images
struct CameraStereoSettings stereo
float texspace_location[3]
GPUUniformBuf * block_ubo
float gridlines_upper_bound
float gridlines_lower_bound
struct GPUTexture * tex_range_field
struct GPUTexture * tex_velocity_x
struct GPUTexture * tex_velocity_y
char gridlines_cell_filter
struct GPUTexture * tex_velocity_z
struct PointCache * point_cache[2]
struct GPUTexture * tex_flags
float gridlines_range_color[4]
char vector_scale_with_magnitude
char vector_draw_mac_components
char gridlines_color_field
struct FluidDomainSettings * domain
float4 color_bundle_solid
float4 color_library_select
OVERLAY_StorageList * stl
OVERLAY_TextureList * txl
DRWPass * extra_centers_ps
OVERLAY_ExtraCallBuffers extra_call_buffers[2]
DRWShadingGroup * extra_grid_grp
GPUTexture * dummy_depth_tx
struct Collection * instance_collection
ObjectRuntimeHandle * runtime
struct RigidBodyOb * rigidbody_object
ListBase greasepencil_modifiers
struct RigidBodyCon * rigidbody_constraint
float stereo3d_volume_alpha
float stereo3d_convergence_alpha
float space_obj_world_matrix[4][4]
void(* get_target_matrix)(struct Depsgraph *depsgraph, struct bConstraint *con, struct bConstraintOb *cob, struct bConstraintTarget *ct, float ctime)
const c_style_mat & ptr() const
ccl_device_inline float sqr(float a)