luxlabs header browser preview


@class NUNICalliopeTextureGroup, IOSurface, NUNCalliopeOffscreen, CALayer, NUNICalliopeResourceManager;
@protocol NUNIRendererOptions, MTLDevice, MTLTexture, MTLBuffer;

@interface NUNICalliopeRenderer : NUNIRenderer {
    id<MTLDevice> _device;
    NUNICalliopeTextureGroup *_textureGroup;
    id<MTLBuffer> _renderUniformsBuffers[3];
    struct { int current; int capacity; } _renderUniformsBuffersCounts[3];
    NUNCalliopeOffscreen *_offscreenScenes[3];
    NUNCalliopeOffscreen *_offscreenBloom;
    NUNCalliopeOffscreen *_offscreenPosts;
    id<MTLTexture> _contentMaskTextures[3];
    IOSurface *_contentMaskSurfaces[3];
    CALayer *_contentMaskLayer;
    struct { id<MTLTexture> texture; struct { id<MTLTexture> texture; struct { unsigned long long width; unsigned long long height; unsigned long long depth; } numThreadgroups; } levels[16]; unsigned long long numLevels; } _bloomChain;
    BOOL _bloomDownsampleUsingTileShaders;
    BOOL _bloomEnabled;
    BOOL _useLowerResolutionTextures;
    unsigned long long _frame;
    struct NUNICalliopeRendererState { struct NUNIViewport { int width; int height; } viewport; float cameraRoll; float aspect; float fovY; void /* unknown type, empty encoding */ cameraOffset; void /* unknown type, empty encoding */ cameraPosition; void /* unknown type, empty encoding */ cameraTarget; void /* unknown type, empty encoding */ cameraUp; void /* unknown type, empty encoding */ cameraLeft; void /* unknown type, empty encoding */ cameraForward; struct { void /* unknown type, empty encoding */ columns[4]; } cameraLookAt; struct { void /* unknown type, empty encoding */ columns[4]; } cameraView; struct { void /* unknown type, empty encoding */ columns[4]; } cameraProjView; } _state;
    struct NUNICalliopeRenderUniforms { struct NUNICalliopeRenderUniforms_vsh { union { void /* unknown type, empty encoding */ sprite; struct { void /* unknown type, empty encoding */ center; void /* unknown type, empty encoding */ axis0; void /* unknown type, empty encoding */ axis1; void /* unknown type, empty encoding */ worldAxis0; void /* unknown type, empty encoding */ worldAxis1; void /* unknown type, empty encoding */ worldLightDirection; float cameraForwardDotLight; } ; struct { void /* unknown type, empty encoding */ lightDirection; void /* unknown type, empty encoding */ viewPosition; struct { void /* unknown type, empty encoding */ columns[2]; } rotationMatrix; void /* unknown type, empty encoding */ offset; void /* unknown type, empty encoding */ aspect; float invResolution; } ; } ; struct { void /* unknown type, empty encoding */ columns[4]; } projectionViewModelMatrix; } vsh; struct NUNICalliopeRenderUniforms_fsh { float opacity; float falloff; float falloffWidth; float falloffOverrideOpacity; float sunExpMin; float sunExpRange; float sunGlowRadiusScale; float cloudAlpha; float bloomStrength; } fsh; } _baseUniforms;
    struct NUNICalliopeRenderUniforms { struct NUNICalliopeRenderUniforms_vsh { union { void /* unknown type, empty encoding */ sprite; struct { void /* unknown type, empty encoding */ center; void /* unknown type, empty encoding */ axis0; void /* unknown type, empty encoding */ axis1; void /* unknown type, empty encoding */ worldAxis0; void /* unknown type, empty encoding */ worldAxis1; void /* unknown type, empty encoding */ worldLightDirection; float cameraForwardDotLight; } ; struct { void /* unknown type, empty encoding */ lightDirection; void /* unknown type, empty encoding */ viewPosition; struct { void /* unknown type, empty encoding */ columns[2]; } rotationMatrix; void /* unknown type, empty encoding */ offset; void /* unknown type, empty encoding */ aspect; float invResolution; } ; } ; struct { void /* unknown type, empty encoding */ columns[4]; } projectionViewModelMatrix; } vsh; struct NUNICalliopeRenderUniforms_fsh { float opacity; float falloff; float falloffWidth; float falloffOverrideOpacity; float sunExpMin; float sunExpRange; float sunGlowRadiusScale; float cloudAlpha; float bloomStrength; } fsh; } _dummyUniforms;
    unsigned int _rendererOptionsChangeSequence;
    BOOL _isPhone;
    union NUNICalliopePipelineConstants { struct { void /* unknown type, blank encoding */ bloomRadius; void /* unknown type, blank encoding */ bloomStrength; void /* unknown type, blank encoding */ bloomThreshold; void /* unknown type, blank encoding */ sunDistance; void /* unknown type, blank encoding */ sunEquatorialRadius; void /* unknown type, blank encoding */ sunGlowRadiusScale; void /* unknown type, blank encoding */ sunExpMin; void /* unknown type, blank encoding */ sunColorRed; void /* unknown type, blank encoding */ sunColorGreen; void /* unknown type, blank encoding */ sunColorBlue; void /* unknown type, blank encoding */ earthLightPower; void /* unknown type, blank encoding */ earthSpecularPower; void /* unknown type, blank encoding */ earthSpecularStrength; void /* unknown type, blank encoding */ earthSpecularBreakup; void /* unknown type, blank encoding */ earthSurfaceAmbientStrength; void /* unknown type, blank encoding */ earthIlluminationRed; void /* unknown type, blank encoding */ earthIlluminationGreen; void /* unknown type, blank encoding */ earthIlluminationBlue; void /* unknown type, blank encoding */ earthIlluminationStrength; void /* unknown type, blank encoding */ earthCloudShadowStrength; void /* unknown type, blank encoding */ earthCloudShadowEaseFrom; void /* unknown type, blank encoding */ earthCloudShadowEaseTo; void /* unknown type, blank encoding */ earthCloudAmbientStrength; void /* unknown type, blank encoding */ earthCloudAlpha; void /* unknown type, blank encoding */ earthAtmosphereRed; void /* unknown type, blank encoding */ earthAtmosphereGreen; void /* unknown type, blank encoding */ earthAtmosphereBlue; void /* unknown type, blank encoding */ earthAtmosphereStrength; void /* unknown type, blank encoding */ earthAtmosphereGlowExpMin; void /* unknown type, blank encoding */ earthAtmosphereTerminatorEaseFrom; void /* unknown type, blank encoding */ earthAtmosphereTerminatorEaseTo; void /* unknown type, blank encoding */ lunaLightPower; void /* unknown type, blank encoding */ lunaSpecularPower; void /* unknown type, blank encoding */ lunaSpecularStrength; void /* unknown type, blank encoding */ lunaSurfaceAmbientStrength; } ; void /* unknown type, blank encoding */ values[35]; } _pipelineConstants;
}

@property (readonly, nonatomic) NUNICalliopeResourceManager *resourceManager;
@property (retain, nonatomic) id<NUNIRendererOptions> rendererOptions;

- (void)dealloc;
- (void)discard;
- (void).cxx_destruct;
- (void)_updateBaseUniformsForViewport:(struct NUNIViewport { int x0; int x1; })a0;
- (id)spheroidAtPoint:(SEL)a0 scene:(id)a1 viewport:(struct NUNIViewport { int x0; int x1; })a2;
- (void)_updateStateWithScene:(const struct NUNISceneStructure { float x0; float x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; BOOL x6; float x7; union { struct { float x0; float x1; } x0; } x8; float x9; float x10; float x11; float x12; } *)a0 viewport:(struct NUNIViewport { int x0; int x1; })a1;
- (void)_computeBloomChainTextures:(id)a0;
- (unsigned long long)_computePatchSpheroidLodWithPositionInViewSpace:(SEL)a0 radius:(const void *)a1 drawableSize:(float)a2;
- (id)_getOrCreateOffscreenBloomWithViewport:(struct NUNIViewport { int x0; int x1; })a0;
- (void)_renderLocationDot:(const struct NUNISpheroidStructure { unsigned long long x0; float x1; float x2; float x3; float x4; struct { } x5; float x6; float x7; float x8; float x9; float x10; unsigned long long x11; unsigned long long x12; union { struct { float x0; float x1; } x0; } x13; union { struct { float x0; float x1; } x0; } x14; BOOL x15; BOOL x16; } *)a0 scene:(const struct NUNISceneStructure { float x0; float x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; BOOL x6; float x7; union { struct { float x0; float x1; } x0; } x8; float x9; float x10; float x11; float x12; } *)a1 uniPtr:(struct NUNICalliopeRenderUniforms { struct NUNICalliopeRenderUniforms_vsh { union { struct { float x0; } x0; struct { struct { void /* unknown type, empty encoding */ x0[2]; } x0; float x1; } x1; } x0; struct { void /* unknown type, empty encoding */ x0[4]; } x1; } x0; struct NUNICalliopeRenderUniforms_fsh { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; } x1; } *)a2 viewport:(struct NUNIViewport { int x0; int x1; })a3 renderEncoder:(id)a4;
- (void)_renderOffscreenBackgroundWithRenderEncoder:(id)a0 frameBufferIndex:(unsigned long long)a1;
- (void)_renderOffscreenBloomTextureUsingTileShaderWithViewport:(struct NUNIViewport { int x0; int x1; })a0 renderEncoder:(id)a1;
- (void)_renderOffscreenBloomTextureWithViewport:(struct NUNIViewport { int x0; int x1; })a0 sceneTexture:(id)a1 commandBuffer:(id)a2;
- (void)_renderOffscreenPostWithScene:(const struct NUNISceneStructure { float x0; float x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; BOOL x6; float x7; union { struct { float x0; float x1; } x0; } x8; float x9; float x10; float x11; float x12; } *)a0 viewport:(struct NUNIViewport { int x0; int x1; })a1 commandBuffer:(id)a2 frameBufferIndex:(unsigned long long)a3;
- (void)_renderOffscreenSceneWithScene:(const struct NUNISceneStructure { float x0; float x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; BOOL x6; float x7; union { struct { float x0; float x1; } x0; } x8; float x9; float x10; float x11; float x12; } *)a0 spheroids:(id)a1 viewport:(struct NUNIViewport { int x0; int x1; })a2 commandBuffer:(id)a3 frameBufferIndex:(unsigned long long)a4 drawableTexture:(id)a5;
- (void)_renderPatchSpheroid:(SEL)a0 frustumCullingState:(const struct NUNISpheroidStructure { unsigned long long x0; float x1; float x2; float x3; float x4; struct { } x5; float x6; float x7; float x8; float x9; float x10; unsigned long long x11; unsigned long long x12; union { struct { float x0; float x1; } x0; } x13; union { struct { float x0; float x1; } x0; } x14; BOOL x15; BOOL x16; } *)a1 drawableSize:(struct { void /* unknown type, empty encoding */ x0[2][4]; void /* unknown type, empty encoding */ x1[2][4]; void /* unknown type, empty encoding */ x2[5]; } *)a2 frameBufferIndex:(unsigned long long)a3 renderEncoder:(id)a4;
- (void)_renderSaturnRings:(SEL)a0 frameBufferIndex:(struct NUNICalliopeRenderUniforms { struct NUNICalliopeRenderUniforms_vsh { union { struct { float x0; } x0; struct { struct { void /* unknown type, empty encoding */ x0[2]; } x0; float x1; } x1; } x0; struct { void /* unknown type, empty encoding */ x0[4]; } x1; } x0; struct NUNICalliopeRenderUniforms_fsh { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; } x1; } *)a1 renderEncoder:(unsigned long long)a2 forwardAngle:(id)a3 position:(float)a4 isRotated:(BOOL)a5 rotationMatrix:(struct { void /* unknown type, empty encoding */ x0[4]; })a6 scale:(float)a7 equatorRotation:(float)a8;
- (void)_renderSpriteSpheroid:(const struct NUNISpheroidStructure { unsigned long long x0; float x1; float x2; float x3; float x4; struct { } x5; float x6; float x7; float x8; float x9; float x10; unsigned long long x11; unsigned long long x12; union { struct { float x0; float x1; } x0; } x13; union { struct { float x0; float x1; } x0; } x14; BOOL x15; BOOL x16; } *)a0 frameBufferIndex:(unsigned long long)a1 renderEncoder:(id)a2;
- (void)_renderSunSprite:(SEL)a0 frameBufferIndex:(struct NUNICalliopeRenderUniforms { struct NUNICalliopeRenderUniforms_vsh { union { struct { float x0; } x0; struct { struct { void /* unknown type, empty encoding */ x0[2]; } x0; float x1; } x1; } x0; struct { void /* unknown type, empty encoding */ x0[4]; } x1; } x0; struct NUNICalliopeRenderUniforms_fsh { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; } x1; } *)a1 renderEncoder:(unsigned long long)a2 position:(id)a3 scale:(float)a4 opacity:(float)a5;
- (void)_setupBloomChainWithViewport:(struct NUNIViewport { int x0; int x1; })a0 bloomTexture:(id)a1;
- (void)_updateTextureLODsForPatchSpheroid:(SEL)a0 uvRate:(unsigned long long)a1 drawableSize:(const void *)a2;
- (void /* unknown type, empty encoding */)buildFrustumPlane:(id)a0 p2:(SEL)a1 p3:(void /* unknown type, empty encoding */)a2;
- (int)classifyObjectBoundingBoxVersusFrustum:(const void *)a0 max:(const void *)a1 withState:(const struct { void /* unknown type, empty encoding */ x0[2][4]; void /* unknown type, empty encoding */ x1[2][4]; void /* unknown type, empty encoding */ x2[5]; } *)a2;
- (id)contentMaskLayer;
- (id)getUniformsBufferForFrameBufferIndex:(unsigned long long)a0 pContents:(struct NUNICalliopeRenderUniforms **)a1 pOffset:(unsigned long long *)a2;
- (id)initWithPixelFormat:(unsigned long long)a0 textureSuffix:(id)a1 rendererStyle:(unsigned long long)a2;
- (BOOL)isObjectBoundingBoxInsideOrIntersectingFrustum:(const void *)a0 max:(const void *)a1 withState:(const struct { void /* unknown type, empty encoding */ x0[2][4]; void /* unknown type, empty encoding */ x1[2][4]; void /* unknown type, empty encoding */ x2[5]; } *)a2;
- (void)prepareObjectSpaceFrustumWithTransform:(const struct { void /* unknown type, empty encoding */ x0[4]; } *)a0 withState:(struct { void /* unknown type, empty encoding */ x0[2][4]; void /* unknown type, empty encoding */ x1[2][4]; void /* unknown type, empty encoding */ x2[5]; } *)a1;
- (void)prepareWorldSpaceFrustumWithTransform:(const struct { void /* unknown type, empty encoding */ x0[4]; } *)a0 withState:(struct { void /* unknown type, empty encoding */ x0[2][4]; void /* unknown type, empty encoding */ x1[2][4]; void /* unknown type, empty encoding */ x2[5]; } *)a1;
- (void)purgeUnusedWithScene:(id)a0;
- (void)renderOffscreenWithScene:(id)a0 viewport:(struct NUNIViewport { int x0; int x1; })a1 commandBuffer:(id)a2;
- (void)renderWithScene:(id)a0 viewport:(struct NUNIViewport { int x0; int x1; })a1 commandBuffer:(id)a2 passDescriptor:(id)a3;
- (void)setContentMaskLayer:(id)a0;

@end