1*f0687c8aSRaman Tenneti #pragma once 2*f0687c8aSRaman Tenneti 3*f0687c8aSRaman Tenneti #include <EGL/egl.h> 4*f0687c8aSRaman Tenneti 5*f0687c8aSRaman Tenneti class EglState 6*f0687c8aSRaman Tenneti { 7*f0687c8aSRaman Tenneti public: 8*f0687c8aSRaman Tenneti EglState(void* native_display); 9*f0687c8aSRaman Tenneti ~EglState(); 10*f0687c8aSRaman Tenneti display()11*f0687c8aSRaman Tenneti EGLDisplay display() const { return m_display; } config()12*f0687c8aSRaman Tenneti EGLConfig config() const { return m_config; } context()13*f0687c8aSRaman Tenneti EGLContext context() const { return m_context; } 14*f0687c8aSRaman Tenneti 15*f0687c8aSRaman Tenneti private: 16*f0687c8aSRaman Tenneti EGLDisplay m_display; 17*f0687c8aSRaman Tenneti EGLConfig m_config; 18*f0687c8aSRaman Tenneti EGLContext m_context; 19*f0687c8aSRaman Tenneti }; 20*f0687c8aSRaman Tenneti 21*f0687c8aSRaman Tenneti class EglSurface 22*f0687c8aSRaman Tenneti { 23*f0687c8aSRaman Tenneti public: 24*f0687c8aSRaman Tenneti EglSurface(const EglState& egl, void* native_window); 25*f0687c8aSRaman Tenneti ~EglSurface(); 26*f0687c8aSRaman Tenneti 27*f0687c8aSRaman Tenneti void make_current(); 28*f0687c8aSRaman Tenneti void swap_buffers(); 29*f0687c8aSRaman Tenneti 30*f0687c8aSRaman Tenneti private: 31*f0687c8aSRaman Tenneti const EglState& egl; 32*f0687c8aSRaman Tenneti 33*f0687c8aSRaman Tenneti EGLSurface esurface; 34*f0687c8aSRaman Tenneti }; 35