Home | History | Annotate | Download | only in gl
      1 // Copyright (c) 2012 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_GLX_H_
      6 #define UI_GL_GL_IMAGE_GLX_H_
      7 
      8 #include "ui/gfx/size.h"
      9 #include "ui/gfx/x/x11_types.h"
     10 #include "ui/gl/gl_export.h"
     11 #include "ui/gl/gl_image.h"
     12 
     13 namespace gfx {
     14 
     15 class GL_EXPORT GLImageGLX : public GLImage {
     16  public:
     17   GLImageGLX(const gfx::Size& size, unsigned internalformat);
     18 
     19   bool Initialize(XID pixmap);
     20 
     21   // Overridden from GLImage:
     22   virtual void Destroy(bool have_context) OVERRIDE;
     23   virtual gfx::Size GetSize() OVERRIDE;
     24   virtual bool BindTexImage(unsigned target) OVERRIDE;
     25   virtual void ReleaseTexImage(unsigned target) OVERRIDE;
     26   virtual bool CopyTexImage(unsigned target) OVERRIDE;
     27   virtual void WillUseTexImage() OVERRIDE {}
     28   virtual void DidUseTexImage() OVERRIDE {}
     29   virtual void WillModifyTexImage() OVERRIDE {}
     30   virtual void DidModifyTexImage() OVERRIDE {}
     31   virtual bool ScheduleOverlayPlane(gfx::AcceleratedWidget widget,
     32                                     int z_order,
     33                                     OverlayTransform transform,
     34                                     const Rect& bounds_rect,
     35                                     const RectF& crop_rect) OVERRIDE;
     36 
     37  protected:
     38   virtual ~GLImageGLX();
     39 
     40  private:
     41   XID glx_pixmap_;
     42   const gfx::Size size_;
     43   unsigned internalformat_;
     44 
     45   DISALLOW_COPY_AND_ASSIGN(GLImageGLX);
     46 };
     47 
     48 }  // namespace gfx
     49 
     50 #endif  // UI_GL_GL_IMAGE_GLX_H_
     51