123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef CONTEXT_EGL_H
- #define CONTEXT_EGL_H
- #include <wrl.h>
- #include "EGL/egl.h"
- #include "core/error_list.h"
- #include "core/os/os.h"
- #include "drivers/gl_context/context_gl.h"
- using namespace Windows::UI::Core;
- class ContextEGL : public ContextGL {
- public:
- enum Driver {
- GLES_2_0,
- GLES_3_0,
- };
- private:
- CoreWindow ^ window;
- EGLDisplay mEglDisplay;
- EGLContext mEglContext;
- EGLSurface mEglSurface;
- EGLint width;
- EGLint height;
- bool vsync;
- Driver driver;
- public:
- virtual void release_current();
- virtual void make_current();
- virtual int get_window_width();
- virtual int get_window_height();
- virtual void swap_buffers();
- virtual void set_use_vsync(bool use) { vsync = use; }
- virtual bool is_using_vsync() const { return vsync; }
- virtual Error initialize();
- void reset();
- void cleanup();
- ContextEGL(CoreWindow ^ p_window, Driver p_driver);
- virtual ~ContextEGL();
- };
- #endif
|