Merge "Added some comments"
This commit is contained in:
commit
f7baee731e
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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;
|
||||||
|
@ -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>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user