Blender V4.3
basic_shader.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2019 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include "DRW_render.hh"
10
11#include "GPU_shader.hh"
12
13#include "basic_private.h"
14
18
21
22/* Shaders */
23
32
33static struct {
35} e_data = {{{nullptr}}}; /* Engine data */
36
38{
39 BASIC_Shaders *sh_data = &e_data.sh_data[config];
40 if (sh_data->depth == nullptr) {
42 config == GPU_SHADER_CFG_CLIPPED ? "basic_depth_mesh_clipped" : "basic_depth_mesh");
43 }
44 return sh_data->depth;
45}
46
48{
49 BASIC_Shaders *sh_data = &e_data.sh_data[config];
50 if (sh_data->pointcloud_depth == nullptr) {
52 config == GPU_SHADER_CFG_CLIPPED ? "basic_depth_pointcloud_clipped" :
53 "basic_depth_pointcloud");
54 }
56}
57
59{
60 BASIC_Shaders *sh_data = &e_data.sh_data[config];
61 if (sh_data->curves_depth == nullptr) {
63 config == GPU_SHADER_CFG_CLIPPED ? "basic_depth_curves_clipped" : "basic_depth_curves");
64 }
65 return sh_data->curves_depth;
66}
67
69{
70 BASIC_Shaders *sh_data = &e_data.sh_data[config];
71 if (sh_data->depth_conservative == nullptr) {
73 config == GPU_SHADER_CFG_CLIPPED ? "basic_depth_mesh_conservative_clipped" :
74 "basic_depth_mesh_conservative");
75 }
77}
78
80{
81 BASIC_Shaders *sh_data = &e_data.sh_data[config];
82 if (sh_data->pointcloud_depth_conservative == nullptr) {
84 config == GPU_SHADER_CFG_CLIPPED ? "basic_depth_pointcloud_conservative_clipped" :
85 "basic_depth_pointcloud_conservative");
86 }
88}
89
91{
92 for (int i = 0; i < GPU_SHADER_CFG_LEN; i++) {
93 GPUShader **sh_data_as_array = (GPUShader **)&e_data.sh_data[i];
94 for (int j = 0; j < (sizeof(BASIC_Shaders) / sizeof(GPUShader *)); j++) {
95 DRW_SHADER_FREE_SAFE(sh_data_as_array[j]);
96 }
97 }
98}
#define DRW_SHADER_FREE_SAFE(shader)
GPUShader * GPU_shader_create_from_info_name(const char *info_name)
@ GPU_SHADER_CFG_CLIPPED
#define GPU_SHADER_CFG_LEN
char datatoc_common_pointcloud_lib_glsl[]
static struct @193 e_data
GPUShader * BASIC_shaders_pointcloud_depth_conservative_sh_get(eGPUShaderConfig config)
BASIC_Shaders sh_data[GPU_SHADER_CFG_LEN]
GPUShader * BASIC_shaders_depth_sh_get(eGPUShaderConfig config)
GPUShader * BASIC_shaders_depth_conservative_sh_get(eGPUShaderConfig config)
char datatoc_common_view_lib_glsl[]
char datatoc_basic_conservative_depth_geom_glsl[]
char datatoc_basic_depth_vert_glsl[]
void BASIC_shaders_free()
char datatoc_basic_depth_frag_glsl[]
GPUShader * BASIC_shaders_pointcloud_depth_sh_get(eGPUShaderConfig config)
GPUShader * BASIC_shaders_curves_depth_sh_get(eGPUShaderConfig config)
struct GPUShader GPUShader
GPUShader * depth_conservative
GPUShader * pointcloud_depth
GPUShader * pointcloud_depth_conservative
GPUShader * depth
GPUShader * curves_depth