Rev 4523 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4523 | Rev 4525 | ||
---|---|---|---|
1 | #ifndef __GL_RENDER_H__ |
1 | #ifndef __GL_RENDER_H__ |
2 | #define __GL_RENDER_H__ |
2 | #define __GL_RENDER_H__ |
3 | 3 | ||
4 | #define EGL_EGLEXT_PROTOTYPES |
4 | #define EGL_EGLEXT_PROTOTYPES |
5 | #define GL_GLEXT_PROTOTYPES |
5 | #define GL_GLEXT_PROTOTYPES |
6 | 6 | ||
7 | #include "EGL/egl.h" |
7 | #include "EGL/egl.h" |
8 | #include "EGL/eglext.h" |
8 | #include "EGL/eglext.h" |
9 | #include "GL/gl.h" |
9 | #include "GL/gl.h" |
10 | 10 | ||
11 | enum px_buffer |
11 | enum px_buffer |
12 | { |
12 | { |
13 | PX_FRONT = 0, |
13 | PX_FRONT = 0, |
14 | PX_BACK = 1 |
14 | PX_BACK = 1 |
15 | }; |
15 | }; |
16 | 16 | ||
17 | struct render |
17 | struct render |
18 | { |
18 | { |
19 | int fd; |
19 | int fd; |
20 | EGLDisplay dpy; |
20 | EGLDisplay dpy; |
21 | EGLContext context; |
21 | EGLContext context; |
22 | EGLint dx, dy; |
22 | EGLint dx, dy; |
23 | EGLint width, height; |
23 | EGLint width, height; |
24 | EGLint scr_width, scr_height; |
24 | EGLint scr_width, scr_height; |
25 | GLuint framebuffer; |
25 | GLuint framebuffer; |
26 | EGLImageKHR screen, front, back, mask; |
26 | EGLImageKHR screen, front, back; |
27 | GLuint tx_buffers[2]; |
27 | GLuint tx_buffers[2]; |
28 | GLuint tx_screen; |
28 | GLuint tx_screen; |
29 | GLuint tx_mask; |
29 | GLuint tx_mask; |
- | 30 | ||
30 | GLuint mask_handle; |
31 | GLuint mask_handle; |
- | 32 | GLuint mask_name; |
|
31 | void *mask_buffer; |
33 | void *mask_buffer; |
- | 34 | EGLImageKHR mask_image; |
|
- | 35 | ||
32 | int back_buffer; |
36 | int back_buffer; |
33 | GLuint blit_prog; |
37 | GLuint blit_prog; |
34 | GLint sampler, sm_mask; |
38 | GLint sampler, sm_mask; |
35 | float vertices[8],tc_src[8],tc_mask[8]; |
39 | float vertices[8],tc_src[8],tc_mask[8]; |
36 | }; |
40 | }; |
37 | 41 | ||
38 | struct render* create_render(EGLDisplay dpy, EGLSurface surface, int dx, int dy); |
42 | struct render* create_render(EGLDisplay dpy, EGLSurface surface, int dx, int dy); |
39 | void render_blit(struct render *render, enum px_buffer buffer); |
43 | void render_blit(struct render *render, enum px_buffer buffer); |
40 | void render_swap_and_blit(struct render *render); |
44 | void render_swap_and_blit(struct render *render); |
41 | 45 | ||
42 | #endif /* __GL_RENDER_H__ */ |
46 | #endif /* __GL_RENDER_H__ */ |