1// Copyright (c) 2010 The Chromium OS 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 BENCH_GL_EGL_STUFF_H_ 6#define BENCH_GL_EGL_STUFF_H_ 7 8#include "base/logging.h" 9#include "glinterface.h" 10#include <EGL/egl.h> 11 12class EGLInterface : public GLInterface { 13 public: 14 15 EGLInterface() : display_(EGL_NO_DISPLAY), 16 config_(NULL), 17 surface_(NULL), 18 context_(NULL) { } 19 virtual ~EGLInterface() {} 20 21 virtual bool Init(); 22 virtual void Cleanup(); 23 virtual XVisualInfo* GetXVisual(); 24 25 virtual void SwapBuffers(); 26 virtual bool SwapInterval(int interval); 27 28 virtual void CheckError(); 29 30 virtual bool MakeCurrent(const GLContext& context); 31 virtual const GLContext CreateContext(); 32 virtual void DeleteContext(const GLContext& context); 33 virtual const GLContext& GetMainContext() { 34 return context_; 35 } 36 37 void TerminateGL(); 38 39 const EGLDisplay display() const { 40 return display_; 41 } 42 43 const EGLSurface surface() const { 44 return surface_; 45 } 46 47 private: 48 EGLDisplay display_; 49 EGLConfig config_; 50 EGLSurface surface_; 51 EGLContext context_; 52}; 53 54#endif // BENCH_GL_EGL_STUFF_H_ 55