2013-01-13 21:39:25 -05:00
|
|
|
/*
|
2015-01-01 18:04:46 -05:00
|
|
|
* Copyright 2011-2015 Branimir Karadzic. All rights reserved.
|
2013-01-13 21:39:25 -05:00
|
|
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
|
|
|
*/
|
|
|
|
|
2013-11-14 00:54:36 -05:00
|
|
|
#ifndef BGFX_GLCONTEXT_EGL_H_HEADER_GUARD
|
|
|
|
#define BGFX_GLCONTEXT_EGL_H_HEADER_GUARD
|
2013-01-13 21:39:25 -05:00
|
|
|
|
|
|
|
#if BGFX_USE_EGL
|
|
|
|
|
|
|
|
#include <EGL/egl.h>
|
|
|
|
|
|
|
|
namespace bgfx
|
|
|
|
{
|
2014-09-07 20:17:38 -04:00
|
|
|
struct SwapChainGL;
|
|
|
|
|
2013-01-13 21:39:25 -05:00
|
|
|
struct GlContext
|
|
|
|
{
|
|
|
|
GlContext()
|
2015-02-17 14:50:31 -05:00
|
|
|
: m_current(NULL)
|
|
|
|
, m_context(NULL)
|
2013-01-13 21:39:25 -05:00
|
|
|
, m_display(NULL)
|
|
|
|
, m_surface(NULL)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void create(uint32_t _width, uint32_t _height);
|
|
|
|
void destroy();
|
2013-04-27 18:16:05 -04:00
|
|
|
void resize(uint32_t _width, uint32_t _height, bool _vsync);
|
2014-09-07 20:17:38 -04:00
|
|
|
|
2014-09-23 23:35:39 -04:00
|
|
|
static bool isSwapChainSupported();
|
2014-09-07 20:17:38 -04:00
|
|
|
SwapChainGL* createSwapChain(void* _nwh);
|
2014-11-30 12:06:47 -05:00
|
|
|
void destroySwapChain(SwapChainGL* _swapChain);
|
2014-09-07 20:17:38 -04:00
|
|
|
void swap(SwapChainGL* _swapChain = NULL);
|
|
|
|
void makeCurrent(SwapChainGL* _swapChain = NULL);
|
|
|
|
|
2013-01-13 21:39:25 -05:00
|
|
|
void import();
|
|
|
|
|
|
|
|
bool isValid() const
|
|
|
|
{
|
|
|
|
return NULL != m_context;
|
|
|
|
}
|
|
|
|
|
2014-02-16 19:40:08 -05:00
|
|
|
void* m_eglLibrary;
|
2015-02-17 14:50:31 -05:00
|
|
|
SwapChainGL* m_current;
|
2014-09-24 22:22:15 -04:00
|
|
|
EGLConfig m_config;
|
2013-01-13 21:39:25 -05:00
|
|
|
EGLContext m_context;
|
|
|
|
EGLDisplay m_display;
|
|
|
|
EGLSurface m_surface;
|
|
|
|
};
|
|
|
|
} // namespace bgfx
|
|
|
|
|
|
|
|
#endif // BGFX_USE_EGL
|
|
|
|
|
2013-11-14 00:54:36 -05:00
|
|
|
#endif // BGFX_GLCONTEXT_EGL_H_HEADER_GUARD
|