Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(476)

Unified Diff: ui/gl/android/surface_texture.h

Issue 191933002: This is initial API support required for enabling SurfaceTexture backed zero-copy for Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: build issues Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..05bc5a36b439e647458d34c0cbe2fabab27afc47 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 scoped_refptr<SurfaceTexture> Create(int texture_id);
+
+ static scoped_refptr<SurfaceTexture> CreateSingleBuffered(int texture_id);
// Set the listener callback, which will be invoked on the same thread that
// is being called from here for registration.
@@ -33,6 +35,13 @@ 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 only in single buffered mode
+ // to allow the image content producer to take ownership
+ // of the image buffer.
+ // This is *only* supported on SurfaceTexture instantiated via
+ // |CreateSingleBuffered(...)|.
+ 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 +66,16 @@ class GL_EXPORT SurfaceTexture
return j_surface_texture_;
}
+ // This should only be used to guard the SurfaceTexture instantiated via
+ // |CreateSingleBuffered(...)|
+ static bool IsSingleBufferModeSupported();
+
static bool RegisterSurfaceTexture(JNIEnv* env);
+ protected:
+ explicit SurfaceTexture(
+ const base::android::ScopedJavaLocalRef<jobject>& j_surface_texture);
+
private:
friend class base::RefCountedThreadSafe<SurfaceTexture>;
~SurfaceTexture();
« no previous file with comments | « ui/android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java ('k') | ui/gl/android/surface_texture.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698