luxlabs header browser preview


@class NSArray, MTLAccelerationStructureDescriptor;

@interface MTLBVHDescriptor : NSObject {
    unsigned long long _maxDepth;
    unsigned long long _clampedMaxDepth;
    unsigned long long _fragmentCount;
    unsigned long long _primitiveDataSize;
    MTLAccelerationStructureDescriptor *_mtlDescriptor;
    struct PipelineKey { struct { unsigned char pipelineIndex : 8; unsigned char polygonType : 2; unsigned char minFragmentsPerLeaf : 4; unsigned char maxFragmentsPerLeaf : 8; unsigned char indexStride : 4; unsigned char spatialSplits : 1; unsigned char useResourceBuffer : 1; unsigned char primitiveMotion : 1; unsigned char branchingFactor : 4; unsigned char motion : 1; unsigned char useBatching : 1; unsigned char useChildIndices : 1; unsigned char vertexFormat : 6; unsigned char logThreadgroupSize : 4; unsigned char maxFragmentsPerInnerNode : 8; unsigned char createLeafNodes : 1; unsigned char enforceMaxDepth : 1; unsigned char useTemporalSplits : 1; unsigned char disallowMixingTemporalSplitsAndLeafNodes : 1; unsigned char useFastWideBuild : 1; unsigned char deterministic : 1; unsigned char fragmentPhase : 1; unsigned char supportsSIMDReduction : 1; unsigned char supportsSIMDShuffleAndFill : 1; unsigned char useFastBestObjectSplit : 1; unsigned char maxSubKeyframeTemporalSplits : 4; unsigned char disallowTemporalSplits : 1; } ; unsigned int vertexStride; unsigned int boundingBoxStride; float minOverlap; float traversalCost; float fragmentCost; float temporalSplitBias; } _pipelineKey;
    BOOL _pipelineKeyValid;
}

@property (nonatomic) unsigned long long maxDepth;
@property (nonatomic) unsigned long long branchingFactor;
@property (nonatomic) unsigned long long minPrimitivesPerLeaf;
@property (nonatomic) unsigned long long maxPrimitivesPerLeaf;
@property (nonatomic) unsigned long long minPrimitivesPerInnerNode;
@property (nonatomic) unsigned long long maxPrimitivesPerInnerNode;
@property (nonatomic) float traversalCost;
@property (nonatomic) float primitiveCost;
@property (nonatomic) unsigned long long splitHeuristic;
@property (nonatomic) float splitCapacity;
@property (nonatomic) float minOverlap;
@property (nonatomic) float motionTraversalCost;
@property (nonatomic) BOOL motion;
@property (nonatomic) unsigned long long primitiveKeyframeCount;
@property (nonatomic) float primitiveMotionStartTime;
@property (nonatomic) float primitiveMotionEndTime;
@property (nonatomic) BOOL useTemporalSplits;
@property (nonatomic) float temporalSplitBias;
@property (nonatomic) BOOL disallowMixingTemporalSplitsAndLeafNodes;
@property (nonatomic) BOOL useFastBuild;
@property (nonatomic) BOOL deterministic;
@property (nonatomic) unsigned long long maxSubKeyframeTemporalSplits;
@property (nonatomic) unsigned long long fragmentCount;
@property (nonatomic) unsigned long long primitiveDataSize;
@property (weak, nonatomic) NSArray *geometryDescriptors;

- (id)init;
- (void).cxx_destruct;
- (BOOL)primitiveMotion;
- (unsigned long long)actualMaxDepth;
- (struct PipelineKey { struct { unsigned char x0 : 8; unsigned char x1 : 2; unsigned char x2 : 4; unsigned char x3 : 8; unsigned char x4 : 4; unsigned char x5 : 1; unsigned char x6 : 1; unsigned char x7 : 1; unsigned char x8 : 4; unsigned char x9 : 1; unsigned char x10 : 1; unsigned char x11 : 1; unsigned char x12 : 6; unsigned char x13 : 4; unsigned char x14 : 8; unsigned char x15 : 1; unsigned char x16 : 1; unsigned char x17 : 1; unsigned char x18 : 1; unsigned char x19 : 1; unsigned char x20 : 1; unsigned char x21 : 1; unsigned char x22 : 1; unsigned char x23 : 1; unsigned char x24 : 1; unsigned char x25 : 4; unsigned char x26 : 1; } x0; unsigned int x1; unsigned int x2; float x3; float x4; float x5; float x6; })cachedPipelineKey;
- (BOOL)requiresResourceBuffer;
- (void)updateMaxDepth;
- (void)updatePipelineKey;

@end