Blender  V3.3
overlay_private.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2019 Blender Foundation. */
3 
8 #pragma once
9 
10 #include "DRW_render.h"
11 
12 #include "overlay_shader_shared.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #ifdef __APPLE__
19 # define USE_GEOM_SHADER_WORKAROUND 1
20 #else
21 # define USE_GEOM_SHADER_WORKAROUND 0
22 #endif
23 
24 /* Needed for eSpaceImage_UVDT_Stretch and eMaskOverlayMode */
25 #include "DNA_mask_types.h"
26 #include "DNA_space_types.h"
27 /* Forward declarations */
28 struct ImBuf;
29 
30 typedef struct OVERLAY_FramebufferList {
39 
40 typedef struct OVERLAY_TextureList {
47 
48 #define NOT_IN_FRONT 0
49 #define IN_FRONT 1
50 
51 typedef enum OVERLAY_UVLineStyle {
58 
59 typedef struct OVERLAY_PassList {
125 
126 /* Data used by GLSL shader. */
127 typedef struct OVERLAY_ShadingData {
134  int data_mask[4];
136 
137 typedef struct OVERLAY_ExtraCallBuffers {
143 
149 
162 
166 
174 
176 
183 
185 
189 
191 
193 
197 
201 
204 
208 
211 
214 
216 
218 
222 
225 
230 
231 typedef struct OVERLAY_PrivateData {
286  DRWShadingGroup *wires_grp[2][2]; /* With and without coloring. */
287  DRWShadingGroup *wires_all_grp[2][2]; /* With and without coloring. */
288  DRWShadingGroup *wires_hair_grp[2][2]; /* With and without coloring. */
290 
300 
303 
306 
308 
319  short v3d_flag; /* TODO: move to #View3DOverlay. */
320  short v3d_gridflag; /* TODO: move to #View3DOverlay. */
321  int cfra;
325 
326  struct {
327  float grid_axes[3];
328  float zplane_axes[3];
330  } grid;
331  struct {
332  bool enabled;
336  struct {
340  struct {
341  float overlay_color[4];
343  struct {
345  bool do_faces;
346  bool do_edges;
350  int flag;
352  struct {
353  bool do_zbufclip;
355  struct {
359  struct {
367 
368  bool do_verts;
369  bool do_faces;
371 
372  float uv_opacity;
373 
374  int image_size[2];
375  float image_aspect[2];
376 
377  /* edge drawing */
379  float dash_length;
381 
382  /* stretching overlay */
383  float uv_aspect[2];
387 
388  /* stencil overlay */
392 
393  /* mask overlay */
398  struct {
404  struct {
405  bool in_front;
408  struct {
410  } mball;
411  struct {
412  double time;
415 } OVERLAY_PrivateData; /* Transient data */
416 
417 typedef struct OVERLAY_StorageList {
420 
421 typedef struct OVERLAY_Instance {
424 
425 typedef struct OVERLAY_Data {
426  void *engine_type;
431 
434 
435 typedef struct OVERLAY_DupliData {
442  short base_flag;
444 
445 typedef struct BoneInstanceData {
446  /* Keep sync with bone instance vertex format (OVERLAY_InstanceFormats) */
447  union {
448  float mat[4][4];
449  struct {
450  float _pad0[3], color_hint_a;
451  float _pad1[3], color_hint_b;
452  float _pad2[3], color_a;
453  float _pad3[3], color_b;
454  };
455  struct {
456  float _pad00[3], amin_a;
457  float _pad01[3], amin_b;
458  float _pad02[3], amax_a;
459  float _pad03[3], amax_b;
460  };
461  };
463 
464 typedef struct OVERLAY_InstanceFormats {
478 
479 /* Pack data into the last row of the 4x4 matrix. It will be decoded by the vertex shader. */
481  float rmat[4][4], const float mat[4][4], float a, float b, float c, float d)
482 {
483  copy_m4_m4(rmat, mat);
484  rmat[0][3] = a;
485  rmat[1][3] = b;
486  rmat[2][3] = c;
487  rmat[3][3] = d;
488 }
489 
490 BLI_INLINE void pack_v4_in_mat4(float rmat[4][4], const float mat[4][4], const float v[4])
491 {
492  pack_data_in_mat4(rmat, mat, v[0], v[1], v[2], v[3]);
493 }
494 
495 BLI_INLINE void pack_fl_in_mat4(float rmat[4][4], const float mat[4][4], float a)
496 {
497  copy_m4_m4(rmat, mat);
498  rmat[3][3] = a;
499 }
500 
509 
513 bool OVERLAY_armature_is_pose_mode(Object *ob, const struct DRWContextState *draw_ctx);
519 void OVERLAY_armature_draw(OVERLAY_Data *vedata);
522 void OVERLAY_pose_draw(OVERLAY_Data *vedata);
523 
526 
527 void OVERLAY_bone_instance_data_set_color_hint(BoneInstanceData *data, const float hint_color[4]);
528 void OVERLAY_bone_instance_data_set_color(BoneInstanceData *data, const float bone_color[4]);
529 
534 
538 void OVERLAY_gpencil_draw(OVERLAY_Data *vedata);
540 
545 
549 
552 void OVERLAY_volume_draw(OVERLAY_Data *vedata);
553 
558 
562 
563 void OVERLAY_edit_uv_init(OVERLAY_Data *vedata);
566 void OVERLAY_edit_uv_draw(OVERLAY_Data *vedata);
567 
571 void OVERLAY_extra_draw(OVERLAY_Data *vedata);
574 
580 
582 void OVERLAY_extra_point(OVERLAY_ExtraCallBuffers *cb, const float point[3], const float color[4]);
584  const float start[3],
585  const float end[3],
586  const float color[4]);
588  const float start[3],
589  const float end[3],
590  int color_id);
592  const float mat[4][4],
593  float draw_size,
594  char draw_type,
595  const float color[4]);
597  struct GPUBatch *geom,
598  const float mat[4][4],
599  const float color[4]);
601  struct GPUBatch *geom,
602  const float mat[4][4],
603  const float color[4]);
604 
608 void OVERLAY_facing_draw(OVERLAY_Data *vedata);
610 
614 void OVERLAY_fade_draw(OVERLAY_Data *vedata);
616 
622 
623 void OVERLAY_grid_init(OVERLAY_Data *vedata);
625 void OVERLAY_grid_draw(OVERLAY_Data *vedata);
626 
627 void OVERLAY_image_init(OVERLAY_Data *vedata);
632 void OVERLAY_image_draw(OVERLAY_Data *vedata);
640 
644 void OVERLAY_metaball_draw(OVERLAY_Data *vedata);
646 
650 
651 void OVERLAY_outline_init(OVERLAY_Data *vedata);
654  Object *ob,
655  OVERLAY_DupliData *dupli,
656  bool init_dupli);
657 void OVERLAY_outline_draw(OVERLAY_Data *vedata);
658 
659 void OVERLAY_paint_init(OVERLAY_Data *vedata);
664 void OVERLAY_paint_draw(OVERLAY_Data *vedata);
665 
668 void OVERLAY_particle_draw(OVERLAY_Data *vedata);
669 
672 void OVERLAY_sculpt_draw(OVERLAY_Data *vedata);
673 
677 
681  Object *ob,
682  OVERLAY_DupliData *dupli,
683  bool init_dupli);
686 
691 
696 GPUShader *OVERLAY_shader_armature_shape(bool use_outline);
698 GPUShader *OVERLAY_shader_armature_sphere(bool use_outline);
713 GPUShader *OVERLAY_shader_edit_mesh_edge(bool use_flat_interp);
731 GPUShader *OVERLAY_shader_extra(bool is_select);
733 GPUShader *OVERLAY_shader_extra_wire(bool use_object, bool is_select);
761 GPUShader *OVERLAY_shader_volume_velocity(bool use_needle, bool use_mac);
762 GPUShader *OVERLAY_shader_volume_gridlines(bool color_with_flags, bool color_range);
763 GPUShader *OVERLAY_shader_wireframe(bool custom_bias);
766 
768 
769 void OVERLAY_shader_free(void);
770 
771 #ifdef __cplusplus
772 }
773 #endif
eContextObjectMode
Definition: BKE_context.h:103
#define BLI_INLINE
void copy_m4_m4(float m1[4][4], const float m2[4][4])
Definition: math_matrix.c:77
eMaskOverlayMode
eSpaceImage_UVDT_Stretch
DRWState
Definition: DRW_render.h:298
GPUBatch
Definition: GPU_batch.h:78
struct GPUFrameBuffer GPUFrameBuffer
struct GPUShader GPUShader
Definition: GPU_shader.h:20
struct GPUTexture GPUTexture
Definition: GPU_texture.h:17
struct GPUUniformBuf GPUUniformBuf
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
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 Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input 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 a color
ATTR_WARN_UNUSED_RESULT const BMVert * v
static unsigned c
Definition: RandGen.cpp:83
static unsigned a[3]
Definition: RandGen.cpp:78
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void OVERLAY_sculpt_cache_populate(OVERLAY_Data *vedata, Object *ob)
struct OVERLAY_FramebufferList OVERLAY_FramebufferList
void OVERLAY_mode_transfer_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_gpencil_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_curve_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_lattice_wire(void)
void OVERLAY_paint_texture_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_paint_init(OVERLAY_Data *vedata)
Definition: overlay_paint.c:52
void OVERLAY_extra_line(OVERLAY_ExtraCallBuffers *cb, const float start[3], const float end[3], int color_id)
void OVERLAY_antialiasing_cache_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_uv_stretching_angle_get(void)
struct OVERLAY_ShadingData OVERLAY_ShadingData
void OVERLAY_edit_curves_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_sculpt_curves_selection(void)
void OVERLAY_gpencil_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_motion_path_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_lattice_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_fade_cache_populate(OVERLAY_Data *vedata, Object *ob)
Definition: overlay_fade.c:47
void OVERLAY_particle_draw(OVERLAY_Data *vedata)
BLI_INLINE void pack_data_in_mat4(float rmat[4][4], const float mat[4][4], float a, float b, float c, float d)
GPUShader * OVERLAY_shader_image(void)
void OVERLAY_armature_in_front_draw(OVERLAY_Data *vedata)
OVERLAY_ExtraCallBuffers * OVERLAY_extra_call_buffer_get(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_curve_handle(void)
void OVERLAY_shader_free(void)
void OVERLAY_sculpt_draw(OVERLAY_Data *vedata)
void OVERLAY_edit_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_wireframe_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_armature_degrees_of_freedom_wire(void)
void OVERLAY_grid_draw(OVERLAY_Data *vedata)
Definition: overlay_grid.c:299
void OVERLAY_fade_draw(OVERLAY_Data *vedata)
Definition: overlay_fade.c:71
void OVERLAY_fade_infront_draw(OVERLAY_Data *vedata)
Definition: overlay_fade.c:78
void OVERLAY_edit_uv_cache_init(OVERLAY_Data *vedata)
void OVERLAY_gpencil_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_gpencil_draw(OVERLAY_Data *vedata)
void OVERLAY_metaball_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_gpencil_guide_point(void)
void OVERLAY_grid_cache_init(OVERLAY_Data *vedata)
Definition: overlay_grid.c:205
GPUShader * OVERLAY_shader_edit_lattice_point(void)
GPUShader * OVERLAY_shader_edit_mesh_edge(bool use_flat_interp)
struct OVERLAY_Data OVERLAY_Data
GPUShader * OVERLAY_shader_paint_face(void)
void OVERLAY_armature_cache_finish(OVERLAY_Data *vedata)
void OVERLAY_extra_centers_draw(OVERLAY_Data *vedata)
void OVERLAY_edit_curve_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_uv_face_get(void)
GPUShader * OVERLAY_shader_armature_sphere(bool use_outline)
void OVERLAY_bone_instance_data_set_color_hint(BoneInstanceData *data, const float hint_color[4])
void OVERLAY_volume_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_wireframe(bool custom_bias)
GPUShader * OVERLAY_shader_edit_gpencil_point(void)
void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
void OVERLAY_extra_in_front_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_curve_wire(void)
GPUShader * OVERLAY_shader_outline_prepass(bool use_wire)
GPUShader * OVERLAY_shader_edit_mesh_facedot(void)
void OVERLAY_image_cache_init(OVERLAY_Data *vedata)
Definition: overlay_image.c:37
void OVERLAY_extra_loose_points(OVERLAY_ExtraCallBuffers *cb, struct GPUBatch *geom, const float mat[4][4], const float color[4])
GPUShader * OVERLAY_shader_extra_groundline(void)
void OVERLAY_antialiasing_cache_finish(OVERLAY_Data *vedata)
void OVERLAY_edit_lattice_draw(OVERLAY_Data *vedata)
void OVERLAY_edit_particle_cache_init(OVERLAY_Data *vedata)
void OVERLAY_empty_shape(OVERLAY_ExtraCallBuffers *cb, const float mat[4][4], float draw_size, char draw_type, const float color[4])
void OVERLAY_image_background_draw(OVERLAY_Data *vedata)
void OVERLAY_sculpt_curves_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_particle_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_curve_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_curves_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_extra_loose_point(void)
void OVERLAY_image_in_front_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_armature_degrees_of_freedom_solid(void)
void OVERLAY_image_scene_background_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_uv_stencil_image(void)
void OVERLAY_image_camera_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_fade_init(OVERLAY_Data *vedata)
void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
Definition: overlay_extra.c:47
void OVERLAY_metaball_in_front_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_gpencil_wire(void)
void OVERLAY_facing_infront_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_background(void)
void OVERLAY_wireframe_in_front_draw(OVERLAY_Data *vedata)
void OVERLAY_outline_cache_populate(OVERLAY_Data *vedata, Object *ob, OVERLAY_DupliData *dupli, bool init_dupli)
void OVERLAY_sculpt_curves_cache_init(OVERLAY_Data *vedata)
void OVERLAY_extra_wire(OVERLAY_ExtraCallBuffers *cb, struct GPUBatch *geom, const float mat[4][4], const float color[4])
void OVERLAY_antialiasing_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_grid_background(void)
GPUShader * OVERLAY_shader_clipbound(void)
void OVERLAY_edit_metaball_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_volume_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_volume_cache_init(OVERLAY_Data *vedata)
void OVERLAY_mode_transfer_cache_finish(OVERLAY_Data *vedata)
struct OVERLAY_DupliData OVERLAY_DupliData
void OVERLAY_edit_curves_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_uv_face_dots_get(void)
void OVERLAY_camera_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_xray_depth_copy(OVERLAY_Data *vedata)
void OVERLAY_motion_path_draw(OVERLAY_Data *vedata)
void OVERLAY_light_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_motion_path_vert(void)
void OVERLAY_image_cache_finish(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_particle_dot(void)
void OVERLAY_background_cache_init(OVERLAY_Data *vedata)
void OVERLAY_outline_draw(OVERLAY_Data *vedata)
OVERLAY_UVLineStyle
@ OVERLAY_UV_LINE_STYLE_DASH
@ OVERLAY_UV_LINE_STYLE_SHADOW
@ OVERLAY_UV_LINE_STYLE_WHITE
@ OVERLAY_UV_LINE_STYLE_OUTLINE
@ OVERLAY_UV_LINE_STYLE_BLACK
void OVERLAY_pose_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_paint_point(void)
GPUShader * OVERLAY_shader_paint_weight(bool shading)
GPUShader * OVERLAY_shader_edit_mesh_skin_root(void)
void OVERLAY_extra_line_dashed(OVERLAY_ExtraCallBuffers *cb, const float start[3], const float end[3], const float color[4])
GPUShader * OVERLAY_shader_extra_grid(void)
GPUShader * OVERLAY_shader_edit_uv_stretching_area_get(void)
void OVERLAY_outline_init(OVERLAY_Data *vedata)
void OVERLAY_pose_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_particle_shape(void)
GPUShader * OVERLAY_shader_motion_path_line(void)
GPUShader * OVERLAY_shader_edit_mesh_vert(void)
void OVERLAY_paint_cache_init(OVERLAY_Data *vedata)
Definition: overlay_paint.c:64
void OVERLAY_edit_mesh_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_uv_verts_get(void)
void OVERLAY_edit_lattice_cache_init(OVERLAY_Data *vedata)
void OVERLAY_motion_path_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_curves_cache_init(OVERLAY_Data *vedata)
void OVERLAY_outline_cache_init(OVERLAY_Data *vedata)
void OVERLAY_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
struct OVERLAY_ExtraCallBuffers OVERLAY_ExtraCallBuffers
void OVERLAY_image_draw(OVERLAY_Data *vedata)
void OVERLAY_facing_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_extra(bool is_select)
void OVERLAY_edit_surf_cache_populate(OVERLAY_Data *vedata, Object *ob)
struct BoneInstanceData BoneInstanceData
GPUShader * OVERLAY_shader_edit_particle_strand(void)
GPUShader * OVERLAY_shader_volume_velocity(bool use_needle, bool use_mac)
GPUShader * OVERLAY_shader_extra_wire(bool use_object, bool is_select)
GPUShader * OVERLAY_shader_sculpt_mask(void)
GPUShader * OVERLAY_shader_edit_uv_mask_image(void)
void OVERLAY_edit_mesh_init(OVERLAY_Data *vedata)
struct OVERLAY_ArmatureCallBuffersInner OVERLAY_ArmatureCallBuffersInner
GPUShader * OVERLAY_shader_armature_shape_wire(void)
void OVERLAY_facing_init(OVERLAY_Data *vedata)
void OVERLAY_gpencil_draw(OVERLAY_Data *vedata)
struct OVERLAY_ArmatureCallBuffers OVERLAY_ArmatureCallBuffers
void OVERLAY_extra_point(OVERLAY_ExtraCallBuffers *cb, const float point[3], const float color[4])
GPUShader * OVERLAY_shader_edit_uv_edges_get(void)
GPUShader * OVERLAY_shader_edit_mesh_face(void)
void OVERLAY_facing_cache_init(OVERLAY_Data *vedata)
void OVERLAY_image_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_antialiasing_start(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_mesh_normal(void)
void OVERLAY_xray_depth_infront_copy(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_armature_shape(bool use_outline)
struct OVERLAY_PrivateData OVERLAY_PrivateData
GPUShader * OVERLAY_shader_xray_fade(void)
void OVERLAY_mode_transfer_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_armature_wire(void)
void OVERLAY_paint_draw(OVERLAY_Data *vedata)
struct OVERLAY_Instance OVERLAY_Instance
GPUShader * OVERLAY_shader_grid(void)
GPUShader * OVERLAY_shader_edit_curve_point(void)
void OVERLAY_image_init(OVERLAY_Data *vedata)
Definition: overlay_image.c:28
GPUShader * OVERLAY_shader_depth_only(void)
GPUShader * OVERLAY_shader_paint_wire(void)
GPUShader * OVERLAY_shader_armature_envelope(bool use_outline)
GPUShader * OVERLAY_shader_edit_particle_point(void)
GPUShader * OVERLAY_shader_edit_uv_tiled_image_borders_get(void)
void OVERLAY_edit_text_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_particle_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_grid_init(OVERLAY_Data *vedata)
Definition: overlay_grid.c:24
GPUShader * OVERLAY_shader_paint_vertcol(void)
GPUShader * OVERLAY_shader_edit_uv_edges_for_edge_select_get(void)
BLI_INLINE void pack_v4_in_mat4(float rmat[4][4], const float mat[4][4], const float v[4])
void OVERLAY_edit_text_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_sculpt_cache_init(OVERLAY_Data *vedata)
void OVERLAY_wireframe_cache_populate(OVERLAY_Data *vedata, Object *ob, OVERLAY_DupliData *dupli, bool init_dupli)
void OVERLAY_edit_uv_draw(OVERLAY_Data *vedata)
void OVERLAY_xray_fade_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_extra_point(void)
struct OVERLAY_StorageList OVERLAY_StorageList
void OVERLAY_background_draw(OVERLAY_Data *vedata)
void OVERLAY_mode_transfer_infront_draw(OVERLAY_Data *vedata)
void OVERLAY_mode_transfer_draw(OVERLAY_Data *vedata)
void OVERLAY_edit_uv_cache_finish(OVERLAY_Data *vedata)
void OVERLAY_pose_draw(OVERLAY_Data *vedata)
void OVERLAY_metaball_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_grid_image(void)
void OVERLAY_armature_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_outline_prepass_gpencil(void)
void OVERLAY_antialiasing_end(OVERLAY_Data *vedata)
void OVERLAY_fade_cache_init(OVERLAY_Data *vedata)
Definition: overlay_fade.c:19
void OVERLAY_lightprobe_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_antialiasing(void)
void OVERLAY_edit_uv_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_uniform_color(void)
bool OVERLAY_armature_is_pose_mode(Object *ob, const struct DRWContextState *draw_ctx)
GPUShader * OVERLAY_shader_outline_prepass_pointcloud(void)
void OVERLAY_sculpt_curves_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_gpencil_canvas(void)
void OVERLAY_particle_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_extra_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_edit_particle_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_outline_detect(void)
void OVERLAY_metaball_cache_init(OVERLAY_Data *vedata)
void OVERLAY_wireframe_cache_init(OVERLAY_Data *vedata)
struct OVERLAY_TextureList OVERLAY_TextureList
void OVERLAY_bone_instance_data_set_color(BoneInstanceData *data, const float bone_color[4])
void OVERLAY_edit_text_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_armature_stick(void)
void OVERLAY_edit_lattice_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_extra_blend_draw(OVERLAY_Data *vedata)
OVERLAY_InstanceFormats * OVERLAY_shader_instance_formats_get(void)
void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_facing(void)
void OVERLAY_extra_draw(OVERLAY_Data *vedata)
void OVERLAY_paint_weight_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_edit_mesh_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_paint_texture(void)
void OVERLAY_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_volume_gridlines(bool color_with_flags, bool color_range)
BLI_INLINE void pack_fl_in_mat4(float rmat[4][4], const float mat[4][4], float a)
void OVERLAY_speaker_cache_populate(OVERLAY_Data *vedata, Object *ob)
GPUShader * OVERLAY_shader_edit_mesh_analysis(void)
struct OVERLAY_PassList OVERLAY_PassList
void OVERLAY_paint_vertex_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_wireframe_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_wireframe_select(void)
GPUShader * OVERLAY_shader_outline_prepass_curves(void)
struct OVERLAY_InstanceFormats OVERLAY_InstanceFormats
OVERLAY_GridBits
OVERLAY_ArmatureCallBuffersInner transp
OVERLAY_ArmatureCallBuffersInner solid
OVERLAY_PassList * psl
OVERLAY_StorageList * stl
OVERLAY_FramebufferList * fbl
OVERLAY_Instance * instance
OVERLAY_TextureList * txl
struct GPUBatch * wire_geom
DRWShadingGroup * wire_shgrp
DRWShadingGroup * extra_shgrp
DRWShadingGroup * outline_shgrp
struct GPUBatch * outline_geom
struct GPUBatch * extra_geom
DRWCallBuffer * camera_volume
DRWCallBuffer * empty_image_frame
DRWCallBuffer * field_vortex
DRWCallBuffer * extra_dashed_lines
DRWCallBuffer * empty_cone
DRWCallBuffer * empty_cylinder
DRWCallBuffer * empty_circle
DRWCallBuffer * center_selected
DRWCallBuffer * light_spot
DRWCallBuffer * light_area[2]
DRWCallBuffer * probe_grid
DRWCallBuffer * empty_single_arrow
DRWCallBuffer * camera_distances
DRWCallBuffer * center_deselected
DRWCallBuffer * solid_quad
DRWCallBuffer * light_spot_cone_front
DRWCallBuffer * camera_volume_frame
DRWShadingGroup * extra_wire
DRWCallBuffer * field_force
DRWCallBuffer * origin_xform
DRWCallBuffer * empty_axes
DRWCallBuffer * light_spot_cone_back
DRWCallBuffer * field_curve
DRWCallBuffer * probe_cube
DRWCallBuffer * extra_lines
DRWCallBuffer * camera_frame
DRWCallBuffer * field_sphere_limit
DRWCallBuffer * empty_sphere_solid
DRWCallBuffer * center_active
DRWCallBuffer * empty_capsule_body
DRWCallBuffer * center_deselected_lib
DRWCallBuffer * empty_sphere
DRWCallBuffer * empty_capsule_cap
DRWCallBuffer * field_tube_limit
DRWCallBuffer * field_wind
DRWCallBuffer * extra_points
DRWShadingGroup * extra_loose_points
DRWCallBuffer * probe_planar
DRWCallBuffer * camera_tria[2]
DRWCallBuffer * field_cone_limit
DRWCallBuffer * center_selected_lib
DRWCallBuffer * empty_cube
DRWCallBuffer * light_point
DRWCallBuffer * groundline
DRWCallBuffer * empty_plain_axes
struct GPUFrameBuffer * outlines_resolve_fb
struct GPUFrameBuffer * overlay_line_in_front_fb
struct GPUFrameBuffer * overlay_in_front_fb
struct GPUFrameBuffer * overlay_default_fb
struct GPUFrameBuffer * overlay_line_fb
struct GPUFrameBuffer * overlay_color_only_fb
struct GPUFrameBuffer * outlines_prepass_fb
struct GPUVertFormat * point_extra
struct GPUVertFormat * instance_bone_envelope_outline
struct GPUVertFormat * instance_bone
struct GPUVertFormat * pos
struct GPUVertFormat * pos_color
struct GPUVertFormat * instance_extra
struct GPUVertFormat * instance_bone_outline
struct GPUVertFormat * wire_extra
struct GPUVertFormat * instance_pos
struct GPUVertFormat * instance_bone_envelope
struct GPUVertFormat * instance_bone_stick
struct GPUVertFormat * instance_bone_envelope_distance
GPUUniformBuf * grid_ubo
DRWPass * clipping_frustum_ps
DRWPass * edit_uv_edges_ps
DRWPass * edit_gpencil_ps
DRWPass * paint_overlay_ps
DRWPass * extra_grid_ps
DRWPass * mode_transfer_ps[2]
DRWPass * image_background_scene_ps
DRWPass * edit_uv_stencil_ps
DRWPass * paint_depth_ps
DRWPass * edit_mesh_depth_ps[2]
DRWPass * motion_paths_ps
DRWPass * wireframe_ps
DRWPass * paint_color_ps
DRWPass * image_empties_front_ps
DRWPass * edit_particle_ps
DRWPass * sculpt_mask_ps
DRWPass * edit_mesh_edges_ps[2]
DRWPass * edit_mesh_faces_ps[2]
DRWPass * antialiasing_ps
DRWPass * edit_uv_mask_ps
DRWPass * wireframe_xray_ps
DRWPass * edit_uv_tiled_image_borders_ps
DRWPass * edit_text_darken_ps
DRWPass * facing_ps[2]
DRWPass * outlines_detect_ps
DRWPass * sculpt_curves_selection_ps
DRWPass * armature_ps[2]
DRWPass * pointcloud_ps
DRWPass * edit_uv_faces_ps
DRWPass * image_empties_ps
DRWPass * extra_blend_ps
DRWPass * edit_gpencil_gizmos_ps
DRWPass * edit_curve_handle_ps
DRWPass * image_foreground_scene_ps
DRWPass * extra_ps[2]
DRWPass * edit_mesh_analysis_ps
DRWPass * xray_fade_ps
DRWPass * edit_uv_verts_ps
DRWPass * outlines_resolve_ps
DRWPass * edit_curves_points_ps[2]
DRWPass * outlines_prepass_ps
DRWPass * gpencil_canvas_ps
DRWPass * edit_mesh_verts_ps[2]
DRWPass * edit_lattice_ps
DRWPass * extra_centers_ps
DRWPass * edit_uv_stretching_ps
DRWPass * edit_gpencil_curve_ps
DRWPass * fade_ps[2]
DRWPass * edit_curve_wire_ps[2]
DRWPass * edit_mesh_faces_cage_ps[2]
DRWPass * background_ps
DRWPass * edit_text_overlay_ps
DRWPass * metaball_ps[2]
DRWPass * armature_bone_select_ps
DRWPass * edit_text_wire_ps[2]
DRWPass * image_background_ps
DRWPass * image_empties_blend_ps
DRWPass * armature_transp_ps[2]
DRWPass * image_foreground_ps
DRWPass * image_empties_back_ps
DRWPass * edit_mesh_normals_ps
struct OVERLAY_PrivateData::@251 edit_text
DRWView * view_reference_images
OVERLAY_GridBits grid_flag
DRWShadingGroup * paint_surf_grp
DRWShadingGroup * motion_path_points_grp
OVERLAY_UVLineStyle line_style
OVERLAY_ShadingData shdata
struct OVERLAY_PrivateData::@259 mode_transfer
DRWView * view_edit_faces_cage
OVERLAY_GridBits zneg_flag
DRWView * view_edit_curves_points
OVERLAY_ExtraCallBuffers extra_call_buffers[2]
struct OVERLAY_PrivateData::@249 antialiasing
View3DOverlay overlay
struct ImBuf * stencil_ibuf
DRWShadingGroup * edit_uv_verts_grp
DRWShadingGroup * outlines_gpencil_grp
DRWShadingGroup * paint_depth_grp
DRWShadingGroup * paint_wire_selected_grp
DRWShadingGroup * motion_path_lines_grp
struct Image * stencil_image
DRWShadingGroup * edit_mesh_normals_grp
DRWShadingGroup * edit_mesh_faces_cage_grp[2]
DRWShadingGroup * edit_lattice_wires_grp
DRWShadingGroup * flash_grp[2]
DRWShadingGroup * edit_gpencil_points_grp
DRWShadingGroup * paint_face_grp
DRWShadingGroup * edit_text_wire_grp[2]
struct OVERLAY_PrivateData::@255 edit_uv
struct OVERLAY_PrivateData::@256 armature
DRWShadingGroup * edit_curve_wire_grp[2]
DRWShadingGroup * edit_mesh_depth_grp[2]
DRWShadingGroup * edit_gpencil_wires_grp
DRWShadingGroup * armature_bone_select_grp
DRWShadingGroup * edit_curve_normal_grp[2]
DRWShadingGroup * edit_particle_point_grp
DRWShadingGroup * edit_uv_edges_grp
DRWShadingGroup * edit_mesh_edges_grp[2]
DRWShadingGroup * extra_grid_grp
struct OVERLAY_PrivateData::@252 edit_mesh
DRWShadingGroup * volume_selection_surface_grp
DRWShadingGroup * edit_particle_strand_grp
DRWShadingGroup * pointcloud_dots_grp
DRWShadingGroup * fade_grp[2]
DRWShadingGroup * edit_mesh_analysis_grp
DRWShadingGroup * edit_uv_shadow_edges_grp
DRWShadingGroup * sculpt_curves_selection_grp
DRWShadingGroup * paint_point_grp
DRWShadingGroup * edit_curves_points_grp[2]
DRWShadingGroup * wires_all_grp[2][2]
struct OVERLAY_PrivateData::@257 painting
DRWShadingGroup * edit_curve_points_grp
eMaskOverlayMode mask_overlay_mode
DRWShadingGroup * edit_mesh_verts_grp[2]
DRWShadingGroup * outlines_grp
DRWShadingGroup * edit_uv_faces_grp
enum eContextObjectMode ctx_mode
struct OVERLAY_PrivateData::@248 grid
DRWShadingGroup * facing_grp[2]
DRWCallBuffer * handle[2]
DRWShadingGroup * edit_mesh_faces_grp[2]
DRWShadingGroup * edit_gpencil_curve_handle_grp
DRWShadingGroup * edit_uv_stretching_grp
DRWShadingGroup * edit_mesh_skin_roots_grp[2]
eSpaceImage_UVDT_Stretch draw_type
DRWShadingGroup * edit_gpencil_curve_points_grp
DRWShadingGroup * edit_uv_face_dots_grp
DRWShadingGroup * edit_curve_handle_grp
OVERLAY_GridData grid_data
OVERLAY_GridBits zpos_flag
struct OVERLAY_PrivateData::@254 edit_particle
DRWShadingGroup * outlines_curves_grp
DRWShadingGroup * outlines_ptcloud_grp
GPUTexture * mask_texture
DRWShadingGroup * paint_wire_grp
DRWShadingGroup * particle_dots_grp
struct OVERLAY_PrivateData::@258 mball
DRWShadingGroup * sculpt_mask_grp
DRWShadingGroup * wires_hair_grp[2][2]
DRWShadingGroup * edit_lattice_points_grp
DRWShadingGroup * edit_text_overlay_grp
DRWShadingGroup * edit_mesh_facedots_grp[2]
OVERLAY_ArmatureCallBuffers armature_call_buffers[2]
DRWShadingGroup * armature_bone_select_act_grp
DRWShadingGroup * wires_grp[2][2]
struct OVERLAY_PrivateData::@250 edit_curve
struct OVERLAY_PrivateData::@253 edit_curves
DRWShadingGroup * wires_sculpt_grp[2]
DRWShadingGroup * particle_shapes_grp
struct OVERLAY_PrivateData * pd
struct GPUTexture * outlines_id_tx
struct GPUTexture * dummy_depth_tx
struct GPUTexture * temp_depth_tx
struct GPUTexture * overlay_line_tx
struct GPUTexture * overlay_color_tx