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