Blender
V3.3
source
blender
draw
engines
overlay
overlay_shader_shared.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#ifndef GPU_SHADER
4
# include "
GPU_shader_shared_utils.h
"
5
6
# include "
DNA_action_types.h
"
7
# include "
DNA_view3d_types.h
"
8
9
# ifdef __cplusplus
10
extern
"C"
{
11
# else
12
typedef
enum
OVERLAY_GridBits
OVERLAY_GridBits
;
13
# endif
14
typedef
struct
OVERLAY_GridData
OVERLAY_GridData
;
15
#endif
16
17
/* TODO(fclem): Should eventually become OVERLAY_BackgroundType.
18
* But there is no uint push constant functions at the moment. */
19
#define BG_SOLID 0
20
#define BG_GRADIENT 1
21
#define BG_CHECKER 2
22
#define BG_RADIAL 3
23
#define BG_SOLID_CHECKER 4
24
#define BG_MASK 5
25
26
enum
OVERLAY_GridBits
{
27
SHOW_AXIS_X
= (1u << 0u),
28
SHOW_AXIS_Y
= (1u << 1u),
29
SHOW_AXIS_Z
= (1u << 2u),
30
SHOW_GRID
= (1u << 3u),
31
PLANE_XY
= (1u << 4u),
32
PLANE_XZ
= (1u << 5u),
33
PLANE_YZ
= (1u << 6u),
34
CLIP_ZPOS
= (1u << 7u),
35
CLIP_ZNEG
= (1u << 8u),
36
GRID_BACK
= (1u << 9u),
37
GRID_CAMERA
= (1u << 10u),
38
PLANE_IMAGE
= (1u << 11u),
39
CUSTOM_GRID
= (1u << 12u),
40
};
41
42
/* Match: #SI_GRID_STEPS_LEN */
43
#define OVERLAY_GRID_STEPS_LEN 8
44
45
struct
OVERLAY_GridData
{
46
float4
steps
[
OVERLAY_GRID_STEPS_LEN
];
/* float arrays are padded to float4 in std130. */
47
float4
size
;
/* float3 padded to float4. */
48
float
distance
;
49
float
line_size
;
50
float
zoom_factor
;
/* Only for UV editor */
51
float
_pad0
;
52
};
53
BLI_STATIC_ASSERT_ALIGN
(
OVERLAY_GridData
, 16)
54
55
#ifdef GPU_SHADER
56
/* Keep the same values as in `draw_cache_imp_curve.c` */
57
# define ACTIVE_NURB (1 << 2)
58
# define BEZIER_HANDLE (1 << 3)
59
# define EVEN_U_BIT (1 << 4)
60
# define COLOR_SHIFT 5
61
62
/* Keep the same value in `handle_display` in `DNA_view3d_types.h` */
63
# define CURVE_HANDLE_SELECTED 0
64
# define CURVE_HANDLE_ALL 1
65
66
# define GP_EDIT_POINT_SELECTED 1u
/* 1 << 0 */
67
# define GP_EDIT_STROKE_SELECTED 2u
/* 1 << 1 */
68
# define GP_EDIT_MULTIFRAME 4u
/* 1 << 2 */
69
# define GP_EDIT_STROKE_START 8u
/* 1 << 3 */
70
# define GP_EDIT_STROKE_END 16u
/* 1 << 4 */
71
# define GP_EDIT_POINT_DIMMED 32u
/* 1 << 5 */
72
73
# define MOTIONPATH_VERT_SEL (1 << 0)
74
# define MOTIONPATH_VERT_KEY (1 << 1)
75
76
#else
77
/* TODO(fclem): Find a better way to share enums/defines from DNA files with GLSL. */
78
BLI_STATIC_ASSERT
(
CURVE_HANDLE_SELECTED
== 0,
"Ensure value is sync"
);
79
BLI_STATIC_ASSERT
(
CURVE_HANDLE_ALL
== 1,
"Ensure value is sync"
);
80
BLI_STATIC_ASSERT
(
MOTIONPATH_VERT_SEL
== (1 << 0),
"Ensure value is sync"
);
81
BLI_STATIC_ASSERT
(
MOTIONPATH_VERT_KEY
== (1 << 1),
"Ensure value is sync"
);
82
#endif
83
84
#ifndef GPU_SHADER
85
# ifdef __cplusplus
86
}
87
# endif
88
#endif
BLI_STATIC_ASSERT_ALIGN
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition:
BLI_assert.h:86
DNA_action_types.h
MOTIONPATH_VERT_KEY
@ MOTIONPATH_VERT_KEY
Definition:
DNA_action_types.h:48
MOTIONPATH_VERT_SEL
@ MOTIONPATH_VERT_SEL
Definition:
DNA_action_types.h:47
DNA_view3d_types.h
CURVE_HANDLE_ALL
@ CURVE_HANDLE_ALL
Definition:
DNA_view3d_types.h:239
CURVE_HANDLE_SELECTED
@ CURVE_HANDLE_SELECTED
Definition:
DNA_view3d_types.h:237
GPU_shader_shared_utils.h
float4
float float4[4]
Definition:
GPU_shader_shared_utils.h:87
OVERLAY_GridBits
OVERLAY_GridBits
Definition:
overlay_shader_shared.h:26
CLIP_ZNEG
@ CLIP_ZNEG
Definition:
overlay_shader_shared.h:35
SHOW_GRID
@ SHOW_GRID
Definition:
overlay_shader_shared.h:30
SHOW_AXIS_X
@ SHOW_AXIS_X
Definition:
overlay_shader_shared.h:27
PLANE_IMAGE
@ PLANE_IMAGE
Definition:
overlay_shader_shared.h:38
SHOW_AXIS_Z
@ SHOW_AXIS_Z
Definition:
overlay_shader_shared.h:29
PLANE_YZ
@ PLANE_YZ
Definition:
overlay_shader_shared.h:33
SHOW_AXIS_Y
@ SHOW_AXIS_Y
Definition:
overlay_shader_shared.h:28
GRID_BACK
@ GRID_BACK
Definition:
overlay_shader_shared.h:36
PLANE_XZ
@ PLANE_XZ
Definition:
overlay_shader_shared.h:32
PLANE_XY
@ PLANE_XY
Definition:
overlay_shader_shared.h:31
CUSTOM_GRID
@ CUSTOM_GRID
Definition:
overlay_shader_shared.h:39
GRID_CAMERA
@ GRID_CAMERA
Definition:
overlay_shader_shared.h:37
CLIP_ZPOS
@ CLIP_ZPOS
Definition:
overlay_shader_shared.h:34
BLI_STATIC_ASSERT
BLI_STATIC_ASSERT(CURVE_HANDLE_SELECTED==0, "Ensure value is sync")
OVERLAY_GRID_STEPS_LEN
#define OVERLAY_GRID_STEPS_LEN
Definition:
overlay_shader_shared.h:43
OVERLAY_GridData
Definition:
overlay_shader_shared.h:45
OVERLAY_GridData::distance
float distance
Definition:
overlay_shader_shared.h:48
OVERLAY_GridData::zoom_factor
float zoom_factor
Definition:
overlay_shader_shared.h:50
OVERLAY_GridData::steps
float4 steps[OVERLAY_GRID_STEPS_LEN]
Definition:
overlay_shader_shared.h:46
OVERLAY_GridData::size
float4 size
Definition:
overlay_shader_shared.h:47
OVERLAY_GridData::_pad0
float _pad0
Definition:
overlay_shader_shared.h:51
OVERLAY_GridData::line_size
float line_size
Definition:
overlay_shader_shared.h:49
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1