@class NSString, SCNScene, SCNNode, AVAudioEnvironmentNode, SCNRenderer, SKScene, SCNDisplayLink, AVAudioEngine, MTLRenderPassDescriptor, SCNTechnique, SCNJitterer; @protocol MTLRenderCommandEncoder, SCNSceneRendererDelegate, MTLDevice, MTLCommandQueue; @interface SCNMetalLayer : CAMetalLayer { SCNJitterer *_jitterer; SCNRenderer *_renderer; SCNScene *_scene; SCNDisplayLink *_displayLink; long long _preferredFramePerSeconds; double _lastUpdate; double _lastRenderedTime; BOOL _drawForJittering; BOOL _rendersIntoMaterial; } @property (retain, nonatomic) SCNScene *scene; @property (nonatomic) unsigned long long antialiasingMode; @property (nonatomic) BOOL syncTimeWithCoreAnimation; @property (nonatomic) double sceneTime; @property (weak, nonatomic) id delegate; @property (getter=isPlaying) BOOL playing; @property (nonatomic) BOOL loops; @property (retain, nonatomic) SCNNode *pointOfView; @property (nonatomic) BOOL autoenablesDefaultLighting; @property (nonatomic, getter=isJitteringEnabled) BOOL jitteringEnabled; @property (nonatomic, getter=isTemporalAntialiasingEnabled) BOOL temporalAntialiasingEnabled; @property (nonatomic) BOOL showsStatistics; @property (nonatomic) unsigned long long debugOptions; @property (retain, nonatomic) SKScene *overlaySKScene; @property (readonly, nonatomic) unsigned long long renderingAPI; @property (readonly, nonatomic) struct CGColorSpace { } *workingColorSpace; @property (readonly, nonatomic) void *context; @property (readonly, nonatomic) id currentRenderCommandEncoder; @property (readonly, nonatomic) MTLRenderPassDescriptor *currentRenderPassDescriptor; @property (readonly, nonatomic) id device; @property (readonly, nonatomic) unsigned long long colorPixelFormat; @property (readonly, nonatomic) unsigned long long depthPixelFormat; @property (readonly, nonatomic) unsigned long long stencilPixelFormat; @property (readonly, nonatomic) id commandQueue; @property (readonly, nonatomic) AVAudioEngine *audioEngine; @property (readonly, nonatomic) AVAudioEnvironmentNode *audioEnvironmentNode; @property (retain, nonatomic) SCNNode *audioListener; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } currentViewport; @property (nonatomic) BOOL usesReverseZ; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (copy, nonatomic) SCNTechnique *technique; + (BOOL)automaticallyNotifiesObserversForKey:(id)a0; + (id)_kvoKeysForwardedToRenderer; + (id)keyPathsForValuesAffectingValueForKey:(id)a0; - (void)setCurrentTime:(double)a0; - (void)stop:(id)a0; - (void)setBackgroundColor:(struct CGColor { } *)a0; - (id)layer; - (void)setPointOfCulling:(id)a0; - (void)play; - (void)pause; - (void)setNeedsDisplay; - (void)SCN_displayLinkCallback:(double)a0; - (void)projectPoints:(struct SCNVector3 { float x0; float x1; float x2; } *)a0 count:(unsigned long long)a1; - (void)commonInit; - (id)init; - (id)displayLink; - (void)dealloc; - (void)_sceneDidUpdate:(id)a0; - (BOOL)_checkAndUpdateDisplayLinkStateIfNeeded; - (void)_drawAtTime:(double)a0; - (void)pauseDisplayLink; - (void)setPreferredFramesPerSecond:(long long)a0; - (struct SCNVector3 { float x0; float x1; float x2; })unprojectPoint:(struct SCNVector3 { float x0; float x1; float x2; })a0; - (void)prepareObjects:(id)a0 withCompletionHandler:(id /* block */)a1; - (id)hitTestWithSegmentFromPoint:(struct SCNVector3 { float x0; float x1; float x2; })a0 toPoint:(struct SCNVector3 { float x0; float x1; float x2; })a1 options:(id)a2; - (void)setRenderer:(id)a0; - (void)play:(id)a0; - (id)renderer; - (void)_jitterRedisplay; - (void)_cancelJitterRedisplay; - (BOOL)isNodeInsideFrustum:(id)a0 withPointOfView:(id)a1; - (void)stop; - (void)set_showsAuthoringEnvironment:(BOOL)a0; - (BOOL)_canJitter; - (id)_authoringEnvironment; - (BOOL)_isGLLayerBacked; - (void)presentScene:(id)a0 withTransition:(id)a1 incomingPointOfView:(id)a2 completionHandler:(id /* block */)a3; - (BOOL)canDrawConcurrently; - (id)contentLayer; - (void)pause:(id)a0; - (void)_systemTimeAnimationStarted:(id)a0; - (id)pointOfCulling; - (void)setRendersIntoMaterial:(BOOL)a0; - (id)hitTest:(struct CGPoint { double x0; double x1; })a0 options:(id)a1; - (struct SCNVector3 { float x0; float x1; float x2; })projectPoint:(struct SCNVector3 { float x0; float x1; float x2; })a0; - (id)nodesInsideFrustumWithPointOfView:(id)a0; - (BOOL)_showsAuthoringEnvironment; - (double)currentTime; - (BOOL)rendersIntoMaterial; - (BOOL)prepareObject:(id)a0 shouldAbortBlock:(id /* block */)a1; - (BOOL)scn_inLiveResize; - (id)initWithLayer:(id)a0; - (BOOL)_supportsJitteringSyncRedraw; - (id)rendererOptions; - (id)scn_backingLayer; - (void)resumeDisplayLink; - (long long)preferredFramesPerSecond; - (struct SCNVector4 { float x0; float x1; float x2; float x3; })_viewport; - (void)display; @end