Blender
V4.3
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
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 "
IMB_imbuf_types.hh
"
16
17
#include "
BKE_image.hh
"
18
19
#include "
image_enums.hh
"
20
#include "
image_space.hh
"
21
22
namespace
blender::draw::image_engine
{
23
24
struct
ShaderParameters
{
25
ImageDrawFlags
flags
=
ImageDrawFlags::Default
;
26
float
shuffle
[4];
27
float
far_near
[2];
28
bool
use_premul_alpha
=
false
;
29
30
void
update
(
AbstractSpaceAccessor
*space,
const
Scene
*scene,
Image
*image,
ImBuf
*image_buffer)
31
{
32
flags
=
ImageDrawFlags::Default
;
33
copy_v4_fl
(
shuffle
, 1.0f);
34
copy_v2_fl2
(
far_near
, 100.0f, 0.0f);
35
36
use_premul_alpha
=
BKE_image_has_gpu_texture_premultiplied_alpha
(image, image_buffer);
37
38
if
(scene->camera && scene->camera->type ==
OB_CAMERA
) {
39
const
Camera
*camera =
static_cast<
const
Camera
*
>
(scene->camera->data);
40
copy_v2_fl2
(
far_near
, camera->clip_end, camera->clip_start);
41
}
42
space->get_shader_parameters(*
this
, image_buffer);
43
}
44
};
45
46
}
// namespace blender::draw::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:41
copy_v2_fl2
MINLINE void copy_v2_fl2(float v[2], float x, float y)
Definition
math_vector_inline.c:322
copy_v4_fl
MINLINE void copy_v4_fl(float r[4], float f)
Definition
math_vector_inline.c:78
DNA_camera_types.h
DNA_image_types.h
OB_CAMERA
@ OB_CAMERA
Definition
DNA_object_types.h:455
DNA_scene_types.h
IMB_imbuf_types.hh
Contains defines and structs used throughout the imbuf module.
blender::draw::Image
Definition
DRW_gpu_wrapper.hh:1168
blender::draw::image_engine::AbstractSpaceAccessor
Definition
image_space.hh:21
blender::eevee::Camera
Definition
eevee_camera.hh:92
image_enums.hh
image_space.hh
blender::draw::image_engine
Definition
image_batches.hh:13
blender::draw::image_engine::ImageDrawFlags
ImageDrawFlags
Definition
image_enums.hh:16
blender::draw::image_engine::ImageDrawFlags::Default
@ Default
ImBuf
Definition
IMB_imbuf_types.hh:185
Scene
Definition
DNA_scene_types.h:1988
blender::draw::image_engine::ShaderParameters
Definition
image_shader_params.hh:24
blender::draw::image_engine::ShaderParameters::update
void update(AbstractSpaceAccessor *space, const Scene *scene, Image *image, ImBuf *image_buffer)
Definition
image_shader_params.hh:30
blender::draw::image_engine::ShaderParameters::flags
ImageDrawFlags flags
Definition
image_shader_params.hh:25
blender::draw::image_engine::ShaderParameters::use_premul_alpha
bool use_premul_alpha
Definition
image_shader_params.hh:28
blender::draw::image_engine::ShaderParameters::shuffle
float shuffle[4]
Definition
image_shader_params.hh:26
blender::draw::image_engine::ShaderParameters::far_near
float far_near[2]
Definition
image_shader_params.hh:27
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0