Blender
V5.0
source
blender
draw
intern
draw_attribute_shader_shared.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2025 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#ifndef GPU_SHADER
8
# include "
GPU_shader_shared_utils.hh
"
9
#endif
10
11
/* Copy of DNA enum in `DNA_curves_types.h`. */
12
enum
CurveType
: uint32_t {
13
CURVE_TYPE_CATMULL_ROM
= 0u,
14
CURVE_TYPE_POLY
= 1u,
15
CURVE_TYPE_BEZIER
= 2u,
16
CURVE_TYPE_NURBS
= 3u,
17
};
18
19
/* -------------------------------------------------------------------- */
26
27
struct
StoredFloat4
{
28
float
x
;
29
float
y
;
30
float
z
;
31
float
w
;
32
};
33
34
struct
StoredFloat3
{
35
float
x
;
36
float
y
;
37
float
z
;
38
};
39
40
struct
StoredFloat2
{
41
float
x
;
42
float
y
;
43
};
44
45
struct
StoredFloat
{
46
float
x
;
47
};
48
49
float4
load_data
(
StoredFloat4
data
)
50
{
51
return
float4
(
data
.x,
data
.y,
data
.z,
data
.w);
52
}
53
54
float3
load_data
(
StoredFloat3
data
)
55
{
56
return
float3
(
data
.x,
data
.y,
data
.z);
57
}
58
59
float2
load_data
(
StoredFloat2
data
)
60
{
61
return
float2
(
data
.x,
data
.y);
62
}
63
64
float
load_data
(
StoredFloat
data
)
65
{
66
return
float
(
data
.x);
67
}
68
69
StoredFloat4
as_data
(
float4
interp
)
70
{
71
StoredFloat4
data
;
72
data
.x =
interp
.x;
73
data
.y =
interp
.y;
74
data
.z =
interp
.z;
75
data
.w =
interp
.w;
76
return
data
;
77
}
78
79
StoredFloat3
as_data
(
float3
interp
)
80
{
81
StoredFloat3
data
;
82
data
.x =
interp
.x;
83
data
.y =
interp
.y;
84
data
.z =
interp
.z;
85
return
data
;
86
}
87
88
StoredFloat2
as_data
(
float2
interp
)
89
{
90
StoredFloat2
data
;
91
data
.x =
interp
.x;
92
data
.y =
interp
.y;
93
return
data
;
94
}
95
96
StoredFloat
as_data
(
float
interp
)
97
{
98
StoredFloat
data
;
99
data
.x =
interp
;
100
return
data
;
101
}
102
GPU_shader_shared_utils.hh
data
BMesh const char void * data
Definition
bmesh_iterators_inline.hh:37
float
nullptr float
Definition
closures_template.h:123
as_data
StoredFloat4 as_data(float4 interp)
Definition
draw_attribute_shader_shared.hh:69
load_data
float4 load_data(StoredFloat4 data)
Definition
draw_attribute_shader_shared.hh:49
CurveType
CurveType
Definition
draw_attribute_shader_shared.hh:12
CURVE_TYPE_BEZIER
@ CURVE_TYPE_BEZIER
Definition
draw_attribute_shader_shared.hh:15
CURVE_TYPE_NURBS
@ CURVE_TYPE_NURBS
Definition
draw_attribute_shader_shared.hh:16
CURVE_TYPE_POLY
@ CURVE_TYPE_POLY
Definition
draw_attribute_shader_shared.hh:14
CURVE_TYPE_CATMULL_ROM
@ CURVE_TYPE_CATMULL_ROM
Definition
draw_attribute_shader_shared.hh:13
interp
ccl_device_inline float interp(const float a, const float b, const float t)
Definition
math_base.h:502
blender::float4
VecBase< float, 4 > float4
Definition
BLI_math_vector_types.hh:620
blender::float2
VecBase< float, 2 > float2
Definition
BLI_math_vector_types.hh:618
blender::float3
VecBase< float, 3 > float3
Definition
BLI_math_vector_types.hh:619
StoredFloat2
Definition
draw_attribute_shader_shared.hh:40
StoredFloat2::x
float x
Definition
draw_attribute_shader_shared.hh:41
StoredFloat2::y
float y
Definition
draw_attribute_shader_shared.hh:42
StoredFloat3
Definition
draw_attribute_shader_shared.hh:34
StoredFloat3::z
float z
Definition
draw_attribute_shader_shared.hh:37
StoredFloat3::x
float x
Definition
draw_attribute_shader_shared.hh:35
StoredFloat3::y
float y
Definition
draw_attribute_shader_shared.hh:36
StoredFloat4
Definition
draw_attribute_shader_shared.hh:27
StoredFloat4::w
float w
Definition
draw_attribute_shader_shared.hh:31
StoredFloat4::z
float z
Definition
draw_attribute_shader_shared.hh:30
StoredFloat4::y
float y
Definition
draw_attribute_shader_shared.hh:29
StoredFloat4::x
float x
Definition
draw_attribute_shader_shared.hh:28
StoredFloat
Definition
draw_attribute_shader_shared.hh:45
StoredFloat::x
float x
Definition
draw_attribute_shader_shared.hh:46
float2
Definition
types_float2.h:13
float3
Definition
sky_math.h:135
float4
Definition
sky_math.h:224
Generated on
for Blender by
doxygen
1.16.1