51 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
//
 | 
						|
//  ShaderTypes.h
 | 
						|
//  Terrain2
 | 
						|
//
 | 
						|
//  Created by Eryn Wells on 11/3/18.
 | 
						|
//  Copyright © 2018 Eryn Wells. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
//
 | 
						|
//  Header containing types and enum constants shared between Metal shaders and Swift/ObjC source
 | 
						|
//
 | 
						|
#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, BufferIndex)
 | 
						|
{
 | 
						|
    BufferIndexMeshPositions  = 0,
 | 
						|
    BufferIndexMeshGenerics   = 1,
 | 
						|
    BufferIndexMeshGridCoords = 2,
 | 
						|
    BufferIndexUniforms       = 3,
 | 
						|
};
 | 
						|
 | 
						|
typedef NS_ENUM(NSInteger, VertexAttribute)
 | 
						|
{
 | 
						|
    VertexAttributePosition  = 0,
 | 
						|
    VertexAttributeTexcoord  = 1,
 | 
						|
    VertexAttributeGridCoord = 2,
 | 
						|
};
 | 
						|
 | 
						|
typedef NS_ENUM(NSInteger, TextureIndex)
 | 
						|
{
 | 
						|
    TextureIndexColor    = 0,
 | 
						|
};
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
    matrix_float4x4 projectionMatrix;
 | 
						|
    matrix_float4x4 modelViewMatrix;
 | 
						|
} Uniforms;
 | 
						|
 | 
						|
#endif /* ShaderTypes_h */
 | 
						|
 |