Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
FlutterExternalTexture.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTEREXTERNALTEXTURE_H_
6#define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTEREXTERNALTEXTURE_H_
7
8#import <Foundation/Foundation.h>
9
10#import "flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalSkia.h"
11#include "flutter/shell/platform/embedder/embedder.h"
12
13/**
14 * Embedding side texture wrappers for Metal external textures.
15 * Used to bridge FlutterTexture object and handle the texture copy request the
16 * Flutter engine.
17 */
18@interface FlutterExternalTexture : NSObject
19
20/**
21 * Initializes a texture adapter with |texture|.
22 */
23- (nonnull instancetype)initWithFlutterTexture:(nonnull id<FlutterTexture>)texture
24 darwinMetalContext:(nonnull FlutterDarwinContextMetalSkia*)context;
25
26/**
27 * Returns the ID for the FlutterExternalTexture instance.
28 */
29- (int64_t)textureID;
30
31/**
32 * Accepts texture buffer copy request from the Flutter engine.
33 * When the user side marks the textureID as available, the Flutter engine will
34 * callback to this method and ask for populate the |metalTexture| object,
35 * such as the texture type and the format of the pixel buffer and the texture object.
36 */
37- (BOOL)populateTexture:(nonnull FlutterMetalExternalTexture*)metalTexture;
38
39@end
40
41#endif // FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTEREXTERNALTEXTURE_H_
int BOOL