@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