Blender V5.0
image_shader.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DRW_render.hh"
12
13#include "GPU_shader.hh"
14
15namespace blender::image_engine {
16
21 private:
22 struct ShaderDeleter {
23 void operator()(gpu::Shader *shader)
24 {
26 }
27 };
28 using ShaderPtr = std::unique_ptr<gpu::Shader, ShaderDeleter>;
29
31 static ShaderModule *g_shader_module;
32
33 public:
35 ShaderPtr depth = shader("image_engine_depth_shader");
36 ShaderPtr color = shader("image_engine_color_shader");
37
41 static void module_free();
42
43 private:
44 ShaderPtr shader(const char *create_info_name)
45 {
46 return ShaderPtr(GPU_shader_create_from_info_name(create_info_name));
47 }
48};
49
50} // namespace blender::image_engine
#define GPU_SHADER_FREE_SAFE(shader)
blender::gpu::Shader * GPU_shader_create_from_info_name(const char *info_name)
SIMD_FORCE_INLINE btVector3 operator()(const btVector3 &x) const
Return the transform of the vector.
Definition btTransform.h:90
static ShaderModule & module_get()