Subversion Repositories Kolibri OS

Rev

Rev 4523 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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