public class

Gles2WatchFaceService.Engine

extends WatchFaceService.Engine

Note: The Wearable Support Library classes under the android.support.wearable package are subject to change. For the full Android API reference, see Reference.

java.lang.Object
   ↳ android.service.wallpaper.WallpaperService.Engine
     ↳ android.support.wearable.watchface.WatchFaceService.Engine
       ↳ android.support.wearable.watchface.Gles2WatchFaceService.Engine

Class Overview

The actual implementation of a watch face that draws using OpenGL ES 2.0. You must implement onCreateEngine() to return your concrete Engine implementation.

Summary

Public Constructors
Gles2WatchFaceService.Engine()
Public Methods
EGLConfig chooseEglConfig(EGLDisplay eglDisplay)
Returns the desired EGL config to use.
EGLContext createEglContext(EGLDisplay eglDisplay, EGLConfig eglConfig)
Creates the EGL context and returns it.
EGLSurface createWindowSurface(EGLDisplay eglDisplay, EGLConfig eglConfig, SurfaceHolder surfaceHolder)
Creates and returns a new EGL window surface for surfaceHolder.
EGLDisplay initializeEglDisplay()
Initializes the display.
final void invalidate()
Schedules a call to onDraw() to draw the next frame.
void onApplyWindowInsets(WindowInsets insets)
void onCreate(SurfaceHolder surfaceHolder)
void onDestroy()
void onDraw()
Draws the watch face.
void onGlContextCreated()
Called when a new GL context is created.
void onGlSurfaceCreated(int width, int height)
Called when a new GL surface is created.
final void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)
final void onSurfaceDestroyed(SurfaceHolder holder)
final void onSurfaceRedrawNeeded(SurfaceHolder holder)
final void postInvalidate()
Posts a message to schedule a call to onDraw() to draw the next frame.
[Expand]
Inherited Methods
From class android.support.wearable.watchface.WatchFaceService.Engine
From class android.service.wallpaper.WallpaperService.Engine
From class java.lang.Object

Public Constructors

public Gles2WatchFaceService.Engine ()

Public Methods

public EGLConfig chooseEglConfig (EGLDisplay eglDisplay)

Returns the desired EGL config to use. By default, uses a config that:

  • supports OpenGL ES 2.0 contexts
  • has at least 8 bits for each of red, green, blue, and alpha
If there are multiple matches, the one with the most bits for red, green, blue, and alpha is chosen.

Watch faces can override this method to call eglChooseConfig(EGLDisplay, int[], int, EGLConfig[], int, int, int[], int) with different attributes. By passing in a large array, eglChooseConfig can return multiple matching configs and the watch face can choose among them by using eglGetConfigAttrib(EGLDisplay, EGLConfig, int, int[], int) to fetch their attributes.

Parameters
eglDisplay the EGL display to use
Returns
  • the EGL config to use

public EGLContext createEglContext (EGLDisplay eglDisplay, EGLConfig eglConfig)

Creates the EGL context and returns it. By default, creates an EGL 2.0 context using eglCreateContext(EGLDisplay, EGLConfig, EGLContext, int[], int).

Watch faces can override this method to call eglCreateContext(EGLDisplay, EGLConfig, EGLContext, int[], int) with different attributes.

public EGLSurface createWindowSurface (EGLDisplay eglDisplay, EGLConfig eglConfig, SurfaceHolder surfaceHolder)

Creates and returns a new EGL window surface for surfaceHolder. By default, this surface has no attributes.

Watch faces can override this method to call eglCreateWindowSurface(EGLDisplay, EGLConfig, Object, int[], int) with different attributes.

public EGLDisplay initializeEglDisplay ()

Returns
  • the initialized EGLDisplay to use

public final void invalidate ()

Schedules a call to onDraw() to draw the next frame. Must be called on the main thread.

public void onApplyWindowInsets (WindowInsets insets)

public void onCreate (SurfaceHolder surfaceHolder)

public void onDestroy ()

public void onDraw ()

Draws the watch face. It's safe to use GL APIs in this method.

public void onGlContextCreated ()

Called when a new GL context is created. It's safe to use GL APIs in this method.

public void onGlSurfaceCreated (int width, int height)

Called when a new GL surface is created. It's safe to use GL APIs in this method.

Parameters
width width of surface in pixels
height height of surface in pixels

public final void onSurfaceChanged (SurfaceHolder holder, int format, int width, int height)

public final void onSurfaceDestroyed (SurfaceHolder holder)

public final void onSurfaceRedrawNeeded (SurfaceHolder holder)

public final void postInvalidate ()

Posts a message to schedule a call to onDraw() to draw the next frame. Unlike invalidate(), this method is thread-safe and may be called on any thread.