xref: /aosp_15_r20/external/libkmsxx/kmscube/cube-egl.h (revision f0687c8a10b3e371dbe09214db6664e37c283cca)
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