Blender  V2.93
overlay_private.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * Copyright 2019, Blender Foundation.
17  */
18 
23 #pragma once
24 
25 #include "DRW_render.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #ifdef __APPLE__
32 # define USE_GEOM_SHADER_WORKAROUND 1
33 #else
34 # define USE_GEOM_SHADER_WORKAROUND 0
35 #endif
36 
37 /* Needed for eSpaceImage_UVDT_Stretch and eMaskOverlayMode */
38 #include "DNA_mask_types.h"
39 #include "DNA_space_types.h"
40 /* Forward declarations */
41 struct ImBuf;
42 
43 typedef struct OVERLAY_FramebufferList {
52 
53 typedef struct OVERLAY_TextureList {
60 
61 #define NOT_IN_FRONT 0
62 #define IN_FRONT 1
63 
64 typedef enum OVERLAY_UVLineStyle {
71 
72 typedef struct OVERLAY_PassList {
135 
136 /* Data used by GLSL shader. To be used as UBO. */
137 typedef struct OVERLAY_ShadingData {
140  float zplane_axes[3], grid_size[3];
141  float grid_steps[8];
153  int data_mask[4];
155 
156 typedef struct OVERLAY_ExtraCallBuffers {
162 
168 
181 
185 
193 
195 
202 
204 
208 
210 
212 
216 
221 
224 
229 
233 
237 
239 
241 
249 
250 typedef struct OVERLAY_PrivateData {
301  DRWShadingGroup *wires_grp[2][2]; /* With and without coloring. */
302  DRWShadingGroup *wires_all_grp[2][2]; /* With and without coloring. */
303  DRWShadingGroup *wires_hair_grp[2][2]; /* With and without coloring. */
305 
314 
318 
321 
323 
334  short v3d_flag; /* TODO move to View3DOverlay */
335  short v3d_gridflag; /* TODO move to View3DOverlay */
336  int cfra;
339 
340  struct {
341  bool enabled;
345  struct {
349  struct {
350  float overlay_color[4];
352  struct {
354  bool do_faces;
355  bool do_edges;
359  int flag;
361  struct {
365  struct {
373 
374  bool do_faces;
376 
377  float uv_opacity;
378 
379  int image_size[2];
380  float image_aspect[2];
381 
382  /* edge drawing */
384  float dash_length;
386 
387  /* stretching overlay */
388  float uv_aspect[2];
393 
394  /* stencil overlay */
398 
399  /* mask overlay */
404  struct {
410  struct {
411  bool in_front;
414  struct {
416  } mball;
417 } OVERLAY_PrivateData; /* Transient data */
418 
419 typedef struct OVERLAY_StorageList {
422 
423 typedef struct OVERLAY_Data {
424  void *engine_type;
430 
431 typedef struct OVERLAY_DupliData {
438  short base_flag;
440 
441 typedef struct BoneInstanceData {
442  /* Keep sync with bone instance vertex format (OVERLAY_InstanceFormats) */
443  union {
444  float mat[4][4];
445  struct {
446  float _pad0[3], color_hint_a;
447  float _pad1[3], color_hint_b;
448  float _pad2[3], color_a;
449  float _pad3[3], color_b;
450  };
451  struct {
452  float _pad00[3], amin_a;
453  float _pad01[3], amin_b;
454  float _pad02[3], amax_a;
455  float _pad03[3], amax_b;
456  };
457  };
459 
460 typedef struct OVERLAY_InstanceFormats {
474 
475 /* Pack data into the last row of the 4x4 matrix. It will be decoded by the vertex shader. */
477  float rmat[4][4], const float mat[4][4], float a, float b, float c, float d)
478 {
479  copy_m4_m4(rmat, mat);
480  rmat[0][3] = a;
481  rmat[1][3] = b;
482  rmat[2][3] = c;
483  rmat[3][3] = d;
484 }
485 
486 BLI_INLINE void pack_v4_in_mat4(float rmat[4][4], const float mat[4][4], const float v[4])
487 {
488  pack_data_in_mat4(rmat, mat, v[0], v[1], v[2], v[3]);
489 }
490 
491 BLI_INLINE void pack_fl_in_mat4(float rmat[4][4], const float mat[4][4], float a)
492 {
493  copy_m4_m4(rmat, mat);
494  rmat[3][3] = a;
495 }
496 
505 
506 bool OVERLAY_armature_is_pose_mode(Object *ob, const struct DRWContextState *draw_ctx);
512 void OVERLAY_armature_draw(OVERLAY_Data *vedata);
515 void OVERLAY_pose_draw(OVERLAY_Data *vedata);
516 
519 
520 void OVERLAY_bone_instance_data_set_color_hint(BoneInstanceData *data, const float hint_color[4]);
521 void OVERLAY_bone_instance_data_set_color(BoneInstanceData *data, const float bone_color[4]);
522 
527 
531 void OVERLAY_gpencil_draw(OVERLAY_Data *vedata);
533 
538 
542 
545 void OVERLAY_volume_draw(OVERLAY_Data *vedata);
546 
551 
555 
556 void OVERLAY_edit_uv_init(OVERLAY_Data *vedata);
559 void OVERLAY_edit_uv_draw(OVERLAY_Data *vedata);
560 
564 void OVERLAY_extra_draw(OVERLAY_Data *vedata);
567 
573 
575 void OVERLAY_extra_point(OVERLAY_ExtraCallBuffers *cb, const float point[3], const float color[4]);
577  const float start[3],
578  const float end[3],
579  const float color[4]);
581  const float start[3],
582  const float end[3],
583  const int color_id);
585  const float mat[4][4],
586  const float draw_size,
587  const char draw_type,
588  const float color[4]);
590  struct GPUBatch *geom,
591  const float mat[4][4],
592  const float color[4]);
594  struct GPUBatch *geom,
595  const float mat[4][4],
596  const float color[4]);
597 
601 void OVERLAY_facing_draw(OVERLAY_Data *vedata);
603 
607 void OVERLAY_fade_draw(OVERLAY_Data *vedata);
609 
610 void OVERLAY_grid_init(OVERLAY_Data *vedata);
612 void OVERLAY_grid_draw(OVERLAY_Data *vedata);
613 
614 void OVERLAY_image_init(OVERLAY_Data *vedata);
619 void OVERLAY_image_draw(OVERLAY_Data *vedata);
623 
627 void OVERLAY_metaball_draw(OVERLAY_Data *vedata);
629 
633 
634 void OVERLAY_outline_init(OVERLAY_Data *vedata);
637  Object *ob,
638  OVERLAY_DupliData *dupli,
639  bool init_dupli);
640 void OVERLAY_outline_draw(OVERLAY_Data *vedata);
641 
642 void OVERLAY_paint_init(OVERLAY_Data *vedata);
647 void OVERLAY_paint_draw(OVERLAY_Data *vedata);
648 
651 void OVERLAY_particle_draw(OVERLAY_Data *vedata);
652 
655 void OVERLAY_sculpt_draw(OVERLAY_Data *vedata);
656 
660  Object *ob,
661  OVERLAY_DupliData *dupli,
662  bool init_dupli);
665 
671 GPUShader *OVERLAY_shader_armature_shape(bool use_outline);
673 GPUShader *OVERLAY_shader_armature_sphere(bool use_outline);
688 GPUShader *OVERLAY_shader_edit_mesh_edge(bool use_flat_interp);
705 GPUShader *OVERLAY_shader_extra(bool is_select);
707 GPUShader *OVERLAY_shader_extra_wire(bool use_object, bool is_select);
732 GPUShader *OVERLAY_shader_volume_velocity(bool use_needle, bool use_mac);
733 GPUShader *OVERLAY_shader_volume_gridlines(bool color_with_flags, bool color_range);
734 GPUShader *OVERLAY_shader_wireframe(bool custom_bias);
737 
739 
740 void OVERLAY_shader_free(void);
741 
742 #ifdef __cplusplus
743 }
744 #endif
eContextObjectMode
Definition: BKE_context.h:114
#define BLI_INLINE
void copy_m4_m4(float m1[4][4], const float m2[4][4])
Definition: math_matrix.c:95
eMaskOverlayMode
eSpaceImage_UVDT_Stretch
DRWState
Definition: DRW_render.h:312
GPUBatch
Definition: GPU_batch.h:93
struct GPUFrameBuffer GPUFrameBuffer
struct GPUShader GPUShader
Definition: GPU_shader.h:33
struct GPUTexture GPUTexture
Definition: GPU_texture.h:33
ATTR_WARN_UNUSED_RESULT const BMVert * v
static unsigned c
Definition: RandGen.cpp:97
static unsigned a[3]
Definition: RandGen.cpp:92
void OVERLAY_sculpt_cache_populate(OVERLAY_Data *vedata, Object *ob)
struct OVERLAY_FramebufferList OVERLAY_FramebufferList
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:61
void OVERLAY_antialiasing_cache_init(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_edit_uv_stretching_angle_get(void)
struct OVERLAY_ShadingData OVERLAY_ShadingData
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:63
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)
void OVERLAY_empty_shape(OVERLAY_ExtraCallBuffers *cb, const float mat[4][4], const float draw_size, const char draw_type, const float color[4])
GPUShader * OVERLAY_shader_image(void)
void OVERLAY_shader_library_ensure(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:279
void OVERLAY_fade_draw(OVERLAY_Data *vedata)
Definition: overlay_fade.c:87
void OVERLAY_fade_infront_draw(OVERLAY_Data *vedata)
Definition: overlay_fade.c:94
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:187
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:52
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_image_background_draw(OVERLAY_Data *vedata)
void OVERLAY_particle_cache_init(OVERLAY_Data *vedata)
void OVERLAY_edit_curve_cache_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:62
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_extra_line(OVERLAY_ExtraCallBuffers *cb, const float start[3], const float end[3], const int color_id)
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_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_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)
struct OVERLAY_DupliData OVERLAY_DupliData
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_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)
GPUShader * OVERLAY_shader_paint_weight(void)
void OVERLAY_paint_cache_init(OVERLAY_Data *vedata)
Definition: overlay_paint.c:73
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_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)
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)
GPUShader * OVERLAY_shader_armature_wire(void)
void OVERLAY_paint_draw(OVERLAY_Data *vedata)
GPUShader * OVERLAY_shader_grid(void)
GPUShader * OVERLAY_shader_edit_curve_point(void)
void OVERLAY_image_init(OVERLAY_Data *vedata)
Definition: overlay_image.c:43
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:51
GPUShader * OVERLAY_shader_paint_vertcol(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_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:34
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)
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)
struct OVERLAY_InstanceFormats OVERLAY_InstanceFormats
DRWCallBuffer * envelope_distance
DRWShadingGroup * custom_transp
DRWCallBuffer * envelope_outline
DRWShadingGroup * custom_outline
DRWShadingGroup * custom_wire
DRWShadingGroup * custom_solid
OVERLAY_PassList * psl
OVERLAY_StorageList * stl
OVERLAY_FramebufferList * fbl
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
DRWPass * clipping_frustum_ps
DRWPass * edit_uv_edges_ps
DRWPass * edit_gpencil_ps
DRWPass * paint_overlay_ps
DRWPass * extra_grid_ps
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 * 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 * 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
DRWView * view_reference_images
DRWShadingGroup * paint_surf_grp
DRWShadingGroup * motion_path_points_grp
OVERLAY_UVLineStyle line_style
OVERLAY_ShadingData shdata
DRWView * view_edit_faces_cage
OVERLAY_ExtraCallBuffers extra_call_buffers[2]
View3DOverlay overlay
struct ImBuf * stencil_ibuf
DRWShadingGroup * edit_uv_verts_grp
DRWShadingGroup * outlines_gpencil_grp
struct OVERLAY_PrivateData::@247 mball
DRWShadingGroup * paint_depth_grp
DRWShadingGroup * paint_wire_selected_grp
DRWShadingGroup * motion_path_lines_grp
struct Image * stencil_image
struct OVERLAY_PrivateData::@243 edit_particle
struct OVERLAY_PrivateData::@240 edit_curve
DRWShadingGroup * edit_mesh_normals_grp
struct OVERLAY_PrivateData::@239 antialiasing
DRWShadingGroup * edit_mesh_faces_cage_grp[2]
DRWShadingGroup * edit_lattice_wires_grp
DRWShadingGroup * edit_gpencil_points_grp
DRWShadingGroup * paint_face_grp
DRWShadingGroup * edit_text_wire_grp[2]
struct OVERLAY_PrivateData::@245 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]
struct OVERLAY_PrivateData::@244 edit_uv
DRWShadingGroup * extra_grid_grp
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 * paint_point_grp
DRWShadingGroup * wires_all_grp[2][2]
struct OVERLAY_PrivateData::@241 edit_text
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
DRWShadingGroup * facing_grp[2]
struct OVERLAY_PrivateData::@242 edit_mesh
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
struct OVERLAY_PrivateData::@246 painting
DRWShadingGroup * outlines_ptcloud_grp
GPUTexture * mask_texture
DRWShadingGroup * paint_wire_grp
DRWShadingGroup * particle_dots_grp
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]
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