luxlabs header browser preview


@protocol MTLComputePipelineState, MTLBuffer;

@interface MPSRayIntersector : MPSKernel <NSSecureCoding, NSCopying> {
    unsigned long long _cullMode;
    unsigned long long _frontFacingWinding;
    unsigned long long _triangleIntersectionTestType;
    unsigned long long _boundingBoxIntersectionTestType;
    unsigned long long _rayMaskOptions;
    unsigned long long _rayDataType;
    unsigned long long _intersectionDataType;
    BOOL _proRender;
    unsigned long long _rayMaskOperator;
    id<MTLBuffer> _dispatchIndirectBuffer;
    id<MTLComputePipelineState> _dispatchIndirectPipeline;
    unsigned long long _proRenderOptions;
    id<MTLBuffer> _shapeIndexBuffer;
    unsigned long long _shapeIndexBufferOffset;
    id<MTLBuffer> _shapeDataBuffer;
    unsigned long long _shapeDataBufferOffset;
    id<MTLBuffer> _rayIndexBuffer;
    unsigned long long _rayIndexBufferOffset;
    id<MTLBuffer> _rayMaskBuffer;
    unsigned long long _rayMaskBufferOffset;
    unsigned long long _multiHitCount;
    unsigned long long _renderLayerMask;
    void /* unknown type, empty encoding */ _clippingPlane;
    unsigned long long _globalRayMask;
    unsigned int _rayIndexDataType;
    unsigned long long _shapeDataStride;
    unsigned long long _shapeDataMaskOffset;
    unsigned long long _shapeDataRenderLayerOffset;
    id<MTLBuffer> _rayStatisticsBuffer;
    unsigned long long _rayStatisticsBufferOffset;
    unsigned long long _rayStatistics;
    BOOL _useMultipleThreadsPerRay;
    unsigned long long _intersectionEvent;
}

@property (class, readonly) BOOL supportsSecureCoding;

@property (nonatomic) unsigned long long cullMode;
@property (nonatomic) unsigned long long frontFacingWinding;
@property (nonatomic) unsigned long long triangleIntersectionTestType;
@property (nonatomic) unsigned long long boundingBoxIntersectionTestType;
@property (nonatomic) unsigned long long rayMaskOptions;
@property (nonatomic) unsigned long long rayMaskOperator;
@property (nonatomic) unsigned long long rayStride;
@property (nonatomic) unsigned long long intersectionStride;
@property (nonatomic) unsigned long long rayDataType;
@property (nonatomic) unsigned long long intersectionDataType;
@property (nonatomic) unsigned int rayIndexDataType;
@property (nonatomic) unsigned int rayMask;

+ (const struct MPSLibraryInfo { int x0; unsigned int x1; char *x2; void /* function */ *x3; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x4; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x5; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x6; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x7; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x8; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x9; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x10; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x11; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x12; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x13; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x14; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x15; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x16; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x17; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x18; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x19; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x20; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x21; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x22; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x23; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x24; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x25; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x26; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x27; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x28; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x29; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x30; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x31; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x32; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x33; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x34; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x35; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x36; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x37; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x38; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x39; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x40; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x41; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x42; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x43; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x44; struct MPSDeviceSpecificInfo { struct MPSKernelInfo *x0; void /* function */ *x1; unsigned long long x2; } x45; } *)libraryInfo:(void *)a0;

- (id)copyWithZone:(struct _NSZone { } *)a0 device:(id)a1;
- (id)initWithCoder:(id)a0 device:(id)a1;
- (void)dealloc;
- (void)encodeWithCoder:(id)a0;
- (id)description;
- (id)initWithDevice:(id)a0;
- (void)encodeIntersectionToCommandBuffer:(id)a0 intersectionType:(unsigned long long)a1 rayBuffer:(id)a2 rayBufferOffset:(unsigned long long)a3 intersectionBuffer:(id)a4 intersectionBufferOffset:(unsigned long long)a5 rayCount:(unsigned long long)a6 accelerationStructure:(id)a7;
- (unsigned long long)renderLayerMask;
- (id)shapeDataBuffer;
- (unsigned long long)shapeDataStride;
- (void /* unknown type, empty encoding */)clippingPlane;
- (void)encodeIntersectionToCommandBuffer:(id)a0 intersectionType:(unsigned long long)a1 rayBuffer:(id)a2 rayBufferOffset:(unsigned long long)a3 intersectionBuffer:(id)a4 intersectionBufferOffset:(unsigned long long)a5 rayCountBuffer:(id)a6 rayCountBufferOffset:(unsigned long long)a7 accelerationStructure:(id)a8;
- (void)encodeIntersectionToCommandBuffer:(id)a0 intersectionType:(unsigned long long)a1 rayBuffer:(id)a2 rayBufferOffset:(unsigned long long)a3 rayIndexBuffer:(id)a4 rayIndexBufferOffset:(unsigned long long)a5 intersectionBuffer:(id)a6 intersectionBufferOffset:(unsigned long long)a7 rayIndexCount:(unsigned long long)a8 accelerationStructure:(id)a9;
- (void)encodeIntersectionToCommandBuffer:(id)a0 intersectionType:(unsigned long long)a1 rayBuffer:(id)a2 rayBufferOffset:(unsigned long long)a3 rayIndexBuffer:(id)a4 rayIndexBufferOffset:(unsigned long long)a5 intersectionBuffer:(id)a6 intersectionBufferOffset:(unsigned long long)a7 rayIndexCountBuffer:(id)a8 rayIndexCountBufferOffset:(unsigned long long)a9 accelerationStructure:(id)a10;
- (void)encodeIntersectionToCommandBuffer:(id)a0 intersectionType:(unsigned long long)a1 rayTexture:(id)a2 intersectionTexture:(id)a3 accelerationStructure:(id)a4;
- (void)endIntersectionEvent:(unsigned long long)a0 commandBuffer:(id)a1 accelerationStructure:(id)a2;
- (struct MPSRayIntersectorFunctionHash { union { struct { unsigned char x0 : 2; unsigned char x1 : 2; unsigned char x2 : 1; unsigned char x3 : 1; unsigned char x4 : 1; unsigned char x5 : 2; unsigned char x6 : 1; unsigned char x7 : 2; unsigned char x8 : 1; unsigned char x9 : 2; unsigned char x10 : 4; unsigned char x11 : 2; unsigned char x12 : 8; unsigned char x13 : 1; unsigned char x14 : 6; unsigned char x15 : 1; unsigned char x16 : 1; unsigned char x17 : 1; unsigned char x18 : 1; unsigned char x19 : 2; unsigned char x20 : 1; unsigned char x21 : 1; unsigned char x22 : 4; unsigned short x23 : 16; } x0; unsigned long long x1; } x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; })getHashForIntersectionType:(unsigned long long)a0 indexing:(BOOL)a1 indexType:(unsigned int)a2 instancing:(BOOL)a3 vertexStride:(unsigned long long)a4 transformType:(unsigned long long)a5 rootNodeType:(int)a6 branchingFactor:(unsigned long long)a7 nodeLayout:(int)a8 polygonType:(unsigned long long)a9 rayIndexing:(BOOL)a10 useRayTexture:(BOOL)a11 useResourceBuffer:(BOOL)a12;
- (id)getPipelineForIntersectionType:(unsigned long long)a0 rayIndexing:(BOOL)a1 useRayTexture:(BOOL)a2 useResourceBuffer:(BOOL)a3 accelerationStructure:(id)a4 commandBuffer:(id)a5;
- (unsigned long long)globalRayMask;
- (unsigned long long)multiHitCount;
- (unsigned long long)proRenderOptions;
- (id)rayIndexBuffer;
- (unsigned long long)rayIndexBufferOffset;
- (id)rayMaskBuffer;
- (unsigned long long)rayMaskBufferOffset;
- (unsigned long long)rayStatistics;
- (id)rayStatisticsBuffer;
- (unsigned long long)rayStatisticsBufferOffset;
- (unsigned long long)recommendedMinimumRayBatchSizeForRayCount:(unsigned long long)a0;
- (void)setClippingPlane:(SEL)a0;
- (void)setGlobalRayMask:(unsigned long long)a0;
- (void)setMultiHitCount:(unsigned long long)a0;
- (void)setProRenderOptions:(unsigned long long)a0;
- (void)setRayIndexBuffer:(id)a0;
- (void)setRayIndexBufferOffset:(unsigned long long)a0;
- (void)setRayMaskBuffer:(id)a0;
- (void)setRayMaskBufferOffset:(unsigned long long)a0;
- (void)setRayStatistics:(unsigned long long)a0;
- (void)setRayStatisticsBuffer:(id)a0;
- (void)setRayStatisticsBufferOffset:(unsigned long long)a0;
- (void)setRenderLayerMask:(unsigned long long)a0;
- (void)setShapeDataBuffer:(id)a0;
- (void)setShapeDataBufferOffset:(unsigned long long)a0;
- (void)setShapeDataMaskOffset:(unsigned long long)a0;
- (void)setShapeDataRenderLayerOffset:(unsigned long long)a0;
- (void)setShapeDataStride:(unsigned long long)a0;
- (void)setShapeIndexBuffer:(id)a0;
- (void)setShapeIndexBufferOffset:(unsigned long long)a0;
- (void)setUseMultipleThreadsPerRay:(BOOL)a0;
- (unsigned long long)shapeDataBufferOffset;
- (unsigned long long)shapeDataMaskOffset;
- (unsigned long long)shapeDataRenderLayerOffset;
- (id)shapeIndexBuffer;
- (unsigned long long)shapeIndexBufferOffset;
- (void)sharedInitRaytracer;
- (unsigned long long)startIntersectionEventWithCommandBuffer:(id)a0 accelerationStructure:(id)a1;
- (BOOL)useMultipleThreadsPerRay;

@end