Home | History | Annotate | Download | only in gl
      1 // Copyright 2013 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_IO_SURFACE_H_
      6 #define UI_GL_GL_IMAGE_IO_SURFACE_H_
      7 
      8 #include "base/mac/scoped_cftyperef.h"
      9 #include "ui/gl/gl_image.h"
     10 
     11 class IOSurfaceSupport;
     12 
     13 namespace gfx {
     14 
     15 class GL_EXPORT GLImageIOSurface : public GLImage {
     16  public:
     17   explicit GLImageIOSurface(gfx::Size size);
     18 
     19   bool Initialize(gfx::GpuMemoryBufferHandle buffer);
     20 
     21   // Implement GLImage.
     22   virtual void Destroy() OVERRIDE;
     23   virtual gfx::Size GetSize() OVERRIDE;
     24   virtual bool BindTexImage(unsigned target) OVERRIDE;
     25   virtual void ReleaseTexImage(unsigned target) OVERRIDE;
     26   virtual void WillUseTexImage() OVERRIDE;
     27   virtual void DidUseTexImage() OVERRIDE;
     28 
     29  protected:
     30   virtual ~GLImageIOSurface();
     31 
     32  private:
     33   IOSurfaceSupport* io_surface_support_;
     34   base::ScopedCFTypeRef<CFTypeRef> io_surface_;
     35   gfx::Size size_;
     36 
     37   DISALLOW_COPY_AND_ASSIGN(GLImageIOSurface);
     38 };
     39 
     40 }  // namespace gfx
     41 
     42 #endif  // UI_GL_GL_IMAGE_IO_SURFACE_H_
     43