luxlabs header browser preview


@class NSMutableArray, NSString, SCNMTLSkinDeformer, NSMapTable, SCNMTLSmoothNormalsDeformer, SCNMTLMorphDeformer, SCNGeometryDeformer, SCNMTLRenderContext, SCNMTLMesh, SCNMTLResourceManager, MTLStageInputOutputDescriptor, SCNMTLComputePipeline;
@protocol MTLBlitCommandEncoder, MTLBuffer;

@interface SCNMTLDeformerStack : NSObject <SCNMTLDeformerInitComputeContext, SCNMTLDeformerUpdateComputeContext> {
    SCNMTLResourceManager *_resourceManager;
    struct __C3DDeformerStack { } *_deformers;
    struct __C3DNode { struct __C3DEntity { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; void *x1; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __C3DScene *x5; long long x6; } x0; struct __C3DNode *x1; struct __C3DNode *x2; struct __C3DNode *x3; int x4; struct { union C3DMatrix4x4 { float x0[16]; void /* unknown type, empty encoding */ x1[4]; struct { void /* unknown type, empty encoding */ x0[4]; } x2; } x0; union { } x1; } x5; union C3DMatrix4x4)BfQib1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b3b1b1{? { } *x6; BOOL x7; float x8; unsigned long long x9; int x10; unsigned char x11 : 1; unsigned char x12 : 1; unsigned char x13 : 1; unsigned char x14 : 1; 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 : 1; unsigned char x26 : 1; unsigned char x27 : 1; unsigned char x28 : 1; unsigned char x29 : 1; unsigned char x30 : 1; unsigned char x31 : 1; unsigned char x32 : 1; unsigned char x33 : 1; unsigned char x34 : 3; unsigned char x35 : 1; unsigned char x36 : 1; struct { struct { unsigned short x0; unsigned short x1; } x0; unsigned int x1; } x37; struct *x38; struct __C3DGeometry *x39; struct __C3DDeformerStack *x40; float x41; struct { } x42; } *_node;
    struct __C3DMesh { } *_baseMesh;
    unsigned char _finalDataKind;
    unsigned char _deformDataKind;
    BOOL _isValid;
    BOOL _reliesOnTransforms;
    BOOL _reliesOnFrustum;
    id<MTLBuffer> _initialPositionBuffer;
    id<MTLBuffer> _initialNormalBuffer;
    id<MTLBuffer> _initialTangentBuffer;
    MTLStageInputOutputDescriptor *_initialBuffersStageInputDescriptor;
    id<MTLBuffer> _deformPositionBuffer;
    id<MTLBuffer> _deformNormalBuffer;
    id<MTLBuffer> _deformTangentBuffer;
    SCNMTLMesh *_finalMesh;
    id<MTLBuffer> _finalPositionBuffer;
    id<MTLBuffer> _finalNormalBuffer;
    id<MTLBuffer> _finalTangentBuffer;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _initialPositionStageInputOutputDescriptorInfo;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _initialNormalStageInputOutputDescriptorInfo;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _initialTangentStageInputOutputDescriptorInfo;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _deformPositionStageInputOutputDescriptorInfo;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _deformNormalStageInputOutputDescriptorInfo;
    struct { BOOL isActive; unsigned long long bufferAttributeFormat; unsigned long long bufferAttributeOffset; unsigned long long bufferLayoutStride; } _deformTangentStageInputOutputDescriptorInfo;
    struct { unsigned int maxIndex; } _splatUniforms;
    SCNMTLComputePipeline *_splatDeformedToFinalPipeline;
    id<MTLBuffer> _deindexedToOriginalTableBuffer;
    unsigned long long _deindexedToOriginalTableBufferIndexSize;
    id<MTLBuffer> _deindexedToFirstDeindexedTableBuffer;
    unsigned long long _deindexedToFirstDeindexedTableBufferIndexSize;
    id<MTLBuffer> _originalToFirstDeindexedTableBuffer;
    unsigned long long _originalToFirstDeindexedTableBufferIndexSize;
    SCNGeometryDeformer *_currentInitDeformer;
    SCNMTLRenderContext *_currentInitRenderContext;
    id<MTLBlitCommandEncoder> _currentInitResourceBlitEncoder;
    struct { struct { void /* unknown type, empty encoding */ columns[4]; } modelViewTransform; struct { void /* unknown type, empty encoding */ columns[4]; } modelViewProjectionTransform; struct { void /* unknown type, empty encoding */ columns[4]; } projectionTransform; } _currentUpdateTransforms;
    struct { void /* unknown type, empty encoding */ screenResolution; void /* unknown type, empty encoding */ worldPlanes[6]; } _currentUpdateFrustumInfo;
    SCNMTLRenderContext *_currentUpdateRenderContext;
    struct SCNMTLComputeCommandEncoder { id x0[31]; unsigned long long x1[31]; id x2[128]; id x3[16]; id x4; id x5; id x6; struct SCNMTLBufferPool *x7; unsigned int x8; unsigned long long x9[2]; unsigned long long x10[1]; } *_currentUpdateComputeCommandEncoder;
    SCNMTLMorphDeformer *_morphDeformer;
    SCNMTLSkinDeformer *_skinDeformer;
    SCNMTLSmoothNormalsDeformer *_smoothNormalsDeformer;
    NSMutableArray *_postMorphingDeformerInstances;
    NSMutableArray *_postSkinningDeformerInstances;
    NSMapTable *_customDeformerToInstances;
}

@property (readonly, nonatomic) id<MTLBlitCommandEncoder> currentBlitEncoder;
@property (readonly, nonatomic) MTLStageInputOutputDescriptor *stageInputDescriptor;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (readonly, nonatomic) long long currentFrameIndex;
@property (readonly, nonatomic) struct { struct { void /* unknown type, empty encoding */ x0[4]; } x0; struct { void /* unknown type, empty encoding */ x0[4]; } x1; struct { void /* unknown type, empty encoding */ x0[4]; } x2; } currentTransforms;
@property (readonly, nonatomic) struct SCNMTLComputeCommandEncoder { id x0[31]; unsigned long long x1[31]; id x2[128]; id x3[16]; id x4; id x5; id x6; struct SCNMTLBufferPool *x7; unsigned int x8; unsigned long long x9[2]; unsigned long long x10[1]; } *currentComputeEncoder;

- (void)dealloc;
- (struct { void /* unknown type, empty encoding */ x0[6]; })_currentFrustumInfo;
- (id)deindexedToFirstDeindexedTableBufferWithBlitEncoder:(id)a0 indexSizeOut:(unsigned long long *)a1;
- (id)deindexedToOriginalTableBufferWithBlitEncoder:(id)a0 indexSizeOut:(unsigned long long *)a1;
- (id)newBufferForDataKind:(unsigned char)a0 meshSource:(struct __C3DMeshSource { struct __C3DGenericSource { struct __C3DEntity { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; void *x1; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __C3DScene *x5; long long x6; } x0; struct __C3DSourceAccessor *x1; union { struct __CFData *x0; void *x1; void *x2; } x2; long long x3; unsigned char x4 : 1; unsigned char x5 : 1; unsigned char x6 : 1; } x0; unsigned short x1; unsigned char x2; unsigned char x3; } *)a1 dataType:(short)a2 forStageInputOutputDescriptor:(BOOL)a3 usePrivateStorageMode:(BOOL)a4 outStride:(unsigned long long *)a5;
- (id)newBufferForDataKind:(unsigned char)a0 positionSource:(struct __C3DMeshSource { struct __C3DGenericSource { struct __C3DEntity { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; void *x1; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __C3DScene *x5; long long x6; } x0; struct __C3DSourceAccessor *x1; union { struct __CFData *x0; void *x1; void *x2; } x2; long long x3; unsigned char x4 : 1; unsigned char x5 : 1; unsigned char x6 : 1; } x0; unsigned short x1; unsigned char x2; unsigned char x3; } *)a1 normalSource:(struct __C3DMeshSource { struct __C3DGenericSource { struct __C3DEntity { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; void *x1; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __C3DScene *x5; long long x6; } x0; struct __C3DSourceAccessor *x1; union { struct __CFData *x0; void *x1; void *x2; } x2; long long x3; unsigned char x4 : 1; unsigned char x5 : 1; unsigned char x6 : 1; } x0; unsigned short x1; unsigned char x2; unsigned char x3; } *)a2 positionDataType:(short)a3 normalDataType:(short)a4 forStageInputOutputDescriptor:(BOOL)a5 usePrivateStorageMode:(BOOL)a6 outStride:(unsigned long long *)a7 outPositionOffset:(unsigned long long *)a8 outNormalOffset:(unsigned long long *)a9;
- (id)originalToFirstDeindexedTableBufferWithBlitEncoder:(id)a0 indexSizeOut:(unsigned long long *)a1;
- (void)reconfigureIfNeededWithContext:(id)a0 programHashCodeRequirements:(struct { BOOL x0; })a1;
- (void)setStageInputOutputBuffersToEncoder:(struct SCNMTLComputeCommandEncoder { id x0[31]; unsigned long long x1[31]; id x2[128]; id x3[16]; id x4; id x5; id x6; struct SCNMTLBufferPool *x7; unsigned int x8; unsigned long long x9[2]; unsigned long long x10[1]; } *)a0;
- (void)setupFinalMeshWithMesh:(struct __C3DMesh { } *)a0 entityName:(struct __CFString { } *)a1 info:(struct { BOOL x0; BOOL x1; BOOL x2; BOOL x3; })a2 usingDrawIndirect:(BOOL)a3;
- (void)setupInitialBuffersWithBaseMesh:(struct __C3DMesh { } *)a0 entityName:(struct __CFString { } *)a1 info:(struct { BOOL x0; BOOL x1; BOOL x2; BOOL x3; BOOL x4; BOOL x5; })a2;

@end