Blender V5.0
overlay_wireframe_infos.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_shader_compat.hh"
8
10# include "draw_view_infos.hh"
13
14# define CUSTOM_DEPTH_BIAS_CONST
15#endif
16
18
19GPU_SHADER_INTERFACE_INFO(overlay_wireframe_iface)
20SMOOTH(float4, final_color)
21FLAT(float2, edge_start)
22NO_PERSPECTIVE(float2, edge_pos)
24
25GPU_SHADER_CREATE_INFO(overlay_wireframe_base)
26PUSH_CONSTANT(float, ndc_offset_factor)
27PUSH_CONSTANT(float, wire_step_param)
28PUSH_CONSTANT(float, wire_opacity)
29PUSH_CONSTANT(bool, use_coloring)
30PUSH_CONSTANT(bool, is_transform)
31PUSH_CONSTANT(int, color_type)
32PUSH_CONSTANT(bool, is_hair)
33PUSH_CONSTANT(float4x4, hair_dupli_matrix)
34/* Scene Depth texture copy for manual depth test. */
35SAMPLER(0, sampler2DDepth, depth_tx)
38VERTEX_IN(2, float, wd) /* wire-data. */
39VERTEX_OUT(overlay_wireframe_iface)
40VERTEX_SOURCE("overlay_wireframe_vert.glsl")
41FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
42FRAGMENT_OUT(0, float4, frag_color)
43FRAGMENT_OUT(1, float4, line_output)
45SPECIALIZATION_CONSTANT(bool, use_custom_depth_bias, true)
46ADDITIONAL_INFO(draw_view)
47ADDITIONAL_INFO(draw_object_infos)
48ADDITIONAL_INFO(draw_globals)
50
51OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe, overlay_wireframe_base)
52
53GPU_SHADER_CREATE_INFO(overlay_wireframe_curve_base)
54DEFINE("CURVES")
55PUSH_CONSTANT(float, ndc_offset_factor)
56PUSH_CONSTANT(float, wire_opacity)
57PUSH_CONSTANT(bool, use_coloring)
58PUSH_CONSTANT(bool, is_transform)
59PUSH_CONSTANT(int, color_type)
61VERTEX_OUT(overlay_wireframe_iface)
62VERTEX_SOURCE("overlay_wireframe_vert.glsl")
63FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
64FRAGMENT_OUT(0, float4, frag_color)
65FRAGMENT_OUT(1, float4, line_output)
66ADDITIONAL_INFO(draw_view)
67ADDITIONAL_INFO(draw_object_infos)
68ADDITIONAL_INFO(draw_globals)
70
71OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe_curve, overlay_wireframe_curve_base)
72
73GPU_SHADER_INTERFACE_INFO(overlay_wireframe_points_iface)
74FLAT(float4, final_color)
75FLAT(float4, final_color_inner)
77
78GPU_SHADER_CREATE_INFO(overlay_wireframe_points_base)
79DEFINE("POINTS")
80PUSH_CONSTANT(float, ndc_offset_factor)
81PUSH_CONSTANT(bool, use_coloring)
82PUSH_CONSTANT(bool, is_transform)
83PUSH_CONSTANT(int, color_type)
85VERTEX_OUT(overlay_wireframe_points_iface)
86VERTEX_SOURCE("overlay_wireframe_vert.glsl")
87FRAGMENT_SOURCE("overlay_wireframe_frag.glsl")
88FRAGMENT_OUT(0, float4, frag_color)
89FRAGMENT_OUT(1, float4, line_output)
90ADDITIONAL_INFO(draw_view)
91ADDITIONAL_INFO(draw_object_infos)
92ADDITIONAL_INFO(draw_globals)
94
95OVERLAY_INFO_VARIATIONS_MODELMAT(overlay_wireframe_points, overlay_wireframe_points_base)
96
97GPU_SHADER_INTERFACE_INFO(overlay_edit_uv_iface_wireframe)
98SMOOTH(float, selection_fac)
99FLAT(float2, stipple_start)
100NO_PERSPECTIVE(float, edge_coord)
101NO_PERSPECTIVE(float2, stipple_pos)
103
104GPU_SHADER_CREATE_INFO(overlay_wireframe_uv)
106DEFINE("WIREFRAME")
107STORAGE_BUF_FREQ(0, read, float, au[], GEOMETRY)
108PUSH_CONSTANT(int2, gpu_attr_0)
109DEFINE_VALUE("line_style", "4u" /* OVERLAY_UV_LINE_STYLE_SHADOW */)
110DEFINE_VALUE("dash_length", "1" /* Not used by this line style */)
111DEFINE_VALUE("use_edge_select", "false")
112PUSH_CONSTANT(bool, do_smooth_wire)
113PUSH_CONSTANT(float, alpha)
114VERTEX_OUT(overlay_edit_uv_iface_wireframe)
115FRAGMENT_OUT(0, float4, frag_color)
116/* Note: Reuse edit mode shader as it is mostly the same. */
117VERTEX_SOURCE("overlay_edit_uv_edges_vert.glsl")
118FRAGMENT_SOURCE("overlay_edit_uv_edges_frag.glsl")
119TYPEDEF_SOURCE("overlay_shader_shared.hh")
120ADDITIONAL_INFO(draw_view)
121ADDITIONAL_INFO(draw_modelmat)
122ADDITIONAL_INFO(draw_object_infos)
123ADDITIONAL_INFO(draw_resource_id_varying)
124ADDITIONAL_INFO(gpu_index_buffer_load)
125ADDITIONAL_INFO(draw_globals)
return true
uint pos
uint nor
#define GPU_SHADER_INTERFACE_END()
#define GPU_SHADER_INTERFACE_INFO(_interface)
#define GPU_SHADER_CREATE_INFO(_info)
#define GPU_SHADER_CREATE_END()
#define TYPEDEF_SOURCE(filename)
#define VERTEX_OUT(stage_interface)
#define SMOOTH(type, name)
#define SAMPLER(slot, type, name)
#define FRAGMENT_SOURCE(filename)
#define STORAGE_BUF_FREQ(slot, qualifiers, type_name, name, freq)
#define SPECIALIZATION_CONSTANT(type, name, default_value)
#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 VERTEX_SOURCE(filename)
#define VERTEX_IN(slot, type, name)
#define DO_STATIC_COMPILATION()
#define DEPTH_WRITE(value)
#define DEFINE_VALUE(name, value)
MatBase< 4, 4 > float4x4
SamplerBase< float, 2, false, false, false, true > sampler2DDepth
#define OVERLAY_INFO_VARIATIONS_MODELMAT(name, base_info)