Blender
V4.5
source
blender
draw
engines
image
image_shader_params.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2021 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#pragma once
10
11
#include "
DNA_camera_types.h
"
12
#include "
DNA_image_types.h
"
13
#include "
DNA_scene_types.h
"
14
15
#include "
BLI_math_vector.h
"
16
17
#include "
IMB_imbuf_types.hh
"
18
19
#include "
BKE_image.hh
"
20
21
#include "
DRW_render.hh
"
22
23
#include "
image_enums.hh
"
24
#include "
image_space.hh
"
25
26
namespace
blender::image_engine
{
27
28
struct
ShaderParameters
{
29
ImageDrawFlags
flags
=
ImageDrawFlags::DEFAULT
;
30
float4
shuffle
;
31
float2
far_near
;
32
bool
use_premul_alpha
=
false
;
33
34
void
update
(
AbstractSpaceAccessor
*space,
35
const
Scene
*scene,
36
::Image
*image,
37
ImBuf
*image_buffer)
38
{
39
flags
=
ImageDrawFlags::DEFAULT
;
40
shuffle
=
float4
(1.0f);
41
far_near
=
float2
(100.0f, 0.0f);
42
43
use_premul_alpha
=
BKE_image_has_gpu_texture_premultiplied_alpha
(image, image_buffer);
44
45
if
(scene->
camera
&& scene->
camera
->
type
==
OB_CAMERA
) {
46
const
Camera
&camera =
DRW_object_get_data_for_drawing<const Camera>
(*scene->
camera
);
47
far_near
=
float2
(camera.clip_end, camera.clip_start);
48
}
49
space->
get_shader_parameters
(*
this
, image_buffer);
50
}
51
};
52
53
}
// namespace blender::image_engine
BKE_image.hh
BKE_image_has_gpu_texture_premultiplied_alpha
bool BKE_image_has_gpu_texture_premultiplied_alpha(Image *image, ImBuf *ibuf)
Definition
image_gpu.cc:43
BLI_math_vector.h
DNA_camera_types.h
DNA_image_types.h
OB_CAMERA
@ OB_CAMERA
Definition
DNA_object_types.h:455
DNA_scene_types.h
DRW_render.hh
IMB_imbuf_types.hh
blender::draw::Image
Definition
DRW_gpu_wrapper.hh:1171
blender::eevee::Camera
Definition
eevee_camera.hh:97
blender::image_engine::AbstractSpaceAccessor
Definition
image_space.hh:27
blender::image_engine::AbstractSpaceAccessor::get_shader_parameters
virtual void get_shader_parameters(ShaderParameters &r_shader_parameters, ImBuf *image_buffer)=0
DRW_object_get_data_for_drawing
Mesh & DRW_object_get_data_for_drawing(const Object &object)
Definition
draw_context.cc:378
image_enums.hh
image_space.hh
blender::image_engine
Definition
image_batches.hh:13
blender::image_engine::ImageDrawFlags
ImageDrawFlags
Definition
image_enums.hh:16
blender::image_engine::ImageDrawFlags::DEFAULT
@ DEFAULT
Definition
image_enums.hh:17
blender::float4
VecBase< float, 4 > float4
Definition
BLI_math_vector_types.hh:620
blender::float2
VecBase< float, 2 > float2
Definition
BLI_math_vector_types.hh:618
ImBuf
Definition
IMB_imbuf_types.hh:179
Object::type
short type
Definition
DNA_object_types.h:205
Scene
Definition
DNA_scene_types.h:2106
Scene::camera
struct Object * camera
Definition
DNA_scene_types.h:2116
blender::image_engine::ShaderParameters
Definition
image_shader_params.hh:28
blender::image_engine::ShaderParameters::update
void update(AbstractSpaceAccessor *space, const Scene *scene, ::Image *image, ImBuf *image_buffer)
Definition
image_shader_params.hh:34
blender::image_engine::ShaderParameters::shuffle
float4 shuffle
Definition
image_shader_params.hh:30
blender::image_engine::ShaderParameters::far_near
float2 far_near
Definition
image_shader_params.hh:31
blender::image_engine::ShaderParameters::use_premul_alpha
bool use_premul_alpha
Definition
image_shader_params.hh:32
blender::image_engine::ShaderParameters::flags
ImageDrawFlags flags
Definition
image_shader_params.hh:29
Generated on
for Blender by
doxygen
1.16.1