~glproxy-dev/glproxy/trunk

« back to all changes in this revision

Viewing changes to tests/tfp/egl_tfp.c

  • Committer: Marc Ordinas i Llopis
  • Date: 2011-12-08 11:35:53 UTC
  • mfrom: (35.1.7 fixes)
  • Revision ID: marc.ordinasillopis@linaro.org-20111208113553-og785wmh311tv427
EGL support: Add EGL virtualization support to glproxy.

Also,
- Removed the "automagic" best renderer detection, as it needed to start
both EGL and GLX which caused problems on some systems. It will return,
but in a more application-controlled way.
- Now it's necessary to pass the current display to the extensions helper
functions, as using an internal one caused NULL being returned as the
extensions string in some systems.
- A lot of code clean-ups.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
#include <X11/keysym.h>
45
45
#include <GL/gl_proxy.h>
46
46
#include <GL/glext_proxy.h>
47
 
#include <EGL/egl.h>
48
 
#include <EGL/eglext.h>
 
47
#include <EGL/egl_proxy.h>
 
48
#include <EGL/eglext_proxy.h>
49
49
#include <math.h>
50
50
#include "matrix.h"
51
51
 
499
499
   printf("EGL extensions: %s\n", exts);
500
500
 
501
501
   data->glEGLImageTargetTexture2DOES =
502
 
      (PFNPROXYEGLIMAGETARGETTEXTURE2DOESPROC) glProxyGetExtProcAddr("GL_OES_EGL_image", "glEGLImageTargetTexture2DOES");
 
502
      (PFNPROXYEGLIMAGETARGETTEXTURE2DOESPROC) glProxyGetExtProcAddr(data->dpy,
 
503
              "GL_OES_EGL_image", "glEGLImageTargetTexture2DOES");
503
504
   if (!exts || !data->glEGLImageTargetTexture2DOES) {
504
505
       printf("EGL does not support GL_OES_EGL_image\n");
505
506
       return False;
506
507
   }
507
508
 
508
509
   data->eglCreateImageKHR =
509
 
      (PFNEGLCREATEIMAGEKHRPROC) glProxyGetExtProcAddr("EGL_KHR_image_pixmap", "eglCreateImageKHR");
 
510
      (PFNEGLCREATEIMAGEKHRPROC) glProxyGetExtProcAddr(data->dpy,
 
511
              "EGL_KHR_image_pixmap", "eglCreateImageKHR");
510
512
   data->eglDestroyImageKHR =
511
 
      (PFNEGLDESTROYIMAGEKHRPROC) glProxyGetExtProcAddr("EGL_KHR_image_pixmap", "eglDestroyImageKHR");
 
513
      (PFNEGLDESTROYIMAGEKHRPROC) glProxyGetExtProcAddr(data->dpy,
 
514
              "EGL_KHR_image_pixmap", "eglDestroyImageKHR");
512
515
   if (!exts || !data->eglCreateImageKHR || !data->eglDestroyImageKHR) {
513
516
      printf("EGL does not support EGL_KHR_image_pixmap\n");
514
517
      return False;
761
764
   if (!parse_args(data, argc, argv))
762
765
      return False;
763
766
 
 
767
   /* select gles2 backend of GLProxy explicitly */
 
768
   if (glProxyInit(&backend) < 0) {
 
769
      printf("Error: GLProxy init failed\n");
 
770
      goto fail;
 
771
   }
 
772
 
 
773
   if (backend != OPENGL_ES20_BACKEND) {
 
774
      printf("Error: no gles2 support in the system\n");
 
775
      goto fail;
 
776
   }
 
777
 
764
778
   data->xdpy = XOpenDisplay(NULL);
765
779
   if (!data->xdpy)
766
780
      goto fail;
772
786
   if (!make_x_window(data, "EGLImage TFP", 0, 0, 300, 300))
773
787
      goto fail;
774
788
 
775
 
   /* select gles2 backend of GLProxy explicitly */
776
 
   if (glProxyInit(&backend) < 0) {
777
 
      printf("Error: GLProxy init failed\n");
778
 
      goto fail;
779
 
   }
780
 
 
781
 
   if (backend != OPENGL_ES20_BACKEND) {
782
 
      printf("Error: no gles2 support in the system\n");
783
 
      goto fail;
784
 
   }
785
 
 
786
 
 
787
789
   gc_vals.function = GXcopy;
788
790
   gc_vals.foreground = WhitePixel(data->xdpy, DefaultScreen(data->xdpy));
789
791
   gc_vals.line_width = 3;