Blender V5.0
gpu_shader_2D_node_socket_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# define widgetID 0
14#endif
15
17
18GPU_SHADER_INTERFACE_INFO(gpu_node_socket_iface)
19FLAT(float4, finalColor)
20FLAT(float4, finalOutlineColor)
21FLAT(float, finalDotRadius)
22FLAT(float, finalOutlineThickness)
23FLAT(float, AAsize)
24FLAT(float2, extrusion)
25FLAT(int, finalShape)
26SMOOTH(float2, uv)
28
29/* TODO(lone_noel): Share with C code. */
30#define MAX_SOCKET_PARAMETERS 4
31#define MAX_SOCKET_INSTANCE 32
32
33GPU_SHADER_CREATE_INFO(gpu_shader_2D_node_socket_shared)
34DEFINE_VALUE("MAX_SOCKET_PARAMETERS", STRINGIFY(MAX_SOCKET_PARAMETERS))
35PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
36VERTEX_OUT(gpu_node_socket_iface)
37FRAGMENT_OUT(0, float4, fragColor)
38VERTEX_SOURCE("gpu_shader_2D_node_socket_vert.glsl")
39FRAGMENT_SOURCE("gpu_shader_2D_node_socket_frag.glsl")
41
42GPU_SHADER_CREATE_INFO(gpu_shader_2D_node_socket)
44/* gl_InstanceID is supposed to be 0 if not drawing instances, but this seems
45 * to be violated in some drivers. For example, macOS 10.15f.4 and Intel Iris
46 * causes #78307 when using gl_InstanceID outside of instance. */
47DEFINE_VALUE("widgetID", "0")
49ADDITIONAL_INFO(gpu_shader_2D_node_socket_shared)
51
52GPU_SHADER_CREATE_INFO(gpu_shader_2D_node_socket_inst)
54DEFINE_VALUE("widgetID", "gl_InstanceID")
56ADDITIONAL_INFO(gpu_shader_2D_node_socket_shared)
#define STRINGIFY(x)
#define MAX_SOCKET_PARAMETERS
Definition drawnode.cc:1710
#define MAX_SOCKET_INSTANCE
Definition drawnode.cc:1711
#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 VERTEX_SOURCE(filename)
#define DO_STATIC_COMPILATION()
#define DEFINE_VALUE(name, value)
MatBase< 4, 4 > float4x4