Blender V4.3
image_shader.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2020 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include "DRW_render.hh"
10
11#include "BLI_dynstr.h"
12
13#include "GPU_batch.hh"
14
15#include "image_engine.h"
16#include "image_private.hh"
17
19
24
25static struct {
27} e_data = {{nullptr}}; /* Engine data */
28
30{
31 IMAGE_Shaders *sh_data = &e_data.shaders;
32 if (sh_data->image_sh == nullptr) {
33 sh_data->image_sh = GPU_shader_create_from_info_name("image_engine_color_shader");
34 }
35 return sh_data->image_sh;
36}
37
39{
40 IMAGE_Shaders *sh_data = &e_data.shaders;
41 if (sh_data->depth_sh == nullptr) {
42 sh_data->depth_sh = GPU_shader_create_from_info_name("image_engine_depth_shader");
43 }
44 return sh_data->depth_sh;
45}
46
48{
49 GPUShader **sh_data_as_array = (GPUShader **)&e_data.shaders;
50 for (int i = 0; i < (sizeof(IMAGE_Shaders) / sizeof(GPUShader *)); i++) {
51 DRW_SHADER_FREE_SAFE(sh_data_as_array[i]);
52 }
53}
54
55} // namespace blender::draw::image_engine
A dynamically sized string ADT.
#define DRW_SHADER_FREE_SAFE(shader)
GPUShader * GPU_shader_create_from_info_name(const char *info_name)
BASIC_Shaders sh_data[GPU_SHADER_CFG_LEN]
struct GPUShader GPUShader
GPUShader * IMAGE_shader_image_get()
static struct blender::draw::image_engine::@207 e_data
GPUShader * IMAGE_shader_depth_get()