Blender V5.0
overlay_paint_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"
11#endif
12
14
15/* -------------------------------------------------------------------- */
20
21GPU_SHADER_CREATE_INFO(overlay_paint_face)
24VERTEX_IN(1, int, paint_overlay_flag)
25PUSH_CONSTANT(float4, ucolor)
26FRAGMENT_OUT(0, float4, frag_color)
27VERTEX_SOURCE("overlay_paint_face_vert.glsl")
28FRAGMENT_SOURCE("overlay_uniform_color_frag.glsl")
29ADDITIONAL_INFO(draw_view)
30ADDITIONAL_INFO(draw_modelmat)
31ADDITIONAL_INFO(draw_globals)
33
34OVERLAY_INFO_CLIP_VARIATION(overlay_paint_face)
35
37
38/* -------------------------------------------------------------------- */
43
44GPU_SHADER_INTERFACE_INFO(overlay_overlay_paint_point_iface)
45SMOOTH(float4, final_color)
47
48GPU_SHADER_CREATE_INFO(overlay_paint_point)
51VERTEX_IN(1, int, paint_overlay_flag)
52VERTEX_OUT(overlay_overlay_paint_point_iface)
53FRAGMENT_OUT(0, float4, frag_color)
54VERTEX_SOURCE("overlay_paint_point_vert.glsl")
55FRAGMENT_SOURCE("overlay_point_varying_color_frag.glsl")
56ADDITIONAL_INFO(draw_view)
57ADDITIONAL_INFO(draw_modelmat)
58ADDITIONAL_INFO(draw_globals)
60
61OVERLAY_INFO_CLIP_VARIATION(overlay_paint_point)
62
64
65/* -------------------------------------------------------------------- */
70
71GPU_SHADER_INTERFACE_INFO(overlay_paint_texture_iface)
72SMOOTH(float2, uv_interp)
74
75GPU_SHADER_CREATE_INFO(overlay_paint_texture)
78VERTEX_IN(1, float2, mu) /* Masking uv map. */
79VERTEX_OUT(overlay_paint_texture_iface)
80SAMPLER(0, sampler2D, mask_image)
81PUSH_CONSTANT(float3, mask_color)
82PUSH_CONSTANT(float, opacity) /* `1.0f` by default. */
83PUSH_CONSTANT(bool, mask_invert_stencil)
84PUSH_CONSTANT(bool, mask_image_premultiplied)
85FRAGMENT_OUT(0, float4, frag_color)
86VERTEX_SOURCE("overlay_paint_texture_vert.glsl")
87FRAGMENT_SOURCE("overlay_paint_texture_frag.glsl")
88ADDITIONAL_INFO(draw_view)
89ADDITIONAL_INFO(draw_modelmat)
90ADDITIONAL_INFO(draw_globals)
92
93OVERLAY_INFO_CLIP_VARIATION(overlay_paint_texture)
94
96
97/* -------------------------------------------------------------------- */
103
104GPU_SHADER_INTERFACE_INFO(overlay_paint_weight_iface)
105SMOOTH(float2, weight_interp) /* (weight, alert) */
106SMOOTH(float, color_fac)
108
109GPU_SHADER_CREATE_INFO(overlay_paint_weight)
111VERTEX_IN(0, float, weight)
114VERTEX_OUT(overlay_paint_weight_iface)
115SAMPLER(0, sampler1D, colorramp)
116PUSH_CONSTANT(float, opacity) /* `1.0f` by default. */
117PUSH_CONSTANT(bool, draw_contours) /* `false` by default. */
118FRAGMENT_OUT(0, float4, frag_color)
119FRAGMENT_OUT(1, float4, line_output)
120VERTEX_SOURCE("overlay_paint_weight_vert.glsl")
121FRAGMENT_SOURCE("overlay_paint_weight_frag.glsl")
122ADDITIONAL_INFO(draw_view)
123ADDITIONAL_INFO(draw_modelmat)
124ADDITIONAL_INFO(draw_globals)
126
127OVERLAY_INFO_CLIP_VARIATION(overlay_paint_weight)
128
129GPU_SHADER_CREATE_INFO(overlay_paint_weight_fake_shading)
131ADDITIONAL_INFO(overlay_paint_weight)
132DEFINE("FAKE_SHADING")
133PUSH_CONSTANT(float3, light_dir)
135
136OVERLAY_INFO_CLIP_VARIATION(overlay_paint_weight_fake_shading)
137
139
140/* -------------------------------------------------------------------- */
146
147GPU_SHADER_INTERFACE_INFO(overlay_paint_wire_iface)
148FLAT(float4, final_color)
150
151GPU_SHADER_CREATE_INFO(overlay_paint_wire)
154VERTEX_IN(1, int, paint_overlay_flag)
155VERTEX_OUT(overlay_paint_wire_iface)
156PUSH_CONSTANT(bool, use_select)
157FRAGMENT_OUT(0, float4, frag_color)
158VERTEX_SOURCE("overlay_paint_wire_vert.glsl")
159FRAGMENT_SOURCE("overlay_varying_color.glsl")
160ADDITIONAL_INFO(draw_view)
161ADDITIONAL_INFO(draw_modelmat)
162ADDITIONAL_INFO(draw_globals)
164
165OVERLAY_INFO_CLIP_VARIATION(overlay_paint_wire)
166
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 VERTEX_OUT(stage_interface)
#define SMOOTH(type, name)
#define SAMPLER(slot, type, name)
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define FLAT(type, name)
#define FRAGMENT_OUT(slot, type, name)
#define VERTEX_SOURCE(filename)
#define VERTEX_IN(slot, type, name)
#define DO_STATIC_COMPILATION()
SamplerBase< float, 1 > sampler1D
SamplerBase< float, 2 > sampler2D
#define OVERLAY_INFO_CLIP_VARIATION(name)