                 layer.path = UIBezierPath(rect: annotationFrame).cgPath
             }
             
-            GLKView.layer.mask = layer
+            GLKView?.layer.mask = layer
         }
     }
     


    override open func layoutSubviews() {
        super.layoutSubviews()
        GLKView.frame = bounds
    }

    override open func point(inside point: CGPoint, with event: UIEvent?) -> Bool {


    public override init(frame: CGRect) {
        let bounds = CGRect(origin: CGPoint.zero, size: frame.size)
        
        if let EAGLContext = OpenGLES.EAGLContext(api: .openGLES2) {
            self.EAGLContext = EAGLContext
            GLKView = GLKit.GLKView(frame: bounds, context: EAGLContext)
            CIContext = CoreImage.CIContext(eaglContext: EAGLContext, options: [
                kCIContextUseSoftwareRenderer: false
            ])
        } else {
            EAGLContext = nil
            GLKView = nil
            CIContext = nil
        }

        super.init(frame: frame)

        isOpaque = false
        
        GLKView?.isUserInteractionEnabled = false
        GLKView?.delegate = self
        GLKView?.contentMode = .redraw
        
        if let glkView = GLKView {
            addSubview(glkView)
        }
    }

    public required init?(coder: NSCoder) {
