Home | History | Annotate | Download | only in gl
      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