Blender V5.0
gpu_shader_2D_widget_infos.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2022 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#ifdef GPU_SHADER
10# pragma once
11# include "gpu_shader_compat.hh"
12
13# include "GPU_shader_shared.hh"
15
16# define widgetID 0
17#endif
18
21
22GPU_SHADER_INTERFACE_INFO(gpu_widget_iface)
23FLAT(float, discardFac)
24FLAT(float, lineWidth)
25FLAT(float2, outRectSize)
26FLAT(float4, borderColor)
27FLAT(float4, embossColor)
28FLAT(float4, outRoundCorners)
29NO_PERSPECTIVE(float, butCo)
30NO_PERSPECTIVE(float2, uvInterp)
31NO_PERSPECTIVE(float4, innerColor)
33
34/* TODO(fclem): Share with C code. */
35#define MAX_PARAM 12
36#define MAX_INSTANCE 6
37
38GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_shared)
39DEFINE_VALUE("MAX_PARAM", STRINGIFY(MAX_PARAM))
40PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
41PUSH_CONSTANT(float3, checkerColorAndSize)
42VERTEX_OUT(gpu_widget_iface)
43FRAGMENT_OUT(0, float4, fragColor)
44VERTEX_SOURCE("gpu_shader_2D_widget_base_vert.glsl")
45FRAGMENT_SOURCE("gpu_shader_2D_widget_base_frag.glsl")
46ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)
48
49GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_base)
51/* gl_InstanceID is supposed to be 0 if not drawing instances, but this seems
52 * to be violated in some drivers. For example, macOS 10.15f.4 and Intel Iris
53 * causes #78307 when using gl_InstanceID outside of instance. */
54DEFINE_VALUE("widgetID", "0")
56ADDITIONAL_INFO(gpu_shader_2D_widget_shared)
58
59GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_base_inst)
61DEFINE_VALUE("widgetID", "gl_InstanceID")
63ADDITIONAL_INFO(gpu_shader_2D_widget_shared)
65
66GPU_SHADER_INTERFACE_INFO(gpu_widget_shadow_iface)
67SMOOTH(float, shadowFalloff)
68SMOOTH(float, innerMask)
70
71GPU_SHADER_CREATE_INFO(gpu_shader_2D_widget_shadow)
73PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
74PUSH_CONSTANT_ARRAY(float4, parameters, 4)
75PUSH_CONSTANT(float, alpha)
76VERTEX_IN(0, uint, vflag)
77VERTEX_OUT(gpu_widget_shadow_iface)
78FRAGMENT_OUT(0, float4, fragColor)
79VERTEX_SOURCE("gpu_shader_2D_widget_shadow_vert.glsl")
80FRAGMENT_SOURCE("gpu_shader_2D_widget_shadow_frag.glsl")
unsigned int uint
#define STRINGIFY(x)
#define MAX_PARAM
#define MAX_INSTANCE
#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 PUSH_CONSTANT_ARRAY(type, name, array_size)
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, 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 DEFINE_VALUE(name, value)
MatBase< 4, 4 > float4x4