Blender
V4.5
intern
cycles
util
util/texture.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2
*
3
* SPDX-License-Identifier: Apache-2.0 */
4
5
#pragma once
6
7
#include "
util/transform.h
"
8
9
CCL_NAMESPACE_BEGIN
10
11
/* Color to use when textures are not found. */
12
enum
{
13
TEX_IMAGE_MISSING_R
= 1,
14
TEX_IMAGE_MISSING_G
= 0,
15
TEX_IMAGE_MISSING_B
= 1,
16
TEX_IMAGE_MISSING_A
= 1
17
};
18
19
/* Interpolation types for textures
20
* CUDA also use texture space to store other objects. */
21
enum
InterpolationType
{
22
INTERPOLATION_NONE
= ~0,
23
INTERPOLATION_LINEAR
= 0,
24
INTERPOLATION_CLOSEST
= 1,
25
INTERPOLATION_CUBIC
= 2,
26
INTERPOLATION_SMART
= 3,
27
28
INTERPOLATION_NUM_TYPES
,
29
};
30
31
enum
ImageDataType
{
32
IMAGE_DATA_TYPE_FLOAT4
= 0,
33
IMAGE_DATA_TYPE_BYTE4
= 1,
34
IMAGE_DATA_TYPE_HALF4
= 2,
35
IMAGE_DATA_TYPE_FLOAT
= 3,
36
IMAGE_DATA_TYPE_BYTE
= 4,
37
IMAGE_DATA_TYPE_HALF
= 5,
38
IMAGE_DATA_TYPE_USHORT4
= 6,
39
IMAGE_DATA_TYPE_USHORT
= 7,
40
IMAGE_DATA_TYPE_NANOVDB_FLOAT
= 8,
41
IMAGE_DATA_TYPE_NANOVDB_FLOAT3
= 9,
42
IMAGE_DATA_TYPE_NANOVDB_FPN
= 10,
43
IMAGE_DATA_TYPE_NANOVDB_FP16
= 11,
44
45
IMAGE_DATA_NUM_TYPES
46
};
47
48
/* Alpha types
49
* How to treat alpha in images. */
50
enum
ImageAlphaType
{
51
IMAGE_ALPHA_UNASSOCIATED
= 0,
52
IMAGE_ALPHA_ASSOCIATED
= 1,
53
IMAGE_ALPHA_CHANNEL_PACKED
= 2,
54
IMAGE_ALPHA_IGNORE
= 3,
55
IMAGE_ALPHA_AUTO
= 4,
56
57
IMAGE_ALPHA_NUM_TYPES
,
58
};
59
60
/* Extension types for textures.
61
*
62
* Defines how the image is extrapolated past its original bounds. */
63
enum
ExtensionType
{
64
/* Cause the image to repeat horizontally and vertically. */
65
EXTENSION_REPEAT
= 0,
66
/* Extend by repeating edge pixels of the image. */
67
EXTENSION_EXTEND
= 1,
68
/* Clip to image size and set exterior pixels as transparent. */
69
EXTENSION_CLIP
= 2,
70
/* Repeatedly flip the image horizontally and vertically. */
71
EXTENSION_MIRROR
= 3,
72
73
EXTENSION_NUM_TYPES
,
74
};
75
76
struct
TextureInfo
{
77
/* Pointer, offset or texture depending on device. */
78
uint64_t
data
= 0;
79
/* Data Type */
80
uint
data_type
=
IMAGE_DATA_NUM_TYPES
;
81
/* Interpolation and extension type. */
82
uint
interpolation
=
INTERPOLATION_NONE
;
83
uint
extension
=
EXTENSION_REPEAT
;
84
/* Dimensions. */
85
uint
width
= 0;
86
uint
height
= 0;
87
uint
depth
= 0;
88
/* Transform for 3D textures. */
89
uint
use_transform_3d
=
false
;
90
Transform
transform_3d
=
transform_zero
();
91
};
92
93
CCL_NAMESPACE_END
uint
unsigned int uint
Definition
BLI_sys_types.h:64
uint64_t
unsigned long long int uint64_t
Definition
btConvexHullComputer.cpp:33
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition
device/cuda/compat.h:10
CCL_NAMESPACE_BEGIN
Definition
python.cpp:37
TextureInfo
Definition
util/texture.h:76
TextureInfo::data
uint64_t data
Definition
util/texture.h:78
TextureInfo::data_type
uint data_type
Definition
util/texture.h:80
TextureInfo::width
uint width
Definition
util/texture.h:85
TextureInfo::extension
uint extension
Definition
util/texture.h:83
TextureInfo::use_transform_3d
uint use_transform_3d
Definition
util/texture.h:89
TextureInfo::depth
uint depth
Definition
util/texture.h:87
TextureInfo::height
uint height
Definition
util/texture.h:86
TextureInfo::interpolation
uint interpolation
Definition
util/texture.h:82
TextureInfo::transform_3d
Transform transform_3d
Definition
util/texture.h:90
Transform
Definition
transform.h:22
transform.h
transform_zero
ccl_device_inline Transform transform_zero()
Definition
transform.h:221
ImageDataType
ImageDataType
Definition
util/texture.h:31
IMAGE_DATA_NUM_TYPES
@ IMAGE_DATA_NUM_TYPES
Definition
util/texture.h:45
IMAGE_DATA_TYPE_BYTE
@ IMAGE_DATA_TYPE_BYTE
Definition
util/texture.h:36
IMAGE_DATA_TYPE_FLOAT
@ IMAGE_DATA_TYPE_FLOAT
Definition
util/texture.h:35
IMAGE_DATA_TYPE_NANOVDB_FP16
@ IMAGE_DATA_TYPE_NANOVDB_FP16
Definition
util/texture.h:43
IMAGE_DATA_TYPE_FLOAT4
@ IMAGE_DATA_TYPE_FLOAT4
Definition
util/texture.h:32
IMAGE_DATA_TYPE_USHORT4
@ IMAGE_DATA_TYPE_USHORT4
Definition
util/texture.h:38
IMAGE_DATA_TYPE_USHORT
@ IMAGE_DATA_TYPE_USHORT
Definition
util/texture.h:39
IMAGE_DATA_TYPE_NANOVDB_FLOAT
@ IMAGE_DATA_TYPE_NANOVDB_FLOAT
Definition
util/texture.h:40
IMAGE_DATA_TYPE_NANOVDB_FLOAT3
@ IMAGE_DATA_TYPE_NANOVDB_FLOAT3
Definition
util/texture.h:41
IMAGE_DATA_TYPE_HALF
@ IMAGE_DATA_TYPE_HALF
Definition
util/texture.h:37
IMAGE_DATA_TYPE_BYTE4
@ IMAGE_DATA_TYPE_BYTE4
Definition
util/texture.h:33
IMAGE_DATA_TYPE_HALF4
@ IMAGE_DATA_TYPE_HALF4
Definition
util/texture.h:34
IMAGE_DATA_TYPE_NANOVDB_FPN
@ IMAGE_DATA_TYPE_NANOVDB_FPN
Definition
util/texture.h:42
ImageAlphaType
ImageAlphaType
Definition
util/texture.h:50
IMAGE_ALPHA_ASSOCIATED
@ IMAGE_ALPHA_ASSOCIATED
Definition
util/texture.h:52
IMAGE_ALPHA_CHANNEL_PACKED
@ IMAGE_ALPHA_CHANNEL_PACKED
Definition
util/texture.h:53
IMAGE_ALPHA_NUM_TYPES
@ IMAGE_ALPHA_NUM_TYPES
Definition
util/texture.h:57
IMAGE_ALPHA_AUTO
@ IMAGE_ALPHA_AUTO
Definition
util/texture.h:55
IMAGE_ALPHA_IGNORE
@ IMAGE_ALPHA_IGNORE
Definition
util/texture.h:54
IMAGE_ALPHA_UNASSOCIATED
@ IMAGE_ALPHA_UNASSOCIATED
Definition
util/texture.h:51
InterpolationType
InterpolationType
Definition
util/texture.h:21
INTERPOLATION_LINEAR
@ INTERPOLATION_LINEAR
Definition
util/texture.h:23
INTERPOLATION_SMART
@ INTERPOLATION_SMART
Definition
util/texture.h:26
INTERPOLATION_NONE
@ INTERPOLATION_NONE
Definition
util/texture.h:22
INTERPOLATION_CLOSEST
@ INTERPOLATION_CLOSEST
Definition
util/texture.h:24
INTERPOLATION_CUBIC
@ INTERPOLATION_CUBIC
Definition
util/texture.h:25
INTERPOLATION_NUM_TYPES
@ INTERPOLATION_NUM_TYPES
Definition
util/texture.h:28
TEX_IMAGE_MISSING_G
@ TEX_IMAGE_MISSING_G
Definition
util/texture.h:14
TEX_IMAGE_MISSING_A
@ TEX_IMAGE_MISSING_A
Definition
util/texture.h:16
TEX_IMAGE_MISSING_R
@ TEX_IMAGE_MISSING_R
Definition
util/texture.h:13
TEX_IMAGE_MISSING_B
@ TEX_IMAGE_MISSING_B
Definition
util/texture.h:15
ExtensionType
ExtensionType
Definition
util/texture.h:63
EXTENSION_REPEAT
@ EXTENSION_REPEAT
Definition
util/texture.h:65
EXTENSION_NUM_TYPES
@ EXTENSION_NUM_TYPES
Definition
util/texture.h:73
EXTENSION_CLIP
@ EXTENSION_CLIP
Definition
util/texture.h:69
EXTENSION_EXTEND
@ EXTENSION_EXTEND
Definition
util/texture.h:67
EXTENSION_MIRROR
@ EXTENSION_MIRROR
Definition
util/texture.h:71
Generated on
for Blender by
doxygen
1.15.0