Merge "Added some comments"

This commit is contained in:
Andy McFadden 2012-12-17 14:19:46 -08:00 committed by Android (Google) Code Review
commit f7baee731e
4 changed files with 53 additions and 0 deletions

View File

@ -34,6 +34,22 @@ namespace android {
class SurfaceTextureClient; class SurfaceTextureClient;
/*
* This class defines an interface that is implemented by classes that
* produce buffers of graphics data. For example, a class that decodes
* video for playback might use this to provide frames. This is
* typically done indirectly, through SurfaceTextureClient.
*
* The underlying mechanism is a BufferQueue. In normal operation, the
* producer calls dequeueBuffer() to get an empty buffer, fills it with
* data, then calls queueBuffer() to make it available to the consumer.
*
* The BnSurfaceTexture and BpSurfaceTexture classes provide the Binder
* IPC implementation.
*
* TODO: rename to IGraphicBufferProducer (IBufferProducer?
* IBufferQueueProducer?)
*/
class ISurfaceTexture : public IInterface class ISurfaceTexture : public IInterface
{ {
public: public:

View File

@ -106,6 +106,13 @@ private:
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/*
* This is a small wrapper around SurfaceTextureClient that provides some
* helper classes for Binder interaction.
*
* TODO: rename to SurfaceJniHelper. May want to move SurfaceInfo and
* the associated lock() / unlockAndPost() calls to STC.
*/
class Surface : public SurfaceTextureClient class Surface : public SurfaceTextureClient
{ {
public: public:

View File

@ -42,6 +42,21 @@ namespace android {
class String8; class String8;
/*
* SurfaceTexture consumes buffers of graphics data from a BufferQueue,
* and makes them available to OpenGL as a texture.
*
* A typical usage pattern is to set up the SurfaceTexture with the
* desired options, and call updateTexImage() when a new frame is desired.
* If a new frame is available, the texture will be updated. If not,
* the previous contents are retained.
*
* By default, the texture is attached to the GL_TEXTURE_EXTERNAL_OES
* texture target, in the EGL context of the first thread that calls
* updateTexImage().
*
* TODO: rename to GLConsumer (OpenGLConsumer?)
*/
class SurfaceTexture : public ConsumerBase { class SurfaceTexture : public ConsumerBase {
public: public:
typedef ConsumerBase::FrameAvailableListener FrameAvailableListener; typedef ConsumerBase::FrameAvailableListener FrameAvailableListener;

View File

@ -34,6 +34,21 @@ namespace android {
class Surface; class Surface;
/*
* An implementation of ANativeWindow that also behaves as the producer
* side of a BufferQueue.
*
* This is typically used by programs that want to render frames through
* some means (maybe OpenGL, a software renderer, or a hardware decoder)
* and have the frames they create forwarded to SurfaceFlinger for
* compositing. For example, a video decoder could render a frame and call
* eglSwapBuffers(), which invokes ANativeWindow callbacks defined by
* SurfaceTextureClient. STC then acts as the BufferQueue producer,
* providing the new frame to a consumer such as SurfaceTexture.
*
* TODO: rename to Surface. The existing Surface class wraps STC with
* some Binder goodies, which most users of Surface class don't care about.
*/
class SurfaceTextureClient class SurfaceTextureClient
: public ANativeObjectBase<ANativeWindow, SurfaceTextureClient, RefBase> : public ANativeObjectBase<ANativeWindow, SurfaceTextureClient, RefBase>
{ {