Blender V4.3
basic_depth_info.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
6
7/* -------------------------------------------------------------------- */
13GPU_SHADER_CREATE_INFO(basic_conservative)
14 .geometry_layout(PrimitiveIn::TRIANGLES, PrimitiveOut::TRIANGLE_STRIP, 3)
15 .geometry_source("basic_conservative_depth_geom.glsl");
16
19/* -------------------------------------------------------------------- */
23GPU_SHADER_CREATE_INFO(basic_mesh)
24 .vertex_in(0, Type::VEC3, "pos")
25 .vertex_source("basic_depth_vert.glsl")
26 .additional_info("draw_mesh");
27
28GPU_SHADER_CREATE_INFO(basic_pointcloud)
29 .vertex_source("basic_depth_pointcloud_vert.glsl")
30 .additional_info("draw_pointcloud");
31
32GPU_SHADER_CREATE_INFO(basic_curves)
33 .vertex_source("basic_depth_curves_vert.glsl")
34 .additional_info("draw_hair");
35
36/* Geometry-shader alternative paths. */
37GPU_SHADER_CREATE_INFO(basic_mesh_conservative_no_geom)
38 .vertex_in(0, Type::VEC3, "pos")
39 .vertex_source("basic_depth_vert_conservative_no_geom.glsl")
40 .additional_info("draw_mesh");
41
42GPU_SHADER_CREATE_INFO(basic_pointcloud_conservative_no_geom)
43 .define("CONSERVATIVE_RASTER")
44 .vertex_source("basic_depth_pointcloud_vert.glsl")
45 .additional_info("draw_pointcloud");
46
49/* -------------------------------------------------------------------- */
53#define BASIC_FINAL_VARIATION(name, ...) \
54 GPU_SHADER_CREATE_INFO(name).additional_info(__VA_ARGS__).do_static_compilation(true);
55
56#define BASIC_CLIPPING_VARIATIONS(prefix, ...) \
57 BASIC_FINAL_VARIATION(prefix##_clipped, "drw_clipped", __VA_ARGS__) \
58 BASIC_FINAL_VARIATION(prefix, __VA_ARGS__)
59
60#define BASIC_CONSERVATIVE_VARIATIONS(prefix, ...) \
61 BASIC_CLIPPING_VARIATIONS(prefix##_conservative, "basic_conservative", __VA_ARGS__) \
62 BASIC_CLIPPING_VARIATIONS(prefix##_conservative_no_geom, __VA_ARGS__) \
63 BASIC_CLIPPING_VARIATIONS(prefix, __VA_ARGS__)
64
65#define BASIC_OBTYPE_VARIATIONS(prefix, ...) \
66 BASIC_CONSERVATIVE_VARIATIONS(prefix##_mesh, "basic_mesh", __VA_ARGS__) \
67 BASIC_CONSERVATIVE_VARIATIONS(prefix##_pointcloud, "basic_pointcloud", __VA_ARGS__) \
68 BASIC_CLIPPING_VARIATIONS(prefix##_curves, "basic_curves", __VA_ARGS__)
69
72/* -------------------------------------------------------------------- */
76GPU_SHADER_CREATE_INFO(basic_depth).fragment_source("basic_depth_frag.glsl");
77
78BASIC_OBTYPE_VARIATIONS(basic_depth, "basic_depth", "draw_globals");
79
#define BASIC_OBTYPE_VARIATIONS(prefix,...)
#define GPU_SHADER_CREATE_INFO(_info)