Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Package Functions | List of all members
io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry Class Reference
Inheritance diagram for io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry:

Public Member Functions

void onTrimMemory (int level)
 
SurfaceTextureWrapper textureWrapper ()
 
SurfaceTexture surfaceTexture ()
 
long id ()
 
void release ()
 
void setOnFrameConsumedListener (@Nullable OnFrameConsumedListener listener)
 
void setOnTrimMemoryListener (@Nullable OnTrimMemoryListener listener)
 

Protected Member Functions

void finalize () throws Throwable
 

Package Functions

 SurfaceTextureRegistryEntry (long id, @NonNull SurfaceTexture surfaceTexture)
 

Detailed Description

Definition at line 282 of file FlutterRenderer.java.

Constructor & Destructor Documentation

◆ SurfaceTextureRegistryEntry()

io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.SurfaceTextureRegistryEntry ( long  id,
@NonNull SurfaceTexture  surfaceTexture 
)
inlinepackage

Definition at line 290 of file FlutterRenderer.java.

290 {
291 this.id = id;
292 Runnable onFrameConsumed =
293 () -> {
294 if (frameConsumedListener != null) {
295 frameConsumedListener.onFrameConsumed();
296 }
297 };
298 this.textureWrapper = new SurfaceTextureWrapper(surfaceTexture, onFrameConsumed);
299
300 // Even though we make sure to unregister the callback before releasing, as of
301 // Android O, SurfaceTexture has a data race when accessing the callback, so the
302 // callback may still be called by a stale reference after released==true and
303 // mNativeView==null.
304 SurfaceTexture.OnFrameAvailableListener onFrameListener =
305 texture -> {
306 if (released || !flutterJNI.isAttached()) {
307 // Even though we make sure to unregister the callback before releasing, as of
308 // Android O, SurfaceTexture has a data race when accessing the callback, so the
309 // callback may still be called by a stale reference after released==true and
310 // mNativeView==null.
311 return;
312 }
313 textureWrapper.markDirty();
314 scheduleEngineFrame();
315 };
316 // The callback relies on being executed on the UI thread (unsynchronised read of
317 // mNativeView and also the engine code check for platform thread in
318 // Shell::OnPlatformViewMarkTextureFrameAvailable), so we explicitly pass a Handler for the
319 // current thread.
320 this.surfaceTexture().setOnFrameAvailableListener(onFrameListener, new Handler());
321 }
FlTexture * texture

Member Function Documentation

◆ finalize()

void io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.finalize ( ) throws Throwable
inlineprotected

Definition at line 363 of file FlutterRenderer.java.

363 {
364 try {
365 if (released) {
366 return;
367 }
368
369 handler.post(new TextureFinalizerRunnable(id, flutterJNI));
370 } finally {
371 super.finalize();
372 }
373 }

◆ id()

long io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.id ( )
inline

Definition at line 346 of file FlutterRenderer.java.

346 {
347 return id;
348 }

◆ onTrimMemory()

void io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.onTrimMemory ( int  level)
inline

Definition at line 324 of file FlutterRenderer.java.

324 {
325 if (trimMemoryListener != null) {
326 trimMemoryListener.onTrimMemory(level);
327 }
328 }

◆ release()

void io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.release ( )
inline

Definition at line 351 of file FlutterRenderer.java.

351 {
352 if (released) {
353 return;
354 }
355 Log.v(TAG, "Releasing a SurfaceTexture (" + id + ").");
356 textureWrapper.release();
357 unregisterTexture(id);
358 removeListener();
359 released = true;
360 }
void Log(const char *format,...) SK_PRINTF_LIKE(1

◆ setOnFrameConsumedListener()

void io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.setOnFrameConsumedListener ( @Nullable OnFrameConsumedListener  listener)
inline

Definition at line 376 of file FlutterRenderer.java.

376 {
377 frameConsumedListener = listener;
378 }

◆ setOnTrimMemoryListener()

void io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.setOnTrimMemoryListener ( @Nullable OnTrimMemoryListener  listener)
inline

Definition at line 381 of file FlutterRenderer.java.

381 {
382 trimMemoryListener = listener;
383 }

◆ surfaceTexture()

SurfaceTexture io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.surfaceTexture ( )
inline

Definition at line 341 of file FlutterRenderer.java.

341 {
342 return textureWrapper.surfaceTexture();
343 }

◆ textureWrapper()

SurfaceTextureWrapper io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.textureWrapper ( )
inline

Definition at line 335 of file FlutterRenderer.java.

335 {
336 return textureWrapper;
337 }

The documentation for this class was generated from the following file: