1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef UI_GL_GL_IMAGE_EGL_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define UI_GL_GL_IMAGE_EGL_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ui/gl/gl_bindings.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/gl/gl_image.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace gfx { 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class GL_EXPORT GLImageEGL : public GLImage { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) explicit GLImageEGL(const gfx::Size& size); 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool Initialize(EGLenum target, EGLClientBuffer buffer, const EGLint* attrs); 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Overridden from GLImage: 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void Destroy(bool have_context) OVERRIDE; 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual gfx::Size GetSize() OVERRIDE; 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual bool BindTexImage(unsigned target) OVERRIDE; 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void ReleaseTexImage(unsigned target) OVERRIDE {} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool CopyTexImage(unsigned target) OVERRIDE; 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void WillUseTexImage() OVERRIDE {} 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void DidUseTexImage() OVERRIDE {} 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void WillModifyTexImage() OVERRIDE {} 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void DidModifyTexImage() OVERRIDE {} 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual bool ScheduleOverlayPlane(gfx::AcceleratedWidget widget, 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) int z_order, 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) OverlayTransform transform, 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const Rect& bounds_rect, 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const RectF& crop_rect) OVERRIDE; 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) protected: 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~GLImageEGL(); 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EGLImageKHR egl_image_; 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const gfx::Size size_; 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch private: 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(GLImageEGL); 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace gfx 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // UI_GL_GL_IMAGE_EGL_H_ 48