     public convenience init(view: ARSCNView) {
         self.init()
         
+        self._arView = view
+        self._presentationFrame = view.bounds
+
         #if !( targetEnvironment(simulator) )
         self._device = view.device
         self._renderer = SCNRenderer(device: view.device, options: nil)
         self._renderer?.scene = view.scene
         #endif
         
-        self._arView = view
-        self._presentationFrame = view.bounds
     }
     #endif
     

    }
    
    internal func setupPixelBufferPoolIfNecessary(_ pixelBuffer: CVPixelBuffer, orientation: CGImagePropertyOrientation) {
        let formatType = CVPixelBufferGetPixelFormatType(pixelBuffer)
        let width = CVPixelBufferGetWidth(pixelBuffer)
        let height = CVPixelBufferGetHeight(pixelBuffer)
        
        guard self._pixelBufferPool == nil else {
            return
        }
        
        // check dimension/orientation/format changed
        if width == self._bufferWidth && height == self._bufferHeight && formatType == self._bufferFormatType {

            return
        }
        
        let options : [CIContextOption : Any] = [.outputColorSpace : CGColorSpaceCreateDeviceRGB(),
                                                 .outputPremultiplied : true,
                                                 .useSoftwareRenderer : NSNumber(booleanLiteral: false)]
