Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
org.skia.jetski.util.SurfaceRenderer Class Referenceabstract
Inheritance diagram for org.skia.jetski.util.SurfaceRenderer:
org.skia.jetski.util.SkottieRenderer

Public Member Functions

void run ()
 
void surfaceCreated (SurfaceHolder holder)
 
void surfaceChanged (SurfaceHolder holder, int format, int width, int height)
 
void surfaceDestroyed (SurfaceHolder holder)
 
void setBaseTime (long millis)
 
void release ()
 

Protected Member Functions

abstract void onSurfaceInitialized (Surface surface)
 
abstract void onRenderFrame (Canvas canvas, long ms)
 

Detailed Description

Utility base class facilitating the implementation of Surface-bound animations.

Provides a dedicated render thread and user content callbacks.

Definition at line 20 of file SurfaceRenderer.java.

Member Function Documentation

◆ onRenderFrame()

abstract void org.skia.jetski.util.SurfaceRenderer.onRenderFrame ( Canvas  canvas,
long  ms 
)
abstractprotected

Callback for frame content.

Invoked once per (vsync'ed) frame.

Reimplemented in org.skia.jetski.util.SkottieRenderer.

◆ onSurfaceInitialized()

abstract void org.skia.jetski.util.SurfaceRenderer.onSurfaceInitialized ( Surface  surface)
abstractprotected

Initialization callback.

This can be invoked multiple times if the underlying surface changes.

Reimplemented in org.skia.jetski.util.SkottieRenderer.

◆ release()

void org.skia.jetski.util.SurfaceRenderer.release ( )
inline

Reimplemented in org.skia.jetski.util.SkottieRenderer.

Definition at line 101 of file SurfaceRenderer.java.

101 {
102 stopRenderThread();
103 }

◆ run()

void org.skia.jetski.util.SurfaceRenderer.run ( )
inline

Definition at line 41 of file SurfaceRenderer.java.

41 {
42 Log.d("SurfaceRenderer", "Render thread started.");
43
44 // TODO: Vulkan support?
45 Surface surface = Surface.CreateGL(mAndroidSurface);
47
48 mTimeBase = java.lang.System.currentTimeMillis();
49
50 while (mThreadRunning) {
51 long timestamp = java.lang.System.currentTimeMillis() - mTimeBase;
52 onRenderFrame(surface.getCanvas(), timestamp);
53 surface.flushAndSubmit();
54 }
55
56 // Ensure that the backing surface is released on the same thread.
57 surface.release();
58
59 Log.d("SurfaceRenderer", "Render thread finished.");
60 }
abstract void onSurfaceInitialized(Surface surface)
abstract void onRenderFrame(Canvas canvas, long ms)
VkSurfaceKHR surface
Definition main.cc:49
void Log(const char *format,...) SK_PRINTF_LIKE(1

◆ setBaseTime()

void org.skia.jetski.util.SurfaceRenderer.setBaseTime ( long  millis)
inline

Definition at line 97 of file SurfaceRenderer.java.

97 {
98 mTimeBase = millis;
99 }

◆ surfaceChanged()

void org.skia.jetski.util.SurfaceRenderer.surfaceChanged ( SurfaceHolder  holder,
int  format,
int  width,
int  height 
)
inline

Definition at line 68 of file SurfaceRenderer.java.

68 {
69 mAndroidSurface = holder.getSurface();
70
71 stopRenderThread();
72 startRenderThread();
73 }

◆ surfaceCreated()

void org.skia.jetski.util.SurfaceRenderer.surfaceCreated ( SurfaceHolder  holder)
inline

Definition at line 63 of file SurfaceRenderer.java.

63 {
64 // Initialization handled in surfaceChanged().
65 }

◆ surfaceDestroyed()

void org.skia.jetski.util.SurfaceRenderer.surfaceDestroyed ( SurfaceHolder  holder)
inline

Definition at line 76 of file SurfaceRenderer.java.

76 {
77 stopRenderThread();
78 }

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