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