#ifndef __GL_RENDER_H__ #define __GL_RENDER_H__ #define EGL_EGLEXT_PROTOTYPES #define GL_GLEXT_PROTOTYPES #include "EGL/egl.h" #include "EGL/eglext.h" #include "GL/gl.h" enum px_buffer { PX_FRONT = 0, PX_BACK = 1 }; struct render { int fd; EGLDisplay dpy; EGLContext context; EGLint dx, dy; EGLint width, height; EGLint scr_width, scr_height; GLuint framebuffer; EGLImageKHR screen, front, back; GLuint tx_buffers[2]; GLuint tx_screen; GLuint tx_mask; GLuint mask_handle; GLuint mask_name; void *mask_buffer; EGLImageKHR mask_image; int back_buffer; GLuint blit_prog; GLint sampler, sm_mask; float vertices[8],tc_src[8],tc_mask[8]; }; struct render* create_render(EGLDisplay dpy, EGLSurface surface, int dx, int dy); void render_blit(struct render *render, enum px_buffer buffer); void render_swap_and_blit(struct render *render); #endif /* __GL_RENDER_H__ */