Blender
V4.5
source
blender
draw
engines
overlay
overlay_shader_shared.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2023 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#if !defined(GPU_SHADER) && !defined(GLSL_CPP_STUBS)
8
# include "
GPU_shader_shared_utils.hh
"
9
10
# include "
DNA_action_types.h
"
11
# include "
DNA_view3d_types.h
"
12
#endif
13
14
enum
OVERLAY_BackgroundType
:
uint32_t
{
15
BG_SOLID
= 0u,
16
BG_GRADIENT
= 1u,
17
BG_CHECKER
= 2u,
18
BG_RADIAL
= 3u,
19
BG_SOLID_CHECKER
= 4u,
20
BG_MASK
= 5u,
21
};
22
23
enum
OVERLAY_UVLineStyle
:
uint32_t
{
24
OVERLAY_UV_LINE_STYLE_OUTLINE
= 0u,
25
OVERLAY_UV_LINE_STYLE_DASH
= 1u,
26
OVERLAY_UV_LINE_STYLE_BLACK
= 2u,
27
OVERLAY_UV_LINE_STYLE_WHITE
= 3u,
28
OVERLAY_UV_LINE_STYLE_SHADOW
= 4u,
29
};
30
31
enum
OVERLAY_GridBits
:
uint32_t
{
32
SHOW_AXIS_X
= (1u << 0u),
33
SHOW_AXIS_Y
= (1u << 1u),
34
SHOW_AXIS_Z
= (1u << 2u),
35
SHOW_GRID
= (1u << 3u),
36
PLANE_XY
= (1u << 4u),
37
PLANE_XZ
= (1u << 5u),
38
PLANE_YZ
= (1u << 6u),
39
CLIP_ZPOS
= (1u << 7u),
40
CLIP_ZNEG
= (1u << 8u),
41
GRID_BACK
= (1u << 9u),
42
GRID_CAMERA
= (1u << 10u),
43
PLANE_IMAGE
= (1u << 11u),
44
CUSTOM_GRID
= (1u << 12u),
45
};
46
#ifndef GPU_SHADER
47
ENUM_OPERATORS
(
OVERLAY_GridBits
,
CUSTOM_GRID
)
48
#endif
49
50
enum
VertexClass
:
uint32_t
{
51
VCLASS_NONE
= 0,
52
53
VCLASS_LIGHT_AREA_SHAPE
= 1 << 0,
54
VCLASS_LIGHT_SPOT_SHAPE
= 1 << 1,
55
VCLASS_LIGHT_SPOT_BLEND
= 1 << 2,
56
VCLASS_LIGHT_SPOT_CONE
= 1 << 3,
57
VCLASS_LIGHT_DIST
= 1 << 4,
58
59
VCLASS_CAMERA_FRAME
= 1 << 5,
60
VCLASS_CAMERA_DIST
= 1 << 6,
61
VCLASS_CAMERA_VOLUME
= 1 << 7,
62
63
VCLASS_SCREENSPACE
= 1 << 8,
64
VCLASS_SCREENALIGNED
= 1 << 9,
65
66
VCLASS_EMPTY_SCALED
= 1 << 10,
67
VCLASS_EMPTY_AXES
= 1 << 11,
68
VCLASS_EMPTY_AXES_NAME
= 1 << 12,
69
VCLASS_EMPTY_AXES_SHADOW
= 1 << 13,
70
VCLASS_EMPTY_SIZE
= 1 << 14,
71
};
72
#ifndef GPU_SHADER
73
ENUM_OPERATORS
(
VertexClass
,
VCLASS_EMPTY_SIZE
)
74
#endif
75
76
enum
StickBoneFlag
{
77
COL_WIRE
= (1u << 0u),
78
COL_HEAD
= (1u << 1u),
79
COL_TAIL
= (1u << 2u),
80
COL_BONE
= (1u << 3u),
81
POS_HEAD
= (1u << 4u),
82
POS_TAIL
= (1u << 5u),
83
POS_BONE
= (1u << 6u),
84
};
85
#ifndef GPU_SHADER
86
ENUM_OPERATORS
(
StickBoneFlag
,
POS_BONE
)
87
#endif
88
89
/* TODO(fclem): Convert into enum. */
90
/* See: 'draw_cache_impl.hh' for matching includes. */
91
#define VERT_GPENCIL_BEZT_HANDLE (1u << 30)
92
/* data[0] (1st byte flags) */
93
#define FACE_ACTIVE (1u << 0)
94
#define FACE_SELECTED (1u << 1)
95
#define FACE_FREESTYLE (1u << 2)
96
#define VERT_UV_SELECT (1u << 3)
97
#define VERT_UV_PINNED (1u << 4)
98
#define EDGE_UV_SELECT (1u << 5)
99
#define FACE_UV_ACTIVE (1u << 6)
100
#define FACE_UV_SELECT (1u << 7)
101
/* data[1] (2st byte flags) */
102
#define VERT_ACTIVE (1u << 0)
103
#define VERT_SELECTED (1u << 1)
104
#define VERT_SELECTED_BEZT_HANDLE (1u << 2)
105
#define EDGE_ACTIVE (1u << 3)
106
#define EDGE_SELECTED (1u << 4)
107
#define EDGE_SEAM (1u << 5)
108
#define EDGE_SHARP (1u << 6)
109
#define EDGE_FREESTYLE (1u << 7)
110
111
static
inline
uint
outline_id_pack
(
uint
outline_id,
uint
object_id)
112
{
113
/* Replace top 2 bits (of the 16bit output) by outline_id.
114
* This leaves 16K different IDs to create outlines between objects.
115
* 18 = (32 - (16 - 2)) */
116
return
(outline_id << 14u) | ((object_id << 18u) >> 18u);
117
}
118
119
/* Match: #SI_GRID_STEPS_LEN */
120
#define OVERLAY_GRID_STEPS_LEN 8
121
122
/* Due to the encoding clamping the passed in floats, the wire width needs to be scaled down. */
123
#define WIRE_WIDTH_COMPRESSION 16.0
124
125
struct
OVERLAY_GridData
{
126
float4
steps
[
OVERLAY_GRID_STEPS_LEN
];
/* float arrays are padded to float4 in std130. */
127
float4
size
;
/* float3 padded to float4. */
128
float
distance
;
129
float
line_size
;
130
float
zoom_factor
;
/* Only for UV editor */
131
float
_pad0
;
132
};
133
BLI_STATIC_ASSERT_ALIGN
(
OVERLAY_GridData
, 16)
134
135
#ifdef GPU_SHADER
136
/* Keep the same values as in `draw_cache_impl_curves.cc` */
137
# define EDIT_CURVES_NURBS_CONTROL_POINT (1u)
138
# define EDIT_CURVES_BEZIER_HANDLE (1u << 1)
139
# define EDIT_CURVES_ACTIVE_HANDLE (1u << 2)
140
# define EDIT_CURVES_BEZIER_KNOT (1u << 3)
141
# define EDIT_CURVES_HANDLE_TYPES_SHIFT (4u)
142
/* Keep the same values as in `draw_cache_imp_curve.c` */
143
# define ACTIVE_NURB (1u << 2)
144
# define BEZIER_HANDLE (1u << 3)
145
# define EVEN_U_BIT (1u << 4)
146
# define COLOR_SHIFT 5u
147
148
/* Keep the same value in `handle_display` in `DNA_view3d_types.h` */
149
# define CURVE_HANDLE_SELECTED 0u
150
# define CURVE_HANDLE_ALL 1u
151
# define CURVE_HANDLE_NONE 2u
152
153
# define GP_EDIT_POINT_SELECTED 1u
/* 1 << 0 */
154
# define GP_EDIT_STROKE_SELECTED 2u
/* 1 << 1 */
155
# define GP_EDIT_MULTIFRAME 4u
/* 1 << 2 */
156
# define GP_EDIT_STROKE_START 8u
/* 1 << 3 */
157
# define GP_EDIT_STROKE_END 16u
/* 1 << 4 */
158
# define GP_EDIT_POINT_DIMMED 32u
/* 1 << 5 */
159
160
# define MOTIONPATH_VERT_SEL (1u << 0)
161
# define MOTIONPATH_VERT_KEY (1u << 1)
162
163
#else
164
/* TODO(fclem): Find a better way to share enums/defines from DNA files with GLSL. */
165
BLI_STATIC_ASSERT
(
CURVE_HANDLE_SELECTED
== 0u,
"Ensure value is sync"
);
166
BLI_STATIC_ASSERT
(
CURVE_HANDLE_ALL
== 1u,
"Ensure value is sync"
);
167
BLI_STATIC_ASSERT
(
MOTIONPATH_VERT_SEL
== (1u << 0),
"Ensure value is sync"
);
168
BLI_STATIC_ASSERT
(
MOTIONPATH_VERT_KEY
== (1u << 1),
"Ensure value is sync"
);
169
#endif
170
171
/* All colors in this struct are converted to display linear RGB color-space. */
172
struct
ThemeColors
{
173
/* UBOs data needs to be 16 byte aligned (size of float4) */
174
float4
wire
;
175
float4
wire_edit
;
176
float4
active_object
;
/* "active" is reserved keyword in GLSL. */
177
float4
object_select
;
/* "select" is defined as a macro for GLSL. */
178
float4
library_select
;
179
float4
library
;
180
float4
transform
;
181
float4
light
;
182
float4
speaker
;
183
float4
camera
;
184
float4
camera_path
;
185
float4
empty
;
186
float4
vert
;
/* "vertex" is reserved keyword in MSL. */
187
float4
vert_select
;
188
float4
vert_unreferenced
;
189
float4
vert_missing_data
;
190
float4
edit_mesh_active
;
191
float4
edge_select
;
/* Stands for edge selection, not edge select mode. */
192
float4
edge_mode_select
;
/* Stands for edge mode selection. */
193
float4
edge_seam
;
194
float4
edge_sharp
;
195
float4
edge_crease
;
196
float4
edge_bweight
;
197
float4
edge_face_select
;
198
float4
edge_freestyle
;
199
float4
face
;
200
float4
face_select
;
/* Stands for face selection, not face select mode. */
201
float4
face_mode_select
;
/* Stands for face mode selection. */
202
float4
face_retopology
;
203
float4
face_freestyle
;
204
float4
gpencil_vertex
;
205
float4
gpencil_vertex_select
;
206
float4
normal
;
207
float4
vnormal
;
208
float4
lnormal
;
209
float4
facedot
;
210
float4
skinroot
;
211
212
float4
deselect
;
213
float4
outline
;
214
float4
light_no_alpha
;
215
216
float4
background
;
217
float4
background_gradient
;
218
float4
checker_primary
;
219
float4
checker_secondary
;
220
float4
clipping_border
;
221
float4
edit_mesh_middle
;
222
223
float4
handle_free
;
224
float4
handle_auto
;
225
float4
handle_vect
;
226
float4
handle_align
;
227
float4
handle_autoclamp
;
228
float4
handle_sel_free
;
229
float4
handle_sel_auto
;
230
float4
handle_sel_vect
;
231
float4
handle_sel_align
;
232
float4
handle_sel_autoclamp
;
233
float4
nurb_uline
;
234
float4
nurb_vline
;
235
float4
nurb_sel_uline
;
236
float4
nurb_sel_vline
;
237
float4
active_spline
;
238
239
float4
bone_pose
;
240
float4
bone_pose_active
;
241
float4
bone_pose_active_unsel
;
242
float4
bone_pose_constraint
;
243
float4
bone_pose_ik
;
244
float4
bone_pose_spline_ik
;
245
float4
bone_pose_no_target
;
246
float4
bone_solid
;
247
float4
bone_locked
;
248
float4
bone_active
;
249
float4
bone_active_unsel
;
250
float4
bone_select
;
251
float4
bone_ik_line
;
252
float4
bone_ik_line_no_target
;
253
float4
bone_ik_line_spline
;
254
255
float4
text
;
256
float4
text_hi
;
257
258
float4
bundle_solid
;
259
260
float4
mball_radius
;
261
float4
mball_radius_select
;
262
float4
mball_stiffness
;
263
float4
mball_stiffness_select
;
264
265
float4
current_frame
;
266
float4
before_frame
;
267
float4
after_frame
;
268
269
float4
grid
;
270
float4
grid_emphasis
;
271
float4
grid_axis_x
;
272
float4
grid_axis_y
;
273
float4
grid_axis_z
;
274
275
float4
face_back
;
276
float4
face_front
;
277
278
float4
uv_shadow
;
279
};
280
BLI_STATIC_ASSERT_ALIGN
(
ThemeColors
, 16)
281
282
/* All values in this struct are premultiplied by U.pixelsize. */
283
struct
ThemeSizes
{
284
float
pixel
;
/* Equivalent to U.pixelsize. */
285
286
float
object_center
;
287
288
float
light_center
;
289
float
light_circle
;
290
float
light_circle_shadow
;
291
292
float
vert
;
/* "vertex" is reserved keyword in MSL. */
293
float
edge
;
294
float
face_dot
;
295
296
float
checker
;
297
float
vertex_gpencil
;
298
float
_pad1
, _pad2;
299
};
300
BLI_STATIC_ASSERT_ALIGN
(
ThemeSizes
, 16)
301
302
struct
UniformData
{
303
ThemeColors
colors
;
304
ThemeSizes
sizes
;
305
308
float2
size_viewport
;
309
float2
size_viewport_inv
;
310
311
float
fresnel_mix_edit
;
312
float
pixel_fac
;
313
bool32_t
backface_culling
;
314
float
_pad1
;
315
};
316
BLI_STATIC_ASSERT_ALIGN
(
UniformData
, 16)
317
318
#ifdef GPU_SHADER
319
/* The uniform_buf mostly contains theme properties.
320
* This alias has better semantic and shorter syntax. */
321
# define theme uniform_buf
322
#endif
323
324
struct
ExtraInstanceData
{
325
float4
color_
;
326
float4x4
object_to_world
;
327
328
#if !defined(GPU_SHADER)
329
ExtraInstanceData
(
const
float4x4
&
object_to_world
,
const
float4
&color,
float
draw_size)
330
{
331
this->color_ = color;
332
this->object_to_world =
object_to_world
;
333
this->object_to_world[3][3] = draw_size;
334
};
335
336
ExtraInstanceData
with_color
(
const
float4
&color)
const
337
{
338
ExtraInstanceData
copy
= *
this
;
339
copy
.
color_
= color;
340
return
copy
;
341
}
342
343
/* For degrees of freedom. */
344
ExtraInstanceData
(
const
float4x4
&
object_to_world
,
345
const
float4
&color,
346
float
angle_min_x,
347
float
angle_min_z,
348
float
angle_max_x,
349
float
angle_max_z)
350
{
351
this->color_ = color;
352
this->object_to_world =
object_to_world
;
353
this->object_to_world[0][3] = angle_min_x;
354
this->object_to_world[1][3] = angle_min_z;
355
this->object_to_world[2][3] = angle_max_x;
356
this->object_to_world[3][3] = angle_max_z;
357
};
358
#endif
359
};
360
BLI_STATIC_ASSERT_ALIGN
(
ExtraInstanceData
, 16)
361
362
struct
VertexData
{
363
float4
pos_
;
364
/* TODO: change to color_id. Idea expressed in #125894. */
365
float4
color_
;
366
};
367
BLI_STATIC_ASSERT_ALIGN
(
VertexData
, 16)
368
369
/* Limited by expand_prim_len bit count. */
370
#define PARTICLE_SHAPE_CIRCLE_RESOLUTION 7
371
372
enum
OVERLAY_ParticleShape
:
uint32_t
{
373
PART_SHAPE_AXIS
= 1,
374
PART_SHAPE_CIRCLE
= 2,
375
PART_SHAPE_CROSS
= 3,
376
};
377
378
struct
ParticlePointData
{
379
packed_float3
position
;
380
/* Can either be velocity or acceleration. */
381
float
value
;
382
/* Rotation encoded as quaternion. */
383
float4
rotation
;
384
};
385
BLI_STATIC_ASSERT_ALIGN
(
ParticlePointData
, 16)
386
387
struct
BoneEnvelopeData
{
388
float4
head_sphere
;
389
float4
tail_sphere
;
390
/* TODO(pragma37): wire width is never used in the shader. */
391
float4
bone_color_and_wire_width
;
392
float4
state_color
;
393
float4
x_axis
;
394
395
#ifndef GPU_SHADER
396
BoneEnvelopeData
() =
default
;
397
398
/* For bone fills. */
399
BoneEnvelopeData
(
float4
&head_sphere,
400
float4
&tail_sphere,
401
float3
&bone_color,
402
float3
&state_color,
403
float3
&x_axis)
404
: head_sphere(head_sphere),
405
tail_sphere(tail_sphere),
406
bone_color_and_wire_width(bone_color, 0.0f),
407
state_color(state_color, 0.0f),
408
x_axis(x_axis, 0.0f){};
409
410
/* For bone outlines. */
411
BoneEnvelopeData
(
float4
&head_sphere,
412
float4
&tail_sphere,
413
float4
&color_and_wire_width,
414
float3
&x_axis)
415
: head_sphere(head_sphere),
416
tail_sphere(tail_sphere),
417
bone_color_and_wire_width(color_and_wire_width),
418
x_axis(x_axis, 0.0f){};
419
420
/* For bone distance volumes. */
421
BoneEnvelopeData
(
float4
&head_sphere,
float4
&tail_sphere,
float3
&x_axis)
422
: head_sphere(head_sphere), tail_sphere(tail_sphere), x_axis(x_axis, 0.0f){};
423
#endif
424
};
425
BLI_STATIC_ASSERT_ALIGN
(
BoneEnvelopeData
, 16)
426
427
struct
BoneStickData
{
428
float4
bone_start
;
429
float4
bone_end
;
430
float4
wire_color
;
431
float4
bone_color
;
432
float4
head_color
;
433
float4
tail_color
;
434
435
#ifndef GPU_SHADER
436
BoneStickData
() =
default
;
437
438
/* For bone fills. */
439
BoneStickData
(
const
float3
&bone_start,
440
const
float3
&bone_end,
441
const
float4
&wire_color,
442
const
float4
&bone_color,
443
const
float4
&head_color,
444
const
float4
&tail_color)
445
: bone_start(
float3
(bone_start), 0.0f),
446
bone_end(
float3
(bone_end), 0.0f),
447
wire_color(wire_color),
448
bone_color(bone_color),
449
head_color(head_color),
450
tail_color(tail_color){};
451
#endif
452
};
453
BLI_STATIC_ASSERT_ALIGN
(
BoneStickData
, 16)
454
455
466
#define M_1_SQRTPI 0.5641895835477563f
/* `1/sqrt(pi)`. */
467
#define DISC_RADIUS (M_1_SQRTPI * 1.05f)
468
#define LINE_SMOOTH_START (0.5f - DISC_RADIUS)
469
#define LINE_SMOOTH_END (0.5f + DISC_RADIUS)
470
/* Returns 0 before LINE_SMOOTH_START and 1 after LINE_SMOOTH_END. */
471
#define LINE_STEP(dist) smoothstep(LINE_SMOOTH_START, LINE_SMOOTH_END, dist)
BLI_STATIC_ASSERT
#define BLI_STATIC_ASSERT(a, msg)
Definition
BLI_assert.h:83
BLI_STATIC_ASSERT_ALIGN
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition
BLI_assert.h:86
uint
unsigned int uint
Definition
BLI_sys_types.h:64
ENUM_OPERATORS
#define ENUM_OPERATORS(_type, _max)
Definition
BLI_utildefines.h:588
DNA_action_types.h
MOTIONPATH_VERT_KEY
@ MOTIONPATH_VERT_KEY
Definition
DNA_action_types.h:86
MOTIONPATH_VERT_SEL
@ MOTIONPATH_VERT_SEL
Definition
DNA_action_types.h:85
DNA_view3d_types.h
CURVE_HANDLE_ALL
@ CURVE_HANDLE_ALL
Definition
DNA_view3d_types.h:272
CURVE_HANDLE_SELECTED
@ CURVE_HANDLE_SELECTED
Definition
DNA_view3d_types.h:270
GPU_shader_shared_utils.hh
bool32_t
int32_t bool32_t
Definition
GPU_shader_shared_utils.hh:84
uint32_t
unsigned int uint32_t
Definition
gpu_glsl_cpp_stubs.hh:361
copy
static void copy(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node)
Definition
node_texture_output.cc:130
StickBoneFlag
StickBoneFlag
Definition
overlay_shader_shared.hh:76
POS_BONE
@ POS_BONE
Definition
overlay_shader_shared.hh:83
POS_HEAD
@ POS_HEAD
Definition
overlay_shader_shared.hh:81
POS_TAIL
@ POS_TAIL
Definition
overlay_shader_shared.hh:82
COL_HEAD
@ COL_HEAD
Definition
overlay_shader_shared.hh:78
COL_BONE
@ COL_BONE
Definition
overlay_shader_shared.hh:80
COL_WIRE
@ COL_WIRE
Definition
overlay_shader_shared.hh:77
COL_TAIL
@ COL_TAIL
Definition
overlay_shader_shared.hh:79
OVERLAY_GridBits
OVERLAY_GridBits
Definition
overlay_shader_shared.hh:31
CLIP_ZNEG
@ CLIP_ZNEG
Definition
overlay_shader_shared.hh:40
SHOW_GRID
@ SHOW_GRID
Definition
overlay_shader_shared.hh:35
SHOW_AXIS_X
@ SHOW_AXIS_X
Definition
overlay_shader_shared.hh:32
PLANE_IMAGE
@ PLANE_IMAGE
Definition
overlay_shader_shared.hh:43
SHOW_AXIS_Z
@ SHOW_AXIS_Z
Definition
overlay_shader_shared.hh:34
PLANE_YZ
@ PLANE_YZ
Definition
overlay_shader_shared.hh:38
SHOW_AXIS_Y
@ SHOW_AXIS_Y
Definition
overlay_shader_shared.hh:33
GRID_BACK
@ GRID_BACK
Definition
overlay_shader_shared.hh:41
PLANE_XZ
@ PLANE_XZ
Definition
overlay_shader_shared.hh:37
PLANE_XY
@ PLANE_XY
Definition
overlay_shader_shared.hh:36
CUSTOM_GRID
@ CUSTOM_GRID
Definition
overlay_shader_shared.hh:44
GRID_CAMERA
@ GRID_CAMERA
Definition
overlay_shader_shared.hh:42
CLIP_ZPOS
@ CLIP_ZPOS
Definition
overlay_shader_shared.hh:39
OVERLAY_ParticleShape
OVERLAY_ParticleShape
Definition
overlay_shader_shared.hh:372
PART_SHAPE_AXIS
@ PART_SHAPE_AXIS
Definition
overlay_shader_shared.hh:373
PART_SHAPE_CIRCLE
@ PART_SHAPE_CIRCLE
Definition
overlay_shader_shared.hh:374
PART_SHAPE_CROSS
@ PART_SHAPE_CROSS
Definition
overlay_shader_shared.hh:375
outline_id_pack
static uint outline_id_pack(uint outline_id, uint object_id)
Definition
overlay_shader_shared.hh:111
OVERLAY_BackgroundType
OVERLAY_BackgroundType
Definition
overlay_shader_shared.hh:14
BG_GRADIENT
@ BG_GRADIENT
Definition
overlay_shader_shared.hh:16
BG_MASK
@ BG_MASK
Definition
overlay_shader_shared.hh:20
BG_SOLID
@ BG_SOLID
Definition
overlay_shader_shared.hh:15
BG_RADIAL
@ BG_RADIAL
Definition
overlay_shader_shared.hh:18
BG_SOLID_CHECKER
@ BG_SOLID_CHECKER
Definition
overlay_shader_shared.hh:19
BG_CHECKER
@ BG_CHECKER
Definition
overlay_shader_shared.hh:17
OVERLAY_UVLineStyle
OVERLAY_UVLineStyle
Definition
overlay_shader_shared.hh:23
OVERLAY_UV_LINE_STYLE_DASH
@ OVERLAY_UV_LINE_STYLE_DASH
Definition
overlay_shader_shared.hh:25
OVERLAY_UV_LINE_STYLE_SHADOW
@ OVERLAY_UV_LINE_STYLE_SHADOW
Definition
overlay_shader_shared.hh:28
OVERLAY_UV_LINE_STYLE_WHITE
@ OVERLAY_UV_LINE_STYLE_WHITE
Definition
overlay_shader_shared.hh:27
OVERLAY_UV_LINE_STYLE_OUTLINE
@ OVERLAY_UV_LINE_STYLE_OUTLINE
Definition
overlay_shader_shared.hh:24
OVERLAY_UV_LINE_STYLE_BLACK
@ OVERLAY_UV_LINE_STYLE_BLACK
Definition
overlay_shader_shared.hh:26
OVERLAY_GRID_STEPS_LEN
#define OVERLAY_GRID_STEPS_LEN
Definition
overlay_shader_shared.hh:120
VertexClass
VertexClass
Definition
overlay_shader_shared.hh:50
VCLASS_EMPTY_SIZE
@ VCLASS_EMPTY_SIZE
Definition
overlay_shader_shared.hh:70
VCLASS_NONE
@ VCLASS_NONE
Definition
overlay_shader_shared.hh:51
VCLASS_LIGHT_SPOT_CONE
@ VCLASS_LIGHT_SPOT_CONE
Definition
overlay_shader_shared.hh:56
VCLASS_LIGHT_AREA_SHAPE
@ VCLASS_LIGHT_AREA_SHAPE
Definition
overlay_shader_shared.hh:53
VCLASS_LIGHT_DIST
@ VCLASS_LIGHT_DIST
Definition
overlay_shader_shared.hh:57
VCLASS_LIGHT_SPOT_BLEND
@ VCLASS_LIGHT_SPOT_BLEND
Definition
overlay_shader_shared.hh:55
VCLASS_EMPTY_AXES
@ VCLASS_EMPTY_AXES
Definition
overlay_shader_shared.hh:67
VCLASS_SCREENALIGNED
@ VCLASS_SCREENALIGNED
Definition
overlay_shader_shared.hh:64
VCLASS_EMPTY_SCALED
@ VCLASS_EMPTY_SCALED
Definition
overlay_shader_shared.hh:66
VCLASS_EMPTY_AXES_SHADOW
@ VCLASS_EMPTY_AXES_SHADOW
Definition
overlay_shader_shared.hh:69
VCLASS_LIGHT_SPOT_SHAPE
@ VCLASS_LIGHT_SPOT_SHAPE
Definition
overlay_shader_shared.hh:54
VCLASS_CAMERA_FRAME
@ VCLASS_CAMERA_FRAME
Definition
overlay_shader_shared.hh:59
VCLASS_SCREENSPACE
@ VCLASS_SCREENSPACE
Definition
overlay_shader_shared.hh:63
VCLASS_EMPTY_AXES_NAME
@ VCLASS_EMPTY_AXES_NAME
Definition
overlay_shader_shared.hh:68
VCLASS_CAMERA_VOLUME
@ VCLASS_CAMERA_VOLUME
Definition
overlay_shader_shared.hh:61
VCLASS_CAMERA_DIST
@ VCLASS_CAMERA_DIST
Definition
overlay_shader_shared.hh:60
BoneEnvelopeData
Definition
overlay_shader_shared.hh:387
BoneEnvelopeData::BoneEnvelopeData
BoneEnvelopeData()=default
BoneEnvelopeData::BoneEnvelopeData
BoneEnvelopeData(float4 &head_sphere, float4 &tail_sphere, float3 &bone_color, float3 &state_color, float3 &x_axis)
Definition
overlay_shader_shared.hh:399
BoneEnvelopeData::BoneEnvelopeData
BoneEnvelopeData(float4 &head_sphere, float4 &tail_sphere, float3 &x_axis)
Definition
overlay_shader_shared.hh:421
BoneEnvelopeData::state_color
float4 state_color
Definition
overlay_shader_shared.hh:392
BoneEnvelopeData::head_sphere
float4 head_sphere
Definition
overlay_shader_shared.hh:388
BoneEnvelopeData::x_axis
float4 x_axis
Definition
overlay_shader_shared.hh:393
BoneEnvelopeData::BoneEnvelopeData
BoneEnvelopeData(float4 &head_sphere, float4 &tail_sphere, float4 &color_and_wire_width, float3 &x_axis)
Definition
overlay_shader_shared.hh:411
BoneEnvelopeData::tail_sphere
float4 tail_sphere
Definition
overlay_shader_shared.hh:389
BoneEnvelopeData::bone_color_and_wire_width
float4 bone_color_and_wire_width
Definition
overlay_shader_shared.hh:391
BoneStickData
Definition
overlay_shader_shared.hh:427
BoneStickData::BoneStickData
BoneStickData()=default
BoneStickData::head_color
float4 head_color
Definition
overlay_shader_shared.hh:432
BoneStickData::tail_color
float4 tail_color
Definition
overlay_shader_shared.hh:433
BoneStickData::bone_start
float4 bone_start
Definition
overlay_shader_shared.hh:428
BoneStickData::bone_color
float4 bone_color
Definition
overlay_shader_shared.hh:431
BoneStickData::BoneStickData
BoneStickData(const float3 &bone_start, const float3 &bone_end, const float4 &wire_color, const float4 &bone_color, const float4 &head_color, const float4 &tail_color)
Definition
overlay_shader_shared.hh:439
BoneStickData::bone_end
float4 bone_end
Definition
overlay_shader_shared.hh:429
BoneStickData::wire_color
float4 wire_color
Definition
overlay_shader_shared.hh:430
ExtraInstanceData
Definition
overlay_shader_shared.hh:324
ExtraInstanceData::color_
float4 color_
Definition
overlay_shader_shared.hh:325
ExtraInstanceData::with_color
ExtraInstanceData with_color(const float4 &color) const
Definition
overlay_shader_shared.hh:336
ExtraInstanceData::ExtraInstanceData
ExtraInstanceData(const float4x4 &object_to_world, const float4 &color, float angle_min_x, float angle_min_z, float angle_max_x, float angle_max_z)
Definition
overlay_shader_shared.hh:344
ExtraInstanceData::ExtraInstanceData
ExtraInstanceData(const float4x4 &object_to_world, const float4 &color, float draw_size)
Definition
overlay_shader_shared.hh:329
ExtraInstanceData::object_to_world
float4x4 object_to_world
Definition
overlay_shader_shared.hh:326
OVERLAY_GridData
Definition
overlay_shader_shared.hh:125
OVERLAY_GridData::distance
float distance
Definition
overlay_shader_shared.hh:128
OVERLAY_GridData::zoom_factor
float zoom_factor
Definition
overlay_shader_shared.hh:130
OVERLAY_GridData::steps
float4 steps[OVERLAY_GRID_STEPS_LEN]
Definition
overlay_shader_shared.hh:126
OVERLAY_GridData::size
float4 size
Definition
overlay_shader_shared.hh:127
OVERLAY_GridData::_pad0
float _pad0
Definition
overlay_shader_shared.hh:131
OVERLAY_GridData::line_size
float line_size
Definition
overlay_shader_shared.hh:129
ParticlePointData
Definition
overlay_shader_shared.hh:378
ParticlePointData::rotation
float4 rotation
Definition
overlay_shader_shared.hh:383
ParticlePointData::position
packed_float3 position
Definition
overlay_shader_shared.hh:379
ParticlePointData::value
float value
Definition
overlay_shader_shared.hh:381
ThemeColors
Definition
overlay_shader_shared.hh:172
ThemeColors::handle_autoclamp
float4 handle_autoclamp
Definition
overlay_shader_shared.hh:227
ThemeColors::after_frame
float4 after_frame
Definition
overlay_shader_shared.hh:267
ThemeColors::background
float4 background
Definition
overlay_shader_shared.hh:216
ThemeColors::edge_seam
float4 edge_seam
Definition
overlay_shader_shared.hh:193
ThemeColors::clipping_border
float4 clipping_border
Definition
overlay_shader_shared.hh:220
ThemeColors::current_frame
float4 current_frame
Definition
overlay_shader_shared.hh:265
ThemeColors::bone_pose_no_target
float4 bone_pose_no_target
Definition
overlay_shader_shared.hh:245
ThemeColors::checker_secondary
float4 checker_secondary
Definition
overlay_shader_shared.hh:219
ThemeColors::edge_crease
float4 edge_crease
Definition
overlay_shader_shared.hh:195
ThemeColors::mball_stiffness_select
float4 mball_stiffness_select
Definition
overlay_shader_shared.hh:263
ThemeColors::bone_active
float4 bone_active
Definition
overlay_shader_shared.hh:248
ThemeColors::text_hi
float4 text_hi
Definition
overlay_shader_shared.hh:256
ThemeColors::deselect
float4 deselect
Definition
overlay_shader_shared.hh:212
ThemeColors::face_back
float4 face_back
Definition
overlay_shader_shared.hh:275
ThemeColors::nurb_sel_uline
float4 nurb_sel_uline
Definition
overlay_shader_shared.hh:235
ThemeColors::handle_sel_autoclamp
float4 handle_sel_autoclamp
Definition
overlay_shader_shared.hh:232
ThemeColors::wire_edit
float4 wire_edit
Definition
overlay_shader_shared.hh:175
ThemeColors::skinroot
float4 skinroot
Definition
overlay_shader_shared.hh:210
ThemeColors::face_freestyle
float4 face_freestyle
Definition
overlay_shader_shared.hh:203
ThemeColors::wire
float4 wire
Definition
overlay_shader_shared.hh:174
ThemeColors::normal
float4 normal
Definition
overlay_shader_shared.hh:206
ThemeColors::bone_pose_ik
float4 bone_pose_ik
Definition
overlay_shader_shared.hh:243
ThemeColors::edit_mesh_active
float4 edit_mesh_active
Definition
overlay_shader_shared.hh:190
ThemeColors::face
float4 face
Definition
overlay_shader_shared.hh:199
ThemeColors::vert
float4 vert
Definition
overlay_shader_shared.hh:186
ThemeColors::face_retopology
float4 face_retopology
Definition
overlay_shader_shared.hh:202
ThemeColors::bone_solid
float4 bone_solid
Definition
overlay_shader_shared.hh:246
ThemeColors::handle_align
float4 handle_align
Definition
overlay_shader_shared.hh:226
ThemeColors::handle_sel_align
float4 handle_sel_align
Definition
overlay_shader_shared.hh:231
ThemeColors::grid
float4 grid
Definition
overlay_shader_shared.hh:269
ThemeColors::bundle_solid
float4 bundle_solid
Definition
overlay_shader_shared.hh:258
ThemeColors::nurb_uline
float4 nurb_uline
Definition
overlay_shader_shared.hh:233
ThemeColors::camera_path
float4 camera_path
Definition
overlay_shader_shared.hh:184
ThemeColors::edge_mode_select
float4 edge_mode_select
Definition
overlay_shader_shared.hh:192
ThemeColors::face_mode_select
float4 face_mode_select
Definition
overlay_shader_shared.hh:201
ThemeColors::checker_primary
float4 checker_primary
Definition
overlay_shader_shared.hh:218
ThemeColors::face_select
float4 face_select
Definition
overlay_shader_shared.hh:200
ThemeColors::camera
float4 camera
Definition
overlay_shader_shared.hh:183
ThemeColors::bone_pose
float4 bone_pose
Definition
overlay_shader_shared.hh:239
ThemeColors::nurb_vline
float4 nurb_vline
Definition
overlay_shader_shared.hh:234
ThemeColors::library
float4 library
Definition
overlay_shader_shared.hh:179
ThemeColors::before_frame
float4 before_frame
Definition
overlay_shader_shared.hh:266
ThemeColors::gpencil_vertex
float4 gpencil_vertex
Definition
overlay_shader_shared.hh:204
ThemeColors::edge_select
float4 edge_select
Definition
overlay_shader_shared.hh:191
ThemeColors::bone_ik_line_spline
float4 bone_ik_line_spline
Definition
overlay_shader_shared.hh:253
ThemeColors::outline
float4 outline
Definition
overlay_shader_shared.hh:213
ThemeColors::handle_auto
float4 handle_auto
Definition
overlay_shader_shared.hh:224
ThemeColors::active_object
float4 active_object
Definition
overlay_shader_shared.hh:176
ThemeColors::bone_pose_active_unsel
float4 bone_pose_active_unsel
Definition
overlay_shader_shared.hh:241
ThemeColors::light
float4 light
Definition
overlay_shader_shared.hh:181
ThemeColors::grid_axis_z
float4 grid_axis_z
Definition
overlay_shader_shared.hh:273
ThemeColors::edge_face_select
float4 edge_face_select
Definition
overlay_shader_shared.hh:197
ThemeColors::handle_vect
float4 handle_vect
Definition
overlay_shader_shared.hh:225
ThemeColors::handle_sel_vect
float4 handle_sel_vect
Definition
overlay_shader_shared.hh:230
ThemeColors::face_front
float4 face_front
Definition
overlay_shader_shared.hh:276
ThemeColors::bone_active_unsel
float4 bone_active_unsel
Definition
overlay_shader_shared.hh:249
ThemeColors::background_gradient
float4 background_gradient
Definition
overlay_shader_shared.hh:217
ThemeColors::mball_radius
float4 mball_radius
Definition
overlay_shader_shared.hh:260
ThemeColors::bone_ik_line
float4 bone_ik_line
Definition
overlay_shader_shared.hh:251
ThemeColors::bone_locked
float4 bone_locked
Definition
overlay_shader_shared.hh:247
ThemeColors::bone_ik_line_no_target
float4 bone_ik_line_no_target
Definition
overlay_shader_shared.hh:252
ThemeColors::edge_bweight
float4 edge_bweight
Definition
overlay_shader_shared.hh:196
ThemeColors::vert_select
float4 vert_select
Definition
overlay_shader_shared.hh:187
ThemeColors::mball_stiffness
float4 mball_stiffness
Definition
overlay_shader_shared.hh:262
ThemeColors::vnormal
float4 vnormal
Definition
overlay_shader_shared.hh:207
ThemeColors::library_select
float4 library_select
Definition
overlay_shader_shared.hh:178
ThemeColors::grid_axis_y
float4 grid_axis_y
Definition
overlay_shader_shared.hh:272
ThemeColors::grid_axis_x
float4 grid_axis_x
Definition
overlay_shader_shared.hh:271
ThemeColors::nurb_sel_vline
float4 nurb_sel_vline
Definition
overlay_shader_shared.hh:236
ThemeColors::vert_missing_data
float4 vert_missing_data
Definition
overlay_shader_shared.hh:189
ThemeColors::object_select
float4 object_select
Definition
overlay_shader_shared.hh:177
ThemeColors::lnormal
float4 lnormal
Definition
overlay_shader_shared.hh:208
ThemeColors::handle_free
float4 handle_free
Definition
overlay_shader_shared.hh:223
ThemeColors::empty
float4 empty
Definition
overlay_shader_shared.hh:185
ThemeColors::vert_unreferenced
float4 vert_unreferenced
Definition
overlay_shader_shared.hh:188
ThemeColors::active_spline
float4 active_spline
Definition
overlay_shader_shared.hh:237
ThemeColors::bone_pose_active
float4 bone_pose_active
Definition
overlay_shader_shared.hh:240
ThemeColors::bone_select
float4 bone_select
Definition
overlay_shader_shared.hh:250
ThemeColors::facedot
float4 facedot
Definition
overlay_shader_shared.hh:209
ThemeColors::speaker
float4 speaker
Definition
overlay_shader_shared.hh:182
ThemeColors::edit_mesh_middle
float4 edit_mesh_middle
Definition
overlay_shader_shared.hh:221
ThemeColors::transform
float4 transform
Definition
overlay_shader_shared.hh:180
ThemeColors::light_no_alpha
float4 light_no_alpha
Definition
overlay_shader_shared.hh:214
ThemeColors::grid_emphasis
float4 grid_emphasis
Definition
overlay_shader_shared.hh:270
ThemeColors::edge_freestyle
float4 edge_freestyle
Definition
overlay_shader_shared.hh:198
ThemeColors::handle_sel_auto
float4 handle_sel_auto
Definition
overlay_shader_shared.hh:229
ThemeColors::bone_pose_constraint
float4 bone_pose_constraint
Definition
overlay_shader_shared.hh:242
ThemeColors::bone_pose_spline_ik
float4 bone_pose_spline_ik
Definition
overlay_shader_shared.hh:244
ThemeColors::edge_sharp
float4 edge_sharp
Definition
overlay_shader_shared.hh:194
ThemeColors::gpencil_vertex_select
float4 gpencil_vertex_select
Definition
overlay_shader_shared.hh:205
ThemeColors::mball_radius_select
float4 mball_radius_select
Definition
overlay_shader_shared.hh:261
ThemeColors::handle_sel_free
float4 handle_sel_free
Definition
overlay_shader_shared.hh:228
ThemeColors::uv_shadow
float4 uv_shadow
Definition
overlay_shader_shared.hh:278
ThemeColors::text
float4 text
Definition
overlay_shader_shared.hh:255
ThemeSizes
Definition
overlay_shader_shared.hh:283
ThemeSizes::object_center
float object_center
Definition
overlay_shader_shared.hh:286
ThemeSizes::edge
float edge
Definition
overlay_shader_shared.hh:293
ThemeSizes::vertex_gpencil
float vertex_gpencil
Definition
overlay_shader_shared.hh:297
ThemeSizes::checker
float checker
Definition
overlay_shader_shared.hh:296
ThemeSizes::pixel
float pixel
Definition
overlay_shader_shared.hh:284
ThemeSizes::light_circle
float light_circle
Definition
overlay_shader_shared.hh:289
ThemeSizes::light_center
float light_center
Definition
overlay_shader_shared.hh:288
ThemeSizes::light_circle_shadow
float light_circle_shadow
Definition
overlay_shader_shared.hh:290
ThemeSizes::_pad1
float _pad1
Definition
overlay_shader_shared.hh:298
ThemeSizes::face_dot
float face_dot
Definition
overlay_shader_shared.hh:294
ThemeSizes::vert
float vert
Definition
overlay_shader_shared.hh:292
UniformData
Definition
overlay_shader_shared.hh:302
UniformData::colors
ThemeColors colors
Definition
overlay_shader_shared.hh:303
UniformData::_pad1
float _pad1
Definition
overlay_shader_shared.hh:314
UniformData::backface_culling
bool32_t backface_culling
Definition
overlay_shader_shared.hh:313
UniformData::fresnel_mix_edit
float fresnel_mix_edit
Definition
overlay_shader_shared.hh:311
UniformData::size_viewport_inv
float2 size_viewport_inv
Definition
overlay_shader_shared.hh:309
UniformData::sizes
ThemeSizes sizes
Definition
overlay_shader_shared.hh:304
UniformData::pixel_fac
float pixel_fac
Definition
overlay_shader_shared.hh:312
UniformData::size_viewport
float2 size_viewport
Definition
overlay_shader_shared.hh:308
VecBase< float, 4 >
VertexData
Definition
overlay_shader_shared.hh:362
VertexData::pos_
float4 pos_
Definition
overlay_shader_shared.hh:363
VertexData::color_
float4 color_
Definition
overlay_shader_shared.hh:365
blender::MatBase
Definition
BLI_math_matrix_types.hh:75
float2
Definition
types_float2.h:12
float3
Definition
sky_float3.h:26
packed_float3
Definition
types_float3.h:147
Generated on Fri Apr 3 2026 06:33:18 for Blender by
doxygen
1.11.0