Blender V5.0
mtl_shader_interface_type.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8#pragma once
9
10#include "BLI_assert.h"
11#include "GPU_material.hh"
12
18
23
28
33
38
43
48
55
60
65
75
85
88};
89
91{
92 switch (type) {
96 return 1;
102 return 2;
103
107 return 3;
110 case MTL_DATATYPE_INT:
118 return 4;
119
131 return 8;
132
135 return 12;
136
148 return 16;
149
153 return 24;
154
164 return 32;
165
168 return 48;
169
172 return 64;
173 default:
174 BLI_assert(false);
175 return 0;
176 };
177}
178
180{
181 switch (type) {
185 return 1;
191 return 2;
192
198 case MTL_DATATYPE_INT:
209 return 4;
210
230 return 8;
231
247 return 16;
248
253 return 32;
254
255 default:
256 BLI_assert_msg(false, "Unrecognized MTL datatype.");
257 return 0;
258 };
259}
260
262{
263 switch (type) {
264 case GPU_FLOAT:
265 return MTL_DATATYPE_FLOAT;
266 case GPU_VEC2:
267 return MTL_DATATYPE_FLOAT2;
268 case GPU_VEC3:
269 return MTL_DATATYPE_FLOAT3;
270 case GPU_VEC4:
271 return MTL_DATATYPE_FLOAT4;
272 case GPU_MAT3:
274 case GPU_MAT4:
276 default:
277 BLI_assert(false && "Other types unsupported");
278 return MTL_DATATYPE_FLOAT;
279 }
280 return MTL_DATATYPE_FLOAT;
281}
#define BLI_assert(a)
Definition BLI_assert.h:46
#define BLI_assert_msg(a, msg)
Definition BLI_assert.h:53
unsigned int uint
GPUType
@ GPU_VEC2
@ GPU_MAT4
@ GPU_VEC4
@ GPU_VEC3
@ GPU_MAT3
@ GPU_FLOAT
MTLInterfaceDataType gpu_type_to_mtl_type(GPUType type)
uint mtl_get_data_type_alignment(MTLInterfaceDataType type)
@ MTL_DATATYPE_INT1010102_NORM
@ MTL_DATATYPE_PACKED_FLOAT2
@ MTL_DATATYPE_UINT1010102_NORM
@ MTL_DATATYPE_PACKED_FLOAT3
uint mtl_get_data_type_size(MTLInterfaceDataType type)