Blender V5.0
gpu_shader_3D_polyline_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"
16# define SMOOTH_WIDTH 1.0f
17#endif
18
21
22GPU_SHADER_INTERFACE_INFO(gpu_shader_3D_polyline_iface)
23SMOOTH(float4, final_color)
24SMOOTH(float, clip)
25NO_PERSPECTIVE(float, smoothline)
27
28GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline)
29DEFINE_VALUE("SMOOTH_WIDTH", "1.0f")
30PUSH_CONSTANT(float4x4, ModelViewProjectionMatrix)
31PUSH_CONSTANT(float2, viewportSize)
32PUSH_CONSTANT(float, lineWidth)
33PUSH_CONSTANT(bool, lineSmooth)
35PUSH_CONSTANT(int2, gpu_attr_0)
36PUSH_CONSTANT(int3, gpu_vert_stride_count_offset)
37PUSH_CONSTANT(int, gpu_attr_0_len)
38PUSH_CONSTANT(bool, gpu_attr_0_fetch_int)
39PUSH_CONSTANT(bool, gpu_attr_1_fetch_unorm8)
40VERTEX_OUT(gpu_shader_3D_polyline_iface)
41FRAGMENT_OUT(0, float4, fragColor)
42VERTEX_SOURCE("gpu_shader_3D_polyline_vert.glsl")
43FRAGMENT_SOURCE("gpu_shader_3D_polyline_frag.glsl")
44ADDITIONAL_INFO(gpu_srgb_to_framebuffer_space)
45ADDITIONAL_INFO(gpu_index_buffer_load)
47
48GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_uniform_color)
50DEFINE("UNIFORM")
52ADDITIONAL_INFO(gpu_shader_3D_polyline)
54
55GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_uniform_color_clipped)
57/* TODO(fclem): Put in a UBO to fit the 128byte requirement. */
58PUSH_CONSTANT(float4x4, ModelMatrix)
59PUSH_CONSTANT(float4, ClipPlane)
60DEFINE("CLIP")
61ADDITIONAL_INFO(gpu_shader_3D_polyline_uniform_color)
63
64GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_flat_color)
66DEFINE("FLAT")
68PUSH_CONSTANT(int2, gpu_attr_1)
69PUSH_CONSTANT(int, gpu_attr_1_len)
70ADDITIONAL_INFO(gpu_shader_3D_polyline)
72
73GPU_SHADER_CREATE_INFO(gpu_shader_3D_polyline_smooth_color)
75DEFINE("SMOOTH")
77PUSH_CONSTANT(int2, gpu_attr_1)
78PUSH_CONSTANT(int, gpu_attr_1_len)
79ADDITIONAL_INFO(gpu_shader_3D_polyline)
uint pos
#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 GPU_SSBO_POLYLINE_POS_BUF_SLOT
#define SMOOTH(type, name)
#define GPU_SSBO_POLYLINE_COL_BUF_SLOT
#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 FRAGMENT_OUT(slot, type, name)
#define NO_PERSPECTIVE(type, name)
#define VERTEX_SOURCE(filename)
#define DO_STATIC_COMPILATION()
#define DEFINE_VALUE(name, value)
MatBase< 4, 4 > float4x4