Blender
V5.0
source
blender
draw
engines
image
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
15
namespace
blender::image_engine
{
16
20
class
ShaderModule
{
21
private
:
22
struct
ShaderDeleter {
23
void
operator()
(
gpu::Shader
*shader)
24
{
25
GPU_SHADER_FREE_SAFE
(shader);
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
40
static
ShaderModule
&
module_get
();
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
DRW_render.hh
GPU_shader.hh
GPU_SHADER_FREE_SAFE
#define GPU_SHADER_FREE_SAFE(shader)
Definition
GPU_shader.hh:417
GPU_shader_create_from_info_name
blender::gpu::Shader * GPU_shader_create_from_info_name(const char *info_name)
Definition
gpu_shader.cc:148
operator()
SIMD_FORCE_INLINE btVector3 operator()(const btVector3 &x) const
Return the transform of the vector.
Definition
btTransform.h:90
blender::eevee::ShaderModule
Definition
eevee_shader.hh:205
blender::gpu::Shader
Definition
gpu_shader_private.hh:43
blender::image_engine::ShaderModule::module_free
static void module_free()
blender::image_engine::ShaderModule::depth
ShaderPtr depth
Definition
image_shader.hh:35
blender::image_engine::ShaderModule::color
ShaderPtr color
Definition
image_shader.hh:36
blender::image_engine::ShaderModule::module_get
static ShaderModule & module_get()
blender::image_engine
Definition
image_batches.hh:13
Generated on
for Blender by
doxygen
1.16.1