47 lines
1001 B
C
47 lines
1001 B
C
|
#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__ */
|