1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef UI_GL_GL_FENCE_EGL_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define UI_GL_GL_FENCE_EGL_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gl/gl_bindings.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gl/gl_context.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/gl/gl_fence.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace gfx { 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass GL_EXPORT GLFenceEGL : public GLFence { 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GLFenceEGL(bool flush); 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~GLFenceEGL(); 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // GLFence implementation: 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool HasCompleted() OVERRIDE; 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void ClientWait() OVERRIDE; 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void ServerWait() OVERRIDE; 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch EGLSyncKHR sync_; 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch EGLDisplay display_; 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_refptr<GLContext::FlushEvent> flush_event_; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(GLFenceEGL); 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace gfx 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // UI_GL_GL_FENCE_EGL_H_ 36