Blender V4.5
overlay_armature_info.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#ifdef GPU_SHADER
6# pragma once
7# include "gpu_glsl_cpp_stubs.hh"
8
10# include "draw_view_info.hh"
11
12# include "gpu_index_load_info.hh"
13
14# include "overlay_common_info.hh"
16#endif
17
19
20GPU_SHADER_CREATE_INFO(overlay_frag_output)
21FRAGMENT_OUT(0, float4, frag_color)
22FRAGMENT_OUT(1, float4, line_output)
24
25GPU_SHADER_INTERFACE_INFO(overlay_armature_wire_iface)
26FLAT(float4, final_color)
27FLAT(float2, edge_start)
28NO_PERSPECTIVE(float2, edge_pos)
30
31GPU_SHADER_CREATE_INFO(overlay_armature_common)
32PUSH_CONSTANT(float, alpha)
33ADDITIONAL_INFO(draw_view)
35
36/* -------------------------------------------------------------------- */
39
40GPU_SHADER_CREATE_INFO(overlay_armature_sphere_outline)
43VERTEX_OUT(overlay_armature_wire_iface)
44VERTEX_SOURCE("overlay_armature_sphere_outline_vert.glsl")
45FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
46ADDITIONAL_INFO(overlay_frag_output)
47ADDITIONAL_INFO(overlay_armature_common)
48ADDITIONAL_INFO(draw_globals)
49STORAGE_BUF(0, read, float4x4, data_buf[])
51
52OVERLAY_INFO_VARIATIONS(overlay_armature_sphere_outline)
53
54GPU_SHADER_INTERFACE_INFO(overlay_armature_sphere_solid_iface)
55FLAT(float3, final_state_color)
56FLAT(float3, final_bone_color)
57FLAT(float4x4, sphere_matrix)
58SMOOTH(float3, view_position)
60
61GPU_SHADER_CREATE_INFO(overlay_armature_sphere_solid)
64/* Per instance. */
65VERTEX_IN(1, float4, color)
66DEPTH_WRITE(DepthWrite::GREATER)
67VERTEX_OUT(overlay_armature_sphere_solid_iface)
68VERTEX_SOURCE("overlay_armature_sphere_solid_vert.glsl")
69FRAGMENT_SOURCE("overlay_armature_sphere_solid_frag.glsl")
70ADDITIONAL_INFO(overlay_frag_output)
71ADDITIONAL_INFO(overlay_armature_common)
72ADDITIONAL_INFO(draw_globals)
73STORAGE_BUF(0, read, float4x4, data_buf[])
75
76OVERLAY_INFO_VARIATIONS(overlay_armature_sphere_solid)
77
79
80/* -------------------------------------------------------------------- */
83
84GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_outline_iface)
85FLAT(float4, final_color)
86FLAT(float2, edge_start)
87NO_PERSPECTIVE(float2, edge_pos)
89
90GPU_SHADER_CREATE_INFO(overlay_armature_shape_outline)
92STORAGE_BUF_FREQ(0, read, float, pos[], GEOMETRY)
93STORAGE_BUF(1, read, float4x4, data_buf[])
94PUSH_CONSTANT(int2, gpu_attr_0)
95VERTEX_OUT(overlay_armature_shape_outline_iface)
96VERTEX_SOURCE("overlay_armature_shape_outline_vert.glsl")
97FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
98ADDITIONAL_INFO(overlay_frag_output)
99ADDITIONAL_INFO(overlay_armature_common)
100ADDITIONAL_INFO(gpu_index_buffer_load)
101ADDITIONAL_INFO(draw_globals)
103
104OVERLAY_INFO_VARIATIONS(overlay_armature_shape_outline)
105
106GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_solid_iface)
107SMOOTH(float4, final_color)
108FLAT(int, inverted)
110
111GPU_SHADER_CREATE_INFO(overlay_armature_shape_solid)
115/* Per instance. */
116DEPTH_WRITE(DepthWrite::GREATER)
117VERTEX_OUT(overlay_armature_shape_solid_iface)
118VERTEX_SOURCE("overlay_armature_shape_solid_vert.glsl")
119FRAGMENT_SOURCE("overlay_armature_shape_solid_frag.glsl")
120ADDITIONAL_INFO(overlay_frag_output)
121ADDITIONAL_INFO(overlay_armature_common)
122ADDITIONAL_INFO(draw_globals)
123STORAGE_BUF(0, read, float4x4, data_buf[])
125
126OVERLAY_INFO_VARIATIONS(overlay_armature_shape_solid)
127
128GPU_SHADER_INTERFACE_INFO(overlay_armature_shape_wire_iface)
129FLAT(float4, final_color)
130FLAT(float, wire_width)
131NO_PERSPECTIVE(float, edge_coord)
133
134GPU_SHADER_CREATE_INFO(overlay_armature_shape_wire)
136PUSH_CONSTANT(bool, do_smooth_wire)
137STORAGE_BUF_FREQ(0, read, float, pos[], GEOMETRY)
138STORAGE_BUF(1, read, float4x4, data_buf[])
139PUSH_CONSTANT(int2, gpu_attr_0)
140PUSH_CONSTANT(bool, use_arrow_drawing)
141VERTEX_OUT(overlay_armature_shape_wire_iface)
142VERTEX_SOURCE("overlay_armature_shape_wire_vert.glsl")
143FRAGMENT_SOURCE("overlay_armature_shape_wire_frag.glsl")
144TYPEDEF_SOURCE("overlay_shader_shared.hh")
145ADDITIONAL_INFO(overlay_frag_output)
146ADDITIONAL_INFO(overlay_armature_common)
147ADDITIONAL_INFO(gpu_index_buffer_load)
148ADDITIONAL_INFO(draw_globals)
150
151OVERLAY_INFO_VARIATIONS(overlay_armature_shape_wire)
152
153GPU_SHADER_CREATE_INFO(overlay_armature_shape_wire_strip)
155ADDITIONAL_INFO(overlay_armature_shape_wire)
156DEFINE("FROM_LINE_STRIP")
158
159OVERLAY_INFO_VARIATIONS(overlay_armature_shape_wire_strip)
160
162
163/* -------------------------------------------------------------------- */
166
167GPU_SHADER_CREATE_INFO(overlay_armature_envelope_outline)
169TYPEDEF_SOURCE("overlay_shader_shared.hh")
170VERTEX_IN(0, float2, pos0)
171VERTEX_IN(1, float2, pos1)
172VERTEX_IN(2, float2, pos2)
173VERTEX_OUT(overlay_armature_wire_iface)
174VERTEX_SOURCE("overlay_armature_envelope_outline_vert.glsl")
175FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
176ADDITIONAL_INFO(overlay_frag_output)
177ADDITIONAL_INFO(overlay_armature_common)
178ADDITIONAL_INFO(draw_globals)
179STORAGE_BUF(0, read, BoneEnvelopeData, data_buf[])
181
182OVERLAY_INFO_VARIATIONS(overlay_armature_envelope_outline)
183
184GPU_SHADER_INTERFACE_INFO(overlay_armature_envelope_solid_iface)
185FLAT(float3, final_state_color)
186FLAT(float3, final_bone_color)
187SMOOTH(float3, view_normal)
189
190GPU_SHADER_CREATE_INFO(overlay_armature_envelope_solid)
192TYPEDEF_SOURCE("overlay_shader_shared.hh")
194VERTEX_OUT(overlay_armature_envelope_solid_iface)
195PUSH_CONSTANT(bool, is_distance)
196VERTEX_SOURCE("overlay_armature_envelope_solid_vert.glsl")
197FRAGMENT_SOURCE("overlay_armature_envelope_solid_frag.glsl")
198ADDITIONAL_INFO(overlay_frag_output)
199ADDITIONAL_INFO(overlay_armature_common)
200ADDITIONAL_INFO(draw_globals)
201STORAGE_BUF(0, read, BoneEnvelopeData, data_buf[])
203
204OVERLAY_INFO_VARIATIONS(overlay_armature_envelope_solid)
205
207
208/* -------------------------------------------------------------------- */
211
212GPU_SHADER_INTERFACE_INFO(overlay_armature_stick_iface)
213NO_PERSPECTIVE(float, color_fac)
214FLAT(float4, final_wire_color)
215FLAT(float4, final_inner_color)
217
218GPU_SHADER_CREATE_INFO(overlay_armature_stick_base)
219TYPEDEF_SOURCE("overlay_shader_shared.hh")
220/* Bone aligned screen space. */
222VERTEX_IN(1, int, vclass)
223VERTEX_OUT(overlay_armature_stick_iface)
224VERTEX_SOURCE("overlay_armature_stick_vert.glsl")
225FRAGMENT_SOURCE("overlay_armature_stick_frag.glsl")
226ADDITIONAL_INFO(overlay_frag_output)
227ADDITIONAL_INFO(overlay_armature_common)
228ADDITIONAL_INFO(draw_globals)
229STORAGE_BUF(0, read, BoneStickData, data_buf[])
231
232OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_armature_stick, overlay_armature_stick_base)
233
235
236/* -------------------------------------------------------------------- */
239
240GPU_SHADER_CREATE_INFO(overlay_armature_dof)
242TYPEDEF_SOURCE("overlay_shader_shared.hh")
244VERTEX_OUT(overlay_armature_wire_iface)
245VERTEX_SOURCE("overlay_armature_dof_vert.glsl")
246FRAGMENT_SOURCE("overlay_armature_dof_solid_frag.glsl")
247ADDITIONAL_INFO(overlay_frag_output)
248ADDITIONAL_INFO(overlay_armature_common)
249ADDITIONAL_INFO(draw_globals)
250STORAGE_BUF(0, read, ExtraInstanceData, data_buf[])
252
253OVERLAY_INFO_CLIP_VARIATION(overlay_armature_dof)
254
256
257/* -------------------------------------------------------------------- */
260
261GPU_SHADER_CREATE_INFO(overlay_armature_wire_base)
262TYPEDEF_SOURCE("overlay_shader_shared.hh")
263PUSH_CONSTANT(float, alpha)
264VERTEX_OUT(overlay_armature_wire_iface)
265VERTEX_SOURCE("overlay_armature_wire_vert.glsl")
266FRAGMENT_SOURCE("overlay_armature_wire_frag.glsl")
267ADDITIONAL_INFO(draw_view)
268ADDITIONAL_INFO(overlay_frag_output)
269ADDITIONAL_INFO(draw_globals)
270STORAGE_BUF(0, read, VertexData, data_buf[])
272
273OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_armature_wire, overlay_armature_wire_base)
274
uint pos
uint nor
VecBase< float, 4 > float4
MatBase< 4, 4 > float4x4
#define TYPEDEF_SOURCE(filename)
#define VERTEX_OUT(stage_interface)
#define SMOOTH(type, name)
#define GPU_SHADER_INTERFACE_END()
#define FRAGMENT_SOURCE(filename)
#define STORAGE_BUF_FREQ(slot, qualifiers, type_name, name, freq)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define FLAT(type, name)
#define FRAGMENT_OUT(slot, type, name)
#define NO_PERSPECTIVE(type, name)
#define GPU_SHADER_INTERFACE_INFO(_interface)
#define STORAGE_BUF(slot, qualifiers, type_name, name)
#define GPU_SHADER_CREATE_INFO(_info)
#define VERTEX_SOURCE(filename)
#define VERTEX_IN(slot, type, name)
#define GPU_SHADER_CREATE_END()
#define DO_STATIC_COMPILATION()
#define DEPTH_WRITE(value)
#define OVERLAY_INFO_VARIATIONS(name)
#define OVERLAY_INFO_CLIP_VARIATION(name)
#define OVERLAY_INFO_VARIATIONS_MODELMAT(name, base_info)
read