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