Index: ui/gl/android/surface_texture.h |
diff --git a/ui/gl/android/surface_texture.h b/ui/gl/android/surface_texture.h |
index 62e375f796f45959e1ca0de2e37b7144c5e66ba3..4068f852b94b1d95dca791308cf083e0e199a5a8 100644 |
--- a/ui/gl/android/surface_texture.h |
+++ b/ui/gl/android/surface_texture.h |
@@ -21,7 +21,9 @@ namespace gfx { |
class GL_EXPORT SurfaceTexture |
: public base::RefCountedThreadSafe<SurfaceTexture>{ |
public: |
- explicit SurfaceTexture(int texture_id); |
+ static SurfaceTexture* Create(int texture_id); |
reveman
2014/03/10 16:16:58
this should return a scoped_refptr<SurfaceTexture>
|
+ |
+ static SurfaceTexture* CreateSingleBufferMode(int texture_id); |
reveman
2014/03/10 16:16:58
I think "CreateSingleBuffered" is better
|
// Set the listener callback, which will be invoked on the same thread that |
// is being called from here for registration. |
@@ -33,6 +35,11 @@ class GL_EXPORT SurfaceTexture |
// Update the texture image to the most recent frame from the image stream. |
void UpdateTexImage(); |
+ // Release the texture content. This is needed, and supported only in single |
+ // buffered mode to allow the image content producer to take ownership |
+ // of the image buffer. |
+ void ReleaseTexImage(); |
+ |
// Retrieve the 4x4 texture coordinate transform matrix associated with the |
// texture image set by the most recent call to updateTexImage. |
void GetTransformMatrix(float mtx[16]); |
@@ -57,8 +64,14 @@ class GL_EXPORT SurfaceTexture |
return j_surface_texture_; |
} |
+ // static |
reveman
2014/03/10 16:16:58
nit: no need for "// static" comment
|
+ static bool IsSingleBufferModeSupported(); |
+ |
static bool RegisterSurfaceTexture(JNIEnv* env); |
+ protected: |
+ SurfaceTexture(int texture_id, bool single_buffer_mode); |
reveman
2014/03/10 16:16:58
How about we make this private and take a jobject:
|
+ |
private: |
friend class base::RefCountedThreadSafe<SurfaceTexture>; |
~SurfaceTexture(); |