summaryrefslogtreecommitdiffstats
path: root/ui/gl/gl_surface_android.h
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-12 21:17:27 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-12 21:17:27 +0000
commitc9e2cbbbcad5f0ae5b9c5ccaf6a36a8a4a61e0e7 (patch)
treee33d97dc2edae8702ddb6a17ba0d89a506412693 /ui/gl/gl_surface_android.h
parentfc25fd35147b2d5e74d5450e8586592c6a10813d (diff)
downloadchromium_src-c9e2cbbbcad5f0ae5b9c5ccaf6a36a8a4a61e0e7.zip
chromium_src-c9e2cbbbcad5f0ae5b9c5ccaf6a36a8a4a61e0e7.tar.gz
chromium_src-c9e2cbbbcad5f0ae5b9c5ccaf6a36a8a4a61e0e7.tar.bz2
ui: Move gl/ directory out of gfx/, up to ui/.
BUG=104040 R=ben@chromium.org TBR=tony@chromium.org Review URL: https://chromiumcodereview.appspot.com/10392068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136777 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gl/gl_surface_android.h')
-rw-r--r--ui/gl/gl_surface_android.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/ui/gl/gl_surface_android.h b/ui/gl/gl_surface_android.h
new file mode 100644
index 0000000..904274e
--- /dev/null
+++ b/ui/gl/gl_surface_android.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_GL_GL_SURFACE_ANDROID_H_
+#define UI_GL_GL_SURFACE_ANDROID_H_
+#pragma once
+
+#include "base/memory/ref_counted.h"
+#include "ui/gl/gl_surface_egl.h"
+
+namespace gfx {
+
+// A view surface. This can be created in the GPU process (default case), or
+// browser process (in-process-gpu), or render process (in-process-webgl). When
+// it is initialized, it always uses a pbuffer EGL surface until the native view
+// is set. The native view is in charge of sharing the GL texture with UI thread
+// in the browser process through SurfaceTexture.
+class AndroidViewSurface : public NativeViewGLSurfaceEGL {
+ public:
+ AndroidViewSurface();
+ virtual ~AndroidViewSurface();
+
+ // Implement GLSurface.
+ virtual bool Initialize() OVERRIDE;
+ virtual void Destroy() OVERRIDE;
+ virtual bool Resize(const gfx::Size& size) OVERRIDE;
+ virtual bool IsOffscreen() OVERRIDE;
+ virtual bool SwapBuffers() OVERRIDE;
+ virtual gfx::Size GetSize() OVERRIDE;
+ virtual EGLSurface GetHandle() OVERRIDE;
+ virtual void SetNativeWindow(AndroidNativeWindow* window) OVERRIDE;
+
+ private:
+ bool CreateWindowSurface(AndroidNativeWindow* window);
+
+ scoped_refptr<PbufferGLSurfaceEGL> pbuffer_surface_;
+ AndroidNativeWindow* window_;
+
+ DISALLOW_COPY_AND_ASSIGN(AndroidViewSurface);
+};
+
+} // namespace gfx
+
+#endif // UI_GL_GL_SURFACE_ANDROID_H_