Blender  V3.3
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
5 
6 # include "DNA_action_types.h"
7 # include "DNA_view3d_types.h"
8 
9 # ifdef __cplusplus
10 extern "C" {
11 # else
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 
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 
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 };
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
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition: BLI_assert.h:86
@ MOTIONPATH_VERT_KEY
@ MOTIONPATH_VERT_SEL
@ CURVE_HANDLE_ALL
@ CURVE_HANDLE_SELECTED
float float4[4]
OVERLAY_GridBits
@ SHOW_AXIS_X
@ PLANE_IMAGE
@ SHOW_AXIS_Z
@ SHOW_AXIS_Y
@ CUSTOM_GRID
@ GRID_CAMERA
BLI_STATIC_ASSERT(CURVE_HANDLE_SELECTED==0, "Ensure value is sync")
#define OVERLAY_GRID_STEPS_LEN
float4 steps[OVERLAY_GRID_STEPS_LEN]