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_SURFACE_TEXTURE_H_ 6 #define UI_GL_GL_IMAGE_SURFACE_TEXTURE_H_ 7 8 #include "base/memory/ref_counted.h" 9 #include "ui/gl/gl_bindings.h" 10 #include "ui/gl/gl_image.h" 11 12 namespace gfx { 13 14 class SurfaceTexture; 15 16 class GL_EXPORT GLImageSurfaceTexture : public GLImage { 17 public: 18 explicit GLImageSurfaceTexture(gfx::Size size); 19 20 bool Initialize(gfx::GpuMemoryBufferHandle buffer); 21 22 // Overridden from GLImage: 23 virtual void Destroy() OVERRIDE; 24 virtual gfx::Size GetSize() OVERRIDE; 25 virtual bool BindTexImage(unsigned target) OVERRIDE; ReleaseTexImage(unsigned target)26 virtual void ReleaseTexImage(unsigned target) OVERRIDE {} WillUseTexImage()27 virtual void WillUseTexImage() OVERRIDE {} DidUseTexImage()28 virtual void DidUseTexImage() OVERRIDE {} WillModifyTexImage()29 virtual void WillModifyTexImage() OVERRIDE {} DidModifyTexImage()30 virtual void DidModifyTexImage() OVERRIDE {} 31 32 protected: 33 virtual ~GLImageSurfaceTexture(); 34 35 private: 36 scoped_refptr<SurfaceTexture> surface_texture_; 37 gfx::Size size_; 38 GLint texture_id_; 39 40 DISALLOW_COPY_AND_ASSIGN(GLImageSurfaceTexture); 41 }; 42 43 } // namespace gfx 44 45 #endif // UI_GL_GL_IMAGE_SURFACE_TEXTURE_H_ 46