luxlabs header browser preview


@class SCNMTLMeshElement, NSString, SCNMTLMesh, SCNMTLRenderPipeline, SCNMTLShadable, NSMutableDictionary, NSMutableArray, NSObject, MTLRenderPassDescriptor, CAMetalLayer, SCNMTLResourceManager;
@protocol MTLCommandBuffer, MTLDevice, MTLComputePipelineState, OS_dispatch_group, OS_dispatch_queue, CAMetalDrawable, MTLDepthStencilState, MTLTexture, OS_dispatch_semaphore, SCNMTLRenderContextCommandBufferStatusMonitor, MTLBlitCommandEncoder, MTLBuffer, SCNMTLRenderContextResourceManagerMonitor, MTLComputeCommandEncoder, MTLRenderCommandEncoder, MTLSamplerState, MTLCommandQueue;

@interface SCNMTLRenderContext : NSObject <SCNBufferStream> {
    long long _currentFrameIndex;
    struct __C3DEngineStats { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; unsigned int x9; unsigned int x10; unsigned int x11; unsigned int x12; unsigned int x13; unsigned int x14; unsigned int x15; unsigned int x16; unsigned int x17; unsigned int x18; unsigned int x19; unsigned int x20; unsigned int x21; unsigned int x22; unsigned int x23; double x24; double x25; double x26; double x27; double x28; double x29; double x30; double x31; double x32; double x33; double x34; double x35; double x36; double x37; double x38; unsigned int x39; unsigned int x40; unsigned int x41; unsigned int x42; unsigned int x43; unsigned int x44; unsigned int x45; unsigned int x46; unsigned int x47; unsigned int x48; unsigned int x49; unsigned int x50; unsigned int x51; unsigned int x52; unsigned int x53; unsigned int x54; unsigned int x55; double x56; unsigned int x57; double x58; unsigned int x59; double x60; double x61; double x62; double x63; double x64[60]; unsigned int x65; double x66; double x67; } *__engineStats;
    double _superSamplingFactor;
    struct SCNMatrix4 { float m11; float m12; float m13; float m14; float m21; float m22; float m23; float m24; float m31; float m32; float m33; float m34; float m41; float m42; float m43; float m44; } _screenTransform;
    long long _sampleCount;
    BOOL _needSuperSampling;
    SCNMTLResourceManager *_resourceManager;
    id<MTLDevice> _device;
    BOOL _isValidationEnabled;
    int _profile;
    unsigned int _features;
    struct __C3DEngineContext { } *_engineContext;
    unsigned char _wantsWideGamut : 1;
    unsigned char _isOpaque : 1;
    unsigned char _disableLinearRendering : 1;
    unsigned char _enableARMode : 1;
    unsigned char _shouldDelegateARCompositing : 1;
    unsigned char _useFunctionConstants : 1;
    unsigned char _reverseZ : 1;
    unsigned char _forceAsyncShaderCompilation : 1;
    id<MTLCommandQueue> _ownedCommandQueue;
    NSObject<OS_dispatch_semaphore> *_inFlightSemaphore;
    struct atomic<int> { struct __cxx_atomic_impl<int, std::__cxx_atomic_base_impl<int>> { _Atomic int __a_value; } __a_; } _pendingGPUFrameCount;
    id<MTLTexture> _textureTarget;
    CAMetalLayer *_layerTarget;
    id<CAMetalDrawable> _drawable;
    float _targetedFrameInterval;
    BOOL _shouldPresentAfterMinimumDuration;
    BOOL _shouldPresentWithTransaction;
    MTLRenderPassDescriptor *_currentRenderPassDescriptor;
    MTLRenderPassDescriptor *_originalRenderPassDescriptor;
    void /* unknown type, empty encoding */ _renderSize;
    id<MTLCommandBuffer> _currentCommandBuffer;
    struct SCNMTLRenderCommandEncoder { BOOL x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; BOOL x5; BOOL x6; BOOL x7; BOOL x8; unsigned int x9; unsigned int x10; unsigned char x11; BOOL x12; BOOL x13; struct { id x0; unsigned long long x1; } x14[31]; id x15[128]; id x16[16]; struct { id x0; unsigned long long x1; } x17[31]; id x18[128]; id x19[16]; id x20; id x21; id x22; struct SCNMTLBufferPool *x23; unsigned long long x24[2]; unsigned long long x25[2]; } *_renderEncoder;
    id<MTLCommandBuffer> _resourceCommandBuffer;
    struct SCNMTLBlitCommandEncoder { id<MTLBlitCommandEncoder> _encoder; id<MTLCommandBuffer> _commandBuffer; } _resourceBlitEncoder;
    struct SCNMTLComputeCommandEncoder { id<MTLBuffer> _buffers[31]; unsigned long long _offsets[31]; id<MTLTexture> _textures[128]; id<MTLSamplerState> _samplers[16]; id<MTLComputePipelineState> _computePipelineState; id<MTLComputeCommandEncoder> _encoder; id<MTLCommandBuffer> _commandBuffer; struct SCNMTLBufferPool *_bufferPool; unsigned int _features; unsigned long long _texturesToBind[2]; unsigned long long _buffersToBind[1]; } _resourceComputeEncoder;
    struct { unsigned char renderSliceIndex; unsigned char eyeCount; unsigned char renderMode; unsigned char multiVertexOutputStreamGenerator; BOOL isMainPass; BOOL isFinalTechnique; } _renderPassParameters;
    struct { char vertexIndex; char fragmentIndex; } _currentStreamBufferIndices;
    struct SCNMTLBufferPool *_volatileBufferPools[3];
    void *_frameVolatileBufferPool;
    NSMutableArray *_volatileMeshes;
    NSMutableArray *_bufferPool;
    NSMutableArray *_usedVolatileMeshElements;
    NSMutableArray *_freeVolatileMeshElements;
    struct SCNMTLBufferPool *_constantBufferPools[3];
    void *_frameConstantBufferPool;
    void *_frameTexturePool;
    id<MTLDepthStencilState> _defaultDepthStencilState;
    id<MTLSamplerState> _defaultSamplerState;
    struct __C3DFXMetalProgram *_background2DProgram[3];
    struct __C3DFXMetalProgram *_backgroundCubeProgram[3];
    struct __C3DFXMetalProgram { struct __C3DFXProgram { 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; int x1; unsigned char x2 : 1; unsigned char x3 : 1; struct __C3DFXProgramDelegate *x4; } x0; struct __CFString *x1[2]; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __CFSet *x5; void *x6; struct __CFDictionary *x7; void *x8; unsigned long long x9; unsigned int x10; } *_backgroundVideoProgram;
    struct __C3DFXMetalProgram { struct __C3DFXProgram { 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; int x1; unsigned char x2 : 1; unsigned char x3 : 1; struct __C3DFXProgramDelegate *x4; } x0; struct __CFString *x1[2]; struct __CFString *x2; struct __CFString *x3; struct __CFDictionary *x4; struct __CFSet *x5; void *x6; struct __CFDictionary *x7; void *x8; unsigned long long x9; unsigned int x10; } *_backgroundVideoAlpha0Program;
    struct __C3DRasterizerStates { } *_backgroundRasterizerStates;
    double _initialTime;
    NSObject<OS_dispatch_queue> *_resourceQueue;
    NSObject<OS_dispatch_group> *_resourceGroup;
    id<MTLBuffer> _shadowKernelBuffer;
    struct { struct __C3DFXPassInstance *passInstance; struct __C3DLightingSystem *lightingSystem; struct __C3DDynamicBatchingSystem *dynamicBatchingSystem; struct __C3DFXPass *pass; void *renderGraphPass; BOOL passRequiresLighting; struct __C3DTransformTree *transformTree; } _processingContext;
    unsigned int _seed;
    struct SCNSceneBuffer { struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } viewTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } inverseViewTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } projectionTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } viewProjectionTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } viewToCubeTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } lastFrameViewProjectionTransform; void /* unknown type, empty encoding */ ambientLightingColor; void /* unknown type, empty encoding */ fogColor; void /* unknown type, empty encoding */ fogParameters; void /* unknown type, empty encoding */ inverseResolution; float time; float sinTime; float cosTime; float random01; float motionBlurIntensity; float environmentIntensity; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } inverseProjectionTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } inverseViewProjectionTransform; void /* unknown type, empty encoding */ nearFar; void /* unknown type, empty encoding */ viewportSize; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } inverseTransposeViewTransform; void /* unknown type, empty encoding */ clusterScale; } _frameUniforms[6];
    struct { id<MTLBuffer> buffer; unsigned long long offset; } _sceneUniforms;
    struct { id<MTLBuffer> buffer; unsigned long long offset; unsigned long long size; id<MTLTexture> shadowMaps[256]; id<MTLTexture> textureMaps[256]; id<MTLSamplerState> samplerStates[256]; } _lightsData;
    struct { struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } modelTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } lastFrameModelTransform; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } normalTransforms[6]; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } modelViewTransforms[6]; struct float4x4 { void /* unknown type, empty encoding */ columns[4]; } modelViewProjectionTransforms[6]; struct float2x3 { void /* unknown type, empty encoding */ columns[2]; } boundingBox; struct float2x3 { void /* unknown type, empty encoding */ columns[2]; } worldBoundingBox; struct __C3DNode *instanceNode; unsigned int flags; unsigned int *probeCacheIndex; } _nodeUniforms;
    struct { struct { unsigned char lights[8]; } currentLightingSet; id<MTLTexture> currentShadowMaps[8]; id<MTLTexture> currentGoboMaps[8]; struct unordered_map<unsigned long long, SCNMTLLightSetData, std::hash<unsigned long long>, std::equal_to<unsigned long long>, std::allocator<std::pair<const unsigned long long, SCNMTLLightSetData>>> { struct __hash_table<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, std::__unordered_map_hasher<unsigned long long, std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, std::hash<unsigned long long>, std::equal_to<unsigned long long>>, std::__unordered_map_equal<unsigned long long, std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, std::equal_to<unsigned long long>, std::hash<unsigned long long>>, std::allocator<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<unsigned long long, std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, std::hash<unsigned long long>, std::equal_to<unsigned long long>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<unsigned long long, std::__hash_value_type<unsigned long long, SCNMTLLightSetData>, std::equal_to<unsigned long long>, std::hash<unsigned long long>>> { float __value_; } __p3_; } __table_; } frameLightingSetDatas; unsigned long long currentLightingHashKey; struct { long long count; struct __C3DLight *lights[8]; struct __C3DLightRuntimeData *lightsData[8]; } currentLightingDesc; struct { void /* unknown type, empty encoding */ columns[4]; } currentLightingSpace; struct { void /* unknown type, empty encoding */ columns[4]; } currentLightingSpaceShadow; BOOL needLightingSpaceTransformation; struct SCNMTLClusterSystem { void /* unknown type, empty encoding */ clustersCount; void /* unknown type, empty encoding */ tileSize; void /* unknown type, empty encoding */ selectedDebugClusterIndex; SCNMTLRenderPipeline *_debugClusterTilesPipeline; SCNMTLRenderPipeline *_debugLightIndicesBufferPipeline; SCNMTLRenderPipeline *_debugClusterSlicesPipeline; struct __C3DFXMetalProgram *_debugProgram[7]; struct __C3DMesh *_debugShapes[7]; } clusterSystem; struct Info { struct { char *memory; id<MTLBuffer> buffer; unsigned long long offset; } clusterBuffer; id<MTLTexture> clusterTexture; id<MTLTexture> lightIndicesTexture; void /* unknown type, empty encoding */ cellSize; void /* unknown type, empty encoding */ clusterScale; void /* unknown type, empty encoding */ cellPixelSize; void /* unknown type, empty encoding */ omniLightsRange; void /* unknown type, empty encoding */ spotLightsRange; void /* unknown type, empty encoding */ probeLightsRange; struct { char *memory; id<MTLBuffer> buffer; unsigned long long offset; } lightsBuffer; unsigned int lightsBufferLightCount; id<MTLTexture> shadowTextures[8]; id<MTLTexture> iesOrGoboTextures[8]; id<MTLSamplerState> samplerStates[8]; id<MTLBuffer> areaBuffer; unsigned long long areaBufferOffset; unsigned long long areaBufferOffsets[8]; } clusterInfo; id<MTLTexture> reflectionProbesTextureArray; } _lighting;
    struct Cache { struct __C3DRasterizerStates *rasterizerStates; struct __C3DMesh *mesh; SCNMTLMesh *metalMesh; struct __C3DMeshElement *meshElement; SCNMTLMeshElement *metalMeshElement; struct __C3DFXMetalProgram *program; struct __C3DMaterial *material; struct __C3DGeometry *geometry; SCNMTLShadable *metalShadable; struct __C3DEffectCommonProfile *commonProfile; struct __C3DBlendStates *blendStates; unsigned char colorBufferWriteMask; unsigned char primitiveTopologyClass; struct __C3DNode *node; unsigned long long vertexDescriptorHash; unsigned char tessellationPipelineStateHash; SCNMTLRenderPipeline *renderPipeline; } _cache;
    struct { unsigned long long hash; SCNMTLRenderPipeline *pipeline; } _compositeRendering[2];
    SCNMTLRenderPipeline *_downSamplePipeline;
    struct { id<MTLTexture> backgroundTexture; id<MTLTexture> overlayTexture; id<MTLTexture> stencilDepthTexture; } _skCompositing;
    struct { unsigned long long pixelFormat; unsigned long long sampleCount; SCNMTLRenderPipeline *displayCubemapPipeline; SCNMTLRenderPipeline *displayTexture2DPipeline; SCNMTLRenderPipeline *displayDepth2DPipeline; SCNMTLRenderPipeline *displayDepthCubePipeline; } _debug;
    BOOL _showsAuthoringEnvironment;
    struct { BOOL collectEnabled; NSMutableDictionary *errors; } _compilationIssues;
    struct { unsigned int modelTransformBindingCount; unsigned int modelViewTransformBindingCount; unsigned int normalTransformBindingCount; unsigned int nodeOpacityBindingCount; } _counters;
    struct { unsigned long long passHash; struct __C3DMaterial *material; } _renderGraph;
    id<SCNMTLRenderContextResourceManagerMonitor> _resourceManagerMonitor;
    id<SCNMTLRenderContextCommandBufferStatusMonitor> _commandBufferStatusMonitor;
    id _commandBufferScheduledHandlers;
    id _commandBufferCompletedHandlers;
    id _drawablePresentedHandlers;
    MTLRenderPassDescriptor *_clientRenderPassDescriptor;
    id<MTLRenderCommandEncoder> _clientRenderCommandEncoder;
    id<MTLCommandBuffer> _clientCommandBuffer;
    unsigned long long _debugOptions;
    double _contentScaleFactor;
    id<MTLCommandQueue> _clientCommandQueue;
    NSString *_generatedTexturePath;
}

@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

- (void)dealloc;
- (id).cxx_construct;
- (unsigned long long)depthStencilPixelFormat;
- (void).cxx_destruct;
- (void)writeBytes:(const void *)a0 length:(unsigned long long)a1;
- (id)buffer:(int)a0 :(id)a1 :(long long *)a2 :(long long *)a3;
- (unsigned long long)colorPixelFormatAtIndex:(long long)a0;
- (const char *)constantData:(int)a0;
- (BOOL)constantOffsetAndSize:(int)a0 :(id)a1 :(long long *)a2 :(long long *)a3;
- (id)sampler:(int)a0 :(id)a1;
- (id)texture:(int)a0 :(id)a1;
- (void)viewports:(const void **)a0 :(long long *)a1;
- (BOOL)vrrEnabled;
- (void)_drawShadowMaps;
- (void)_clearUnusedBindingPoints;
- (void)_createResourceCommandBufferIfNeeded;
- (void)_drawPBRTextures;
- (void)_executeDrawCommand:(struct { struct __C3DFXMetalProgram *x0; struct __C3DMaterial *x1; struct __C3DGeometry *x2; struct __C3DNode *x3; struct __C3DMesh *x4; struct __C3DMeshElement *x5; struct { unsigned char x0[8]; } x6; struct __C3DFXPass *x7; unsigned int *x8; BOOL x9; BOOL x10; BOOL x11; BOOL x12; BOOL x13; unsigned char x14 : 3; })a0;
- (void)_logLightingInformation;
- (id)_newMTLBufferFromPoolWithLength:(unsigned long long)a0;
- (void)_prepareMaterialTextures:(struct __C3DMaterial { } *)a0;
- (void)_recycleMTLBufferToPool:(id)a0;
- (void)_reduceStatsOfConstantBuffer:(id)a0;
- (void)_updateProjectionMatrixForOrthographicSkyboxRenderingIfNeeded:(union C3DMatrix4x4 { float x0[16]; void /* unknown type, empty encoding */ x1[4]; struct { void /* unknown type, empty encoding */ x0[4]; } x2; } *)a0;
- (float)_zFarForSkyboxRenderingProjectionMatrix:(const union C3DMatrix4x4 { float x0[16]; void /* unknown type, empty encoding */ x1[4]; struct { void /* unknown type, empty encoding */ x0[4]; } x2; } *)a0 defaultZFar:(float)a1;
- (void)resetVolatileMeshElements;
- (void)resetVolatileMeshes;

@end