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 12 class EGLInterface : public GLInterface { 13 public: 14 EGLInterface()15 EGLInterface() : display_(EGL_NO_DISPLAY), 16 config_(NULL), 17 surface_(NULL), 18 context_(NULL) { } ~EGLInterface()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); GetMainContext()33 virtual const GLContext& GetMainContext() { 34 return context_; 35 } 36 37 void TerminateGL(); 38 display()39 const EGLDisplay display() const { 40 return display_; 41 } 42 surface()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