1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_GL_GL_IMAGE_ANDROID_NATIVE_BUFFER_H_ 6 #define UI_GL_GL_IMAGE_ANDROID_NATIVE_BUFFER_H_ 7 8 #include "ui/gl/gl_image_egl.h" 9 10 namespace gfx { 11 12 class GL_EXPORT GLImageAndroidNativeBuffer : public GLImageEGL { 13 public: 14 explicit GLImageAndroidNativeBuffer(gfx::Size size); 15 16 bool Initialize(gfx::GpuMemoryBufferHandle buffer); 17 18 // Overridden from GLImage: 19 virtual void Destroy() OVERRIDE; 20 virtual bool BindTexImage(unsigned target) OVERRIDE; 21 virtual void WillUseTexImage() OVERRIDE; 22 virtual void DidUseTexImage() OVERRIDE; 23 virtual void SetReleaseAfterUse() OVERRIDE; 24 25 protected: 26 virtual ~GLImageAndroidNativeBuffer(); 27 28 private: 29 bool release_after_use_; 30 bool in_use_; 31 unsigned target_; 32 EGLImageKHR egl_image_for_unbind_; 33 GLuint texture_id_for_unbind_; 34 35 DISALLOW_COPY_AND_ASSIGN(GLImageAndroidNativeBuffer); 36 }; 37 38 } // namespace gfx 39 40 #endif // UI_GL_GL_IMAGE_ANDROID_NATIVE_BUFFER_H_ 41