2024-08-05 07:19:49 +00: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
|
2024-09-05 20:37:19 +00:00
|
|
|
# define CONSTANT_PTR(TYPE) constant TYPE*
|
2024-08-05 07:19:49 +00:00
|
|
|
#else
|
|
|
|
# import <Foundation/Foundation.h>
|
2024-09-05 20:37:19 +00:00
|
|
|
# define CONSTANT_PTR(TYPE) uint64_t
|
2024-08-05 07:19:49 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
2024-08-17 15:20:19 +00:00
|
|
|
typedef NS_ENUM(NSInteger, VertexShaderInputIdx) {
|
|
|
|
VertexShaderInputIdxVertices = 0,
|
|
|
|
VertexShaderInputIdxInstance = 1,
|
|
|
|
VertexShaderInputIdxUniforms = 2
|
2024-08-05 07:19:49 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct {
|
2024-08-27 16:28:24 +00:00
|
|
|
vector_float3 position;
|
|
|
|
vector_float3 normal;
|
2024-09-02 09:06:16 +00:00
|
|
|
vector_float4 color;
|
2024-08-05 10:09:33 +00:00
|
|
|
vector_float2 texCoord;
|
2024-08-05 07:19:49 +00:00
|
|
|
} ShaderVertex;
|
|
|
|
|
2024-08-06 06:51:29 +00:00
|
|
|
typedef struct {
|
|
|
|
matrix_float4x4 model;
|
2024-08-17 15:10:25 +00:00
|
|
|
matrix_float4x4 normalModel;
|
2024-09-02 09:06:16 +00:00
|
|
|
vector_float4 color;
|
2024-08-17 15:20:19 +00:00
|
|
|
} VertexShaderInstance;
|
2024-08-09 11:16:07 +00:00
|
|
|
|
|
|
|
typedef struct {
|
2024-08-06 06:51:29 +00:00
|
|
|
matrix_float4x4 projView;
|
2024-08-17 15:20:19 +00:00
|
|
|
} VertexShaderUniforms;
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, FragmentShaderInputIdx) {
|
|
|
|
FragmentShaderInputIdxUniforms = 0
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct {
|
2024-08-18 14:05:53 +00:00
|
|
|
vector_float3 cameraPosition, directionalLight;
|
2024-09-02 09:06:16 +00:00
|
|
|
vector_float4 ambientColor, diffuseColor, specularColor;
|
2024-08-18 14:05:53 +00:00
|
|
|
float specularIntensity;
|
2024-08-17 15:20:19 +00:00
|
|
|
} FragmentShaderUniforms;
|
2024-08-06 06:51:29 +00:00
|
|
|
|
2024-08-05 07:19:49 +00:00
|
|
|
#endif//SHADERTYPES_H
|