Sources/N-body/MetalGaussianMap.h

/*
 Copyright (C) 2015-2016 Apple Inc. All Rights Reserved.
 See LICENSE.txt for this sample’s licensing information
 
 Abstract:
 Utility class for creating a 2d Gaussian texture.
 */
 
#import <Metal/Metal.h>
 
@interface MetalGaussianMap : NSObject
 
// Query to find if a texture was generated successfully
@property (readonly) BOOL haveTexture;
 
// Generate a texture from samples generated by convolving the initial
// data with a Gaussian white noise
@property (nullable, nonatomic, setter=acquire:) id<MTLDevice> device;
 
// Gaussian texture
@property (nullable, readonly) id<MTLTexture> texture;
 
// Gaussian texture resolution
@property (nonatomic) uint32_t texRes;
 
// Number of color channels. Defaults to 4 for RGBA
@property (nonatomic) uint32_t channels;
 
// Gaussian texture width
@property (readonly) uint32_t width;
 
// Gaussian texture height
@property (readonly) uint32_t height;
 
// Gaussian texture bytes per row
@property (readonly) uint32_t rowBytes;
 
@end