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 13namespace gfx { 14 15class 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