From 37cec0fc50760fe89614863eded14011f9412534 Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Thu, 27 Jan 2011 17:57:13 -0800 Subject: [PATCH] Add docs about threading to SurfaceTexture. This is a docs-only change. Bug: 3362397 Change-Id: I5fad19a8ae112af73b1e235cf3d54bd2179d165a --- graphics/java/android/graphics/SurfaceTexture.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java index 64c209a388011..4c659d4dc98c7 100644 --- a/graphics/java/android/graphics/SurfaceTexture.java +++ b/graphics/java/android/graphics/SurfaceTexture.java @@ -24,9 +24,9 @@ import android.os.Message; /** * Captures frames from an image stream as an OpenGL ES texture. * - *

The image stream may come from either video playback or camera preview. A SurfaceTexture may - * be used in place of a SurfaceHolder when specifying the output destination of a MediaPlayer or - * Camera object. This will cause all the frames from that image stream to be sent to the + *

The image stream may come from either camera preview. A SurfaceTexture may be used in place + * of a SurfaceHolder when specifying the output destination of a {@link android.hardware.Camera} + * object. Doing so will cause all the frames from the image stream to be sent to the * SurfaceTexture object rather than to the device's display. When {@link #updateTexImage} is * called, the contents of the texture object specified when the SurfaceTexture was created is * updated to contain the most recent image from the image stream. This may cause some frames of @@ -34,6 +34,11 @@ import android.os.Message; * *

The texture object uses the GL_TEXTURE_EXTERNAL_OES texture target, which is defined by the * OES_EGL_image_external OpenGL ES extension. This limits how the texture may be used. + * + *

SurfaceTexture objects may be created on any thread. {@link #updateTexImage} may only be + * called on the thread with the OpenGL ES context that contains the texture object. The + * frame-available callback is called on an arbitrary thread, so unless special care is taken {@link + * #updateTexImage} should not be called directly from the callback. */ public class SurfaceTexture {