2024-08-05 00:19:49 -07:00
|
|
|
#ifndef SHADERTYPES_H
|
|
|
|
#define SHADERTYPES_H
|
|
|
|
|
|
|
|
#ifdef __METAL_VERSION__
|
|
|
|
# define NS_ENUM(TYPE, NAME) enum NAME : TYPE NAME; enum NAME : TYPE
|
|
|
|
# define NSInteger metal::int32_t
|
|
|
|
#else
|
|
|
|
# import <Foundation/Foundation.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, ShaderInputIdx) {
|
2024-08-06 16:51:29 +10:00
|
|
|
ShaderInputIdxVertices = 0,
|
2024-08-09 21:16:07 +10:00
|
|
|
ShaderInputIdxInstance = 1,
|
|
|
|
ShaderInputIdxUniforms = 2
|
2024-08-05 00:19:49 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
vector_float4 position;
|
2024-08-05 20:09:33 +10:00
|
|
|
vector_float4 normal;
|
|
|
|
vector_float2 texCoord;
|
2024-08-05 00:19:49 -07:00
|
|
|
} ShaderVertex;
|
|
|
|
|
2024-08-06 16:51:29 +10:00
|
|
|
typedef struct {
|
|
|
|
matrix_float4x4 model;
|
2024-08-13 08:38:21 +10:00
|
|
|
vector_uchar4 color;
|
2024-08-09 21:16:07 +10:00
|
|
|
} ShaderInstance;
|
|
|
|
|
|
|
|
typedef struct {
|
2024-08-06 16:51:29 +10:00
|
|
|
matrix_float4x4 projView;
|
|
|
|
} ShaderUniforms;
|
|
|
|
|
2024-08-05 00:19:49 -07:00
|
|
|
#endif//SHADERTYPES_H
|