// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #import /** * Listener for view resizing. */ @protocol FlutterViewReshapeListener /** * Called when the view's backing store changes size. */ - (void)viewDidReshape:(nonnull NSView*)view; @end /** * View capable of acting as a rendering target and input source for the Flutter * engine. */ @interface FlutterView : NSView /** * The OpenGL context of backing surface. */ @property(readwrite, nonatomic, nonnull) NSOpenGLContext* openGLContext; - (nullable instancetype)initWithFrame:(NSRect)frame shareContext:(nonnull NSOpenGLContext*)shareContext reshapeListener:(nonnull id)reshapeListener NS_DESIGNATED_INITIALIZER; - (nullable instancetype)initWithShareContext:(nonnull NSOpenGLContext*)shareContext reshapeListener: (nonnull id)reshapeListener; - (nullable instancetype)initWithFrame:(NSRect)frameRect pixelFormat:(nullable NSOpenGLPixelFormat*)format NS_UNAVAILABLE; - (nonnull instancetype)initWithFrame:(NSRect)frameRect NS_UNAVAILABLE; - (nullable instancetype)initWithCoder:(nonnull NSCoder*)coder NS_UNAVAILABLE; - (nonnull instancetype)init NS_UNAVAILABLE; /** * Flushes the OpenGL context and flips the surfaces. Expected to be called on raster thread. */ - (void)present; /** * Ensures that framebuffer with requested size exists and returns the ID. Expected to be called on * raster thread. */ - (int)frameBufferIDForSize:(CGSize)size; @end