blob: 2f3f0d23b6ad918487b8abedad564a3191ae48b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright 2022 Blender Foundation. */
/** \file
* \ingroup draw_engine
*/
#pragma once
/**
* ImageUsage contains data of the image and image user to identify changes that require a rebuild
* of the texture slots.
*/
struct ImageUsage {
/** Render pass of the image that is used. */
short pass = 0;
/** Layer of the image that is used.*/
short layer = 0;
/** View of the image that is used. */
short view = 0;
ColorManagedColorspaceSettings colorspace_settings;
/** IMA_ALPHA_* */
char alpha_mode;
ImageUsage() = default;
ImageUsage(const struct Image *image, const struct ImageUser *image_user)
{
pass = image_user ? image_user->pass : 0;
layer = image_user ? image_user->layer : 0;
view = image_user ? image_user->multi_index : 0;
colorspace_settings = image->colorspace_settings;
alpha_mode = image->alpha_mode;
}
bool operator==(const ImageUsage &other) const
{
return memcmp(this, &other, sizeof(ImageUsage)) == 0;
}
bool operator!=(const ImageUsage &other) const
{
return !(*this == other);
}
};
|