gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [SCM] Gnash branch, openvg, updated. 543e494d6a61dbe6ffc5


From: Rob Savoye
Subject: [Gnash-commit] [SCM] Gnash branch, openvg, updated. 543e494d6a61dbe6ffc549e6030bc99e8bddb4eb
Date: Thu, 13 Jan 2011 22:57:31 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".

The branch, openvg has been updated
       via  543e494d6a61dbe6ffc549e6030bc99e8bddb4eb (commit)
       via  c5ef5f91e3539ab906c952d2a8bcd6a39a47b87b (commit)
       via  b818b1ceaf68c9f76d1e7aecd055c6e324ae9804 (commit)
       via  489b1107560918747f8f1da54aa3c89c4b669f6c (commit)
       via  5b87d3060942f8a9b8f62002b15bc8f4669ffaa3 (commit)
       via  6b93372806de2e8adcca409c315281388a621394 (commit)
      from  53cd49b0a21cbc2f9ff887a076e61e0efc5b247e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=543e494d6a61dbe6ffc549e6030bc99e8bddb4eb


commit 543e494d6a61dbe6ffc549e6030bc99e8bddb4eb
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 15:57:22 2011 -0700

    tweak EGL config so it works on both 32 and 17bpp displays, with both 
OpenVG 1.0 and OpenVG 1.1

diff --git a/libdevice/egl/configTemplates.h b/libdevice/egl/configTemplates.h
index 86c80b8..e184b0a 100644
--- a/libdevice/egl/configTemplates.h
+++ b/libdevice/egl/configTemplates.h
@@ -91,7 +91,7 @@ static const EGLint attrib32_low[] = {
     EGL_BLUE_SIZE,       8,
     EGL_ALPHA_SIZE,      0,
     EGL_DEPTH_SIZE,      24,
-    // EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
     EGL_SURFACE_TYPE,    EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
     EGL_SAMPLES,         0,
     EGL_SAMPLE_BUFFERS,  0,  
@@ -131,8 +131,8 @@ static EGLint const attrib16_low[] = {
     EGL_BLUE_SIZE,       5,
     EGL_ALPHA_SIZE,      0,
     EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
-    EGL_LUMINANCE_SIZE,  EGL_DONT_CARE,
-    EGL_SURFACE_TYPE,    EGL_VG_COLORSPACE_LINEAR_BIT,
+//  EGL_LUMINANCE_SIZE,  EGL_DONT_CARE,
+//  EGL_SURFACE_TYPE,    EGL_VG_COLORSPACE_LINEAR_BIT,
     EGL_SAMPLES,         0,
     EGL_DEPTH_SIZE,      16,
     EGL_SAMPLES,         0,
@@ -180,6 +180,17 @@ static const EGLint attrib1_list[] = {
     EGL_NONE
 };
 
+const EGLint surface_attributes[] = {
+    // Back buffering is used for window and pbuffer surfaces. Windows
+    // require eglSwapBuffers() to become visible, and pbuffers don't.   
+    // EGL_SINGLE_BUFFER is by pixmap surfaces. With OpenVG, windows
+    // can also be single buffered. eglCopyBuffers() can be used to copy
+    // both back and single buffered surfaces to a pixmap.
+    EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER,
+    EGL_VG_COLORSPACE, EGL_VG_COLORSPACE_sRGB,
+    EGL_NONE
+};
+
 #endif  // end of __CONFIG_TEMPLATES_H__
 
 } // namespace renderer
diff --git a/libdevice/egl/eglDevice.cpp b/libdevice/egl/eglDevice.cpp
index d0c0b85..91871cf 100644
--- a/libdevice/egl/eglDevice.cpp
+++ b/libdevice/egl/eglDevice.cpp
@@ -45,17 +45,6 @@ namespace gnash {
 
 namespace renderer {
 
-const EGLint window_attrib_list[] = {
-    // Back buffering is used for window and pbuffer surfaces. Windows
-    // require eglSwapBuffers() to become visible, and pbuffers don't.   
-    // EGL_SINGLE_BUFFER is by pixmap surfaces. With OpenVG, windows
-    // can also be single buffered. eglCopyBuffers() can be used to copy
-    // both back and single buffered surfaces to a pixmap.
-    EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER,
-    EGL_COLORSPACE,    EGL_COLORSPACE_sRGB,
-    EGL_NONE
-};
-
 // The debug log used by all the gnash libraries.
 static LogFile& dbglogfile = LogFile::getDefaultInstance();
 
@@ -230,49 +219,59 @@ EGLDevice::initDevice(int argc, char *argv[])
     // The quality of the rendering is controlled by the number of samples
     // and sample buffers as specified in the configuration. Higher quality
     // settings force lower performance.
+
+    // eglChooseConfig() always returns EGL_SUCCESS, so we we just check the
+    // returned number of configurations to see if eglChooseConfig() actually
+    // found a workable configuration.
     EGLint eglNumOfConfigs = 0;
     switch (_quality) {
       case EGLDevice::LOW:
-          if (eglChooseConfig(_eglDisplay, attrib32_low, &_eglConfig,
-                              1, &eglNumOfConfigs)) {
-              log_debug("Choose 32bpp, low quality configuration");
+          eglChooseConfig(_eglDisplay, attrib32_low, &_eglConfig,
+                          1, &eglNumOfConfigs);
+          if (eglNumOfConfigs) {
+              log_debug("Using the 32bpp, low quality configuration");
           } else {
-              log_error("eglChooseConfig(32-low) failed (error %s)", 
-                        getErrorString(eglGetError()));
-              if (eglChooseConfig(_eglDisplay, attrib16_low, &_eglConfig,
-                                  1, &eglNumOfConfigs)) {
-                  log_error("eglChooseConfig(16-low) failed (error %s)", 
-                            getErrorString(eglGetError()));
+              log_error("eglChooseConfig(32-low) failed");
+              eglChooseConfig(_eglDisplay, attrib16_low, &_eglConfig,
+                              1, &eglNumOfConfigs);
+              if (eglNumOfConfigs) {
+                  log_debug("Using the 16bpp, low quality configuration");
+              } else {
+                  log_error("eglChooseConfig(16-low) failed");
                   return false;
               }
           }
           break;
       case EGLDevice::MEDIUM:
-          if (eglChooseConfig(_eglDisplay, attrib32_medium, &_eglConfig,
-                              1, &eglNumOfConfigs)) {
-              log_debug("Choose 32bpp, medium quality configuration");
+          eglChooseConfig(_eglDisplay, attrib32_medium, &_eglConfig,
+                          1, &eglNumOfConfigs);
+          if (eglNumOfConfigs) {
+              log_debug("Using the 32bpp, medium quality configuration");
           } else {
-              log_error("eglChooseConfig(32-medium) failed (error %s)", 
-                        getErrorString(eglGetError()));
-              if (eglChooseConfig(_eglDisplay, attrib16_medium, &_eglConfig,
-                                  1, &eglNumOfConfigs)) {
-                  log_error("eglChooseConfig(16-medium) failed (error %s)", 
-                            getErrorString(eglGetError()));
+              log_error("eglChooseConfig(32-medium) failed");
+              eglChooseConfig(_eglDisplay, attrib16_medium, &_eglConfig,
+                              1, &eglNumOfConfigs);
+              if (eglNumOfConfigs) {
+                  log_debug("Using the 16bpp, medium quality configuration");
+              } else {
+                  log_error("eglChooseConfig(16-medium) failed");
                   return false;
               }
           }
           break;
       case EGLDevice::HIGH:
-          if (eglChooseConfig(_eglDisplay, attrib32_high, &_eglConfig,
-                              1, &eglNumOfConfigs)) {
-              log_debug("Choose 32bpp, high quality configuration");
+          eglChooseConfig(_eglDisplay, attrib32_high, &_eglConfig,
+                          1, &eglNumOfConfigs);
+          if (eglNumOfConfigs) {
+              log_debug("Using the 32bpp, high quality configuration");
           } else {
-              log_error("eglChooseConfig(32-high) failed (error %s)", 
-                        getErrorString(eglGetError()));
-              if (eglChooseConfig(_eglDisplay, attrib16_high, &_eglConfig,
-                                  1, &eglNumOfConfigs)) {
-                  log_error("eglChooseConfig(16-high) failed (error %s)", 
-                            getErrorString(eglGetError()));
+              log_error("eglChooseConfig(32-high) failed");
+              eglChooseConfig(_eglDisplay, attrib16_high, &_eglConfig,
+                              1, &eglNumOfConfigs);
+              if (eglNumOfConfigs) {
+                  log_debug("Using the 16bpp, medium quality configuration");
+              } else {
+                  log_error("eglChooseConfig(16-high) failed");
                   return false;
               }
           }
@@ -281,11 +280,6 @@ EGLDevice::initDevice(int argc, char *argv[])
           break;
     }
 
-    // if  (eglNumOfConfigs == 0) {
-    //     log_error("eglChooseConfig() was unable to find a suitable config");
-    //     return false;
-    // }
-    
    if (!checkEGLConfig(_eglConfig)) {
        log_error("EGL configuration doesn't match!");
        //return false;
@@ -316,6 +310,7 @@ EGLDevice::supportsRenderer(rtype_t rtype)
     return false;
 }
 
+#ifdef BUILD_X11_DEVICE
 EGLint
 EGLDevice::getNativeVisual()
 {
@@ -332,6 +327,7 @@ EGLDevice::getNativeVisual()
 
     return vid;
 }
+#endif
 
 bool
 EGLDevice::bindClient(rtype_t rtype)
@@ -393,7 +389,7 @@ EGLDevice::attachWindow(GnashDevice::native_window_t window)
     log_debug("Initializing EGL Surface");
     if (_eglDisplay && _eglConfig) {
         _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig,
-                                             _nativeWindow, NULL);
+                                             _nativeWindow, 
surface_attributes);
     }
     
     if (EGL_NO_SURFACE == _eglSurface) {
@@ -617,6 +613,8 @@ EGLDevice::printEGLConfig(EGLConfig config)
     std::cout << "\tConfig has RED = " << red << ", GREEN = " << green
               << ", BLUE = " << blue  << std::endl;
     
+    eglGetConfigAttrib(_eglDisplay, config, EGL_BUFFER_SIZE, &value);
+    std::cout << "\tEGL_BUFFER_SIZE is " << value  << std::endl;
     eglGetConfigAttrib(_eglDisplay, config, EGL_ALPHA_SIZE, &value);
     std::cout << "\tEGL_ALPHA_SIZE is " << value  << std::endl;
     eglGetConfigAttrib(_eglDisplay, config, EGL_STENCIL_SIZE, &value);
@@ -669,8 +667,37 @@ EGLDevice::printEGLConfig(EGLConfig config)
     } else {
           std::cout <<"\tEGL_SURFACE_TYPE (default)" << std::endl;
     }
+
+    eglGetConfigAttrib(_eglDisplay, config, EGL_CONFIG_CAVEAT, &value);
+    if (value > 0) {
+        std::string str;
+        if (value & EGL_NONE) {
+            str += " EGL_NONE";
+        }
+        if (value & EGL_SLOW_CONFIG) {
+            str += " EGL_SLOW_CONFIG";
+        }
+        if (value & EGL_NON_CONFORMANT_CONFIG) {
+            str += " EGL_NON_CONFORMANT_CONFIG";
+        }
+        std::cout <<"\tEGL_CONFIG_CAVEAT = " << str << std::endl;
+    } else {
+        std::cout <<"\tEGL_CONFIG_CAVEAT (default)" << std::endl;
+    }
+
+#ifdef BUILD_X11_DEVICE
     eglGetConfigAttrib(_eglDisplay, config, EGL_NATIVE_VISUAL_ID, &value);
     std::cout << "\tX11 Visual is: " << value << std::endl;
+#endif
+    
+    eglGetConfigAttrib(_eglDisplay, config, EGL_BIND_TO_TEXTURE_RGB, &value);
+    val = (value)? "true" : "false";
+    std::cout << "\tEGL_BIND_TO_TEXTURE_RGB is " << val << std::endl;
+
+    eglGetConfigAttrib(_eglDisplay, config, EGL_BIND_TO_TEXTURE_RGBA, &value);
+    val = (value)? "true" : "false";
+    std::cout << "\tEGL_BIND_TO_TEXTURE_RGBA is " << val << std::endl;
+
 }
 
 void
diff --git a/libdevice/egl/eglDevice.h b/libdevice/egl/eglDevice.h
index b3fd7ef..55e22b5 100644
--- a/libdevice/egl/eglDevice.h
+++ b/libdevice/egl/eglDevice.h
@@ -163,8 +163,9 @@ class EGLDevice : public GnashDevice
         }
         return false;
     }
-
+#ifdef BUILD_X11_DEVICE
     EGLint getNativeVisual();
+#endif
     
     /// Check the requested EGl configuration against the current one
     bool checkEGLConfig(EGLConfig config);
@@ -196,7 +197,6 @@ class EGLDevice : public GnashDevice
     // Swap to the default surface
     bool swapBuffers() {
         GNASH_REPORT_FUNCTION;
-        log_debug("FIXME: %p, %p", _eglDisplay, _eglSurface);
         return eglSwapBuffers(_eglDisplay, _eglSurface);
     }
     bool copyPbuffers(size_t x) {
diff --git a/libdevice/egl/test_egl.cpp b/libdevice/egl/test_egl.cpp
index 009d2a4..73e7b0b 100644
--- a/libdevice/egl/test_egl.cpp
+++ b/libdevice/egl/test_egl.cpp
@@ -156,7 +156,6 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     // Init'ing to zero uses the root screen as the display. Otherwise
     // the argument should be an EGLNativeWindowType.
     int win = 0;
-
 #ifdef ENABLE_FAKE_FRAMEBUFFER
     win = open("/tmp/fbe_buffer", O_RDWR);
 #else

http://git.savannah.gnu.org/cgit//commit/?id=c5ef5f91e3539ab906c952d2a8bcd6a39a47b87b


commit c5ef5f91e3539ab906c952d2a8bcd6a39a47b87b
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 13:56:20 2011 -0700

    if attachWindow() fails, nothing else will work properly.

diff --git a/libdevice/egl/test_egl.cpp b/libdevice/egl/test_egl.cpp
index caa37d0..009d2a4 100644
--- a/libdevice/egl/test_egl.cpp
+++ b/libdevice/egl/test_egl.cpp
@@ -33,18 +33,22 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#ifdef HAVE_EGL_EGL_H
-# include <EGL/egl.h>
-#else
-# error "This file needs EGL, which is part of OpenGL-ES"
-#endif
-
 #include "log.h"
 #include "dejagnu.h"
 #include "eglDevice.h"
 #include "configTemplates.h"
 #include "GnashDevice.h"
 
+#ifdef BUILD_X11_DEVICE
+# include "x11/X11Device.h"
+#endif
+
+#ifdef HAVE_EGL_EGL_H
+# include <EGL/egl.h>
+#else
+# error "This file needs EGL, which is part of OpenGL-ES"
+#endif
+
 TestState runtest;
 
 using namespace gnash;
@@ -151,14 +155,24 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
 
     // Init'ing to zero uses the root screen as the display. Otherwise
     // the argument should be an EGLNativeWindowType.
-    int fd = 0;
-#ifndef BUILD_X11_DEVICE
-    fd = open("/dev/fb0", O_RDWR);
+    int win = 0;
+
+#ifdef ENABLE_FAKE_FRAMEBUFFER
+    win = open("/tmp/fbe_buffer", O_RDWR);
+#else
+# ifdef BUILD_RAWFB_DEVICE
+    win = open("/dev/fb0", O_RDWR);
+# endif
+# ifdef BUILD_X11_DEVICE
+    x11::X11Device x11(egl.getNativeVisual());
+    win = x11.getHandle();
+# endif
 #endif
-    if (egl.attachWindow(fd)) {
-        runtest.pass("EGLDevice::attachWindow(0)");
+    if (egl.attachWindow(win)) {
+        runtest.pass("EGLDevice::attachWindow()");
     } else {
-        runtest.fail("EGLDevice::attachWindow(0)");
+        runtest.fail("EGLDevice::attachWindow()");
+        hwinit = false;
     }
     
     if (hwinit) {
@@ -459,7 +473,9 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     
     // EGLSurface surf5 = eglGetCurrentSurface(EGL_DRAW);
     // egl.printEGLSurface(surf5);
-    close(fd);
+#ifndef BUILD_X11_DEVICE
+    close(win);
+#endif
 }
 
 // Local Variables:

http://git.savannah.gnu.org/cgit//commit/?id=b818b1ceaf68c9f76d1e7aecd055c6e324ae9804


commit b818b1ceaf68c9f76d1e7aecd055c6e324ae9804
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 12:36:25 2011 -0700

    more all the attribute tables to their own file. Try multiple EGL 
configurations.

diff --git a/libdevice/egl/eglDevice.cpp b/libdevice/egl/eglDevice.cpp
index b3dc1ce..d0c0b85 100644
--- a/libdevice/egl/eglDevice.cpp
+++ b/libdevice/egl/eglDevice.cpp
@@ -39,66 +39,12 @@
 
 #include "eglDevice.h"
 
+#include "configTemplates.h"
+
 namespace gnash {
 
 namespace renderer {
 
-static const EGLint attrib32_list[] = {
-    EGL_RED_SIZE,       8,
-    EGL_GREEN_SIZE,     8,
-    EGL_BLUE_SIZE,      8,
-//  EGL_ALPHA_SIZE,     0,
-//    EGL_DEPTH_SIZE,     24,
-// #ifdef RENDERER_GLES1
-//     EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
-// #endif
-// #ifdef RENDERER_GLES2
-//     EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-// #endif
-#ifdef RENDERER_OPENVG
-     EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
-//     EGL_STENCIL_SIZE,   8,
-#endif
-//    EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT|EGL_OPENGL_ES_BIT|EGL_OPENGL_ES2_BIT,
-    EGL_SURFACE_TYPE,   EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
-//    EGL_SAMPLE_BUFFERS, 1,
-// FIXME: Single Buffering appears not to work on X11, you get no visual. This 
is
-// the default though.    
-//    EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER,
-    EGL_NONE
-};
-
-static EGLint const attrib16_list[] = {
-    EGL_RED_SIZE,       5,
-    EGL_GREEN_SIZE,     6,
-    EGL_BLUE_SIZE,      5,
-    EGL_ALPHA_SIZE,     0,
-// #ifdef RENDERER_GLES1
-//     EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
-// #endif
-// #ifdef RENDERER_GLES2
-//     EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-// #endif
-    EGL_LUMINANCE_SIZE,     EGL_DONT_CARE,
-    EGL_SURFACE_TYPE,       EGL_VG_COLORSPACE_LINEAR_BIT,
-    EGL_SAMPLES,            0,
-#ifdef RENDERER_OPENVG
-    EGL_RENDERABLE_TYPE, EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
-    EGL_DEPTH_SIZE,     16,
-#endif
-    EGL_NONE
-};
-
-// These are the same EGL config settings as used by the Mesa
-// examples, which run on X11
-static const EGLint attrib1_list[] = {
-    EGL_RED_SIZE, 1,
-    EGL_GREEN_SIZE, 1,
-    EGL_BLUE_SIZE, 1,
-    EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
-    EGL_NONE
-};
-
 const EGLint window_attrib_list[] = {
     // Back buffering is used for window and pbuffer surfaces. Windows
     // require eglSwapBuffers() to become visible, and pbuffers don't.   
@@ -110,53 +56,6 @@ const EGLint window_attrib_list[] = {
     EGL_NONE
 };
 
-// From the EGL 1.4 spec:
-//
-// EGL defines several types of drawing surfaces collectively referred
-// to as EGLSurfaces. These include windows, used for onscreen
-// rendering; pbuffers, used for offscreen rendering; and pixmaps,
-// used for offscreen rendering into buffers that may be accessed
-// through native APIs. EGL windows and pixmaps are tied to native
-// window system windows and pixmaps.
-//
-// depth, multisample, and stencil buffers are currently used only by
-// OpenGL-ES.
-
-// EGL and OpenGL ES supports two rendering models: back buffered and
-// single buffered. Back buffered rendering is used by window and
-// pbuffer surfaces. Memory for the color buffer used during rendering
-// is allocated and owned by EGL. When the client is finished drawing
-// a frame, the back buffer may be copied to a visible window using
-// eglSwapBuffers. Pbuffer surfaces have a back buffer but no
-// associated window, so the back buffer need not be copied.
-//
-// Single buffered rendering is used by pixmap surfaces. Memory for
-// the color buffer is specified at surface creation time in the form
-// of a native pixmap, and client APIs are required to use that memory
-// during rendering. When the client is finished drawing a frame, the
-// native pixmap contains the final image. Pixmap surfaces typically
-// do not support multisampling, since the native pixmap used as the
-// color buffer is unlikely to provide space to store multisample
-// information. Some client APIs , such as OpenGL and OpenVG , also
-// support single buffered rendering to window surfaces. This behavior
-// can be selected when creating the window surface, as defined in
-// section 3.5.1. When mixing use of client APIs which do not support
-// single buffered rendering into windows, like OpenGL ES , with
-// client APIs which do support it, back color buffers and visible
-// window contents must be kept consistent when binding window
-// surfaces to contexts for each API type. Both back and single
-// buffered surfaces may also be copied to a specified native pixmap
-// using eglCopyBuffers.
-
-// Native rendering will always be supported by pixmap surfaces (to
-// the extent that native rendering APIs can draw to native
-// pixmaps). Pixmap surfaces are typically used when mixing native and
-// client API rendering is desirable, since there is no need to move
-// data between the back buffer visible to the client APIs and the
-// native pixmap visible to native rendering APIs. However, pixmap
-// surfaces may, for the same reason, have restricted capabilities and
-// performance relative to window and pbuffer surfaces.
-
 // The debug log used by all the gnash libraries.
 static LogFile& dbglogfile = LogFile::getDefaultInstance();
 
@@ -165,8 +64,8 @@ EGLDevice::EGLDevice()
       _eglContext(EGL_NO_CONTEXT),
       _eglSurface(EGL_NO_SURFACE),
       _eglDisplay(EGL_NO_DISPLAY),
-      _eglNumOfConfigs(0),
-      _max_num_config(1),
+      _quality(LOW),
+      _attrib(0),
 #if BUILD_X11_DEVICE
       _bpp(32)
 #else
@@ -179,13 +78,12 @@ EGLDevice::EGLDevice()
 }
 
 EGLDevice::EGLDevice(int argc, char *argv[])
-    :  _attrib(0),
-       _eglConfig(0),
+    : _eglConfig(0),
       _eglContext(EGL_NO_CONTEXT),
       _eglSurface(EGL_NO_SURFACE),
       _eglDisplay(EGL_NO_DISPLAY),
-      _eglNumOfConfigs(0),
-      _max_num_config(1),
+      _quality(LOW),
+      _attrib(0),
 #if BUILD_X11_DEVICE
       _bpp(32)
 #else
@@ -202,13 +100,12 @@ EGLDevice::EGLDevice(int argc, char *argv[])
 }
 
 EGLDevice::EGLDevice(GnashDevice::rtype_t rtype)
-    :  _attrib(0),
-       _eglConfig(0),
+    : _eglConfig(0),
       _eglContext(EGL_NO_CONTEXT),
       _eglSurface(EGL_NO_SURFACE),
       _eglDisplay(EGL_NO_DISPLAY),
-      _eglNumOfConfigs(0),
-      _max_num_config(1),
+      _quality(LOW),
+      _attrib(0),
 #if BUILD_X11_DEVICE
       _bpp(32)
 #else
@@ -232,10 +129,10 @@ EGLDevice::setAttrib(int bpp)
 { 
     switch (bpp) {
     case 32:
-        _attrib = attrib32_list;
+        _attrib = attrib32_low;
         break;
     case 16:
-        _attrib = attrib16_list;
+        _attrib = attrib16_low;
         break;
     case 1:
         _attrib = attrib1_list;
@@ -289,11 +186,7 @@ EGLDevice::initDevice(int argc, char *argv[])
 
     GNASH_REPORT_FUNCTION;
     
-    // see egl_config.c for a list of supported configs, this looks for
-    // a 5650 (rgba) config, supporting OpenGL ES and windowed surfaces
-
     // step 1 - get an EGL display
-
 //    _eglDisplay = eglGetDisplay(XOpenDisplay(0));
     _eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
     if (EGL_NO_DISPLAY == _eglDisplay) {
@@ -311,7 +204,7 @@ EGLDevice::initDevice(int argc, char *argv[])
     // step2 - bind to the wanted client API
     /// This is done by bindClient() later on
     // bindClient(GnashDevice::OPENVG);
-    queryEGLConfig(_eglDisplay);
+    // queryEGLConfig(_eglDisplay);
    
     log_debug("EGL_CLIENT_APIS = %s", eglQueryString(_eglDisplay, 
EGL_CLIENT_APIS));
     log_debug("EGL_EXTENSIONS = %s",  eglQueryString(_eglDisplay, 
EGL_EXTENSIONS));
@@ -320,44 +213,82 @@ EGLDevice::initDevice(int argc, char *argv[])
               eglQueryString(_eglDisplay, EGL_VENDOR));
 
     // step3 - find a suitable config
-#if 1
-    printEGLAttribs(_attrib);
-    if (EGL_FALSE == eglChooseConfig(_eglDisplay, _attrib, &_eglConfig,
-                                     1, &_eglNumOfConfigs)) {
-        log_error("eglChooseConfig(32) failed (error %s)", 
+    EGLint max_num_config = 0;
+    
+    // Get the number of supported configurations
+    if ( EGL_FALSE == eglGetConfigs(_eglDisplay, 0, 0, &max_num_config) ) {
+        log_error("eglGetConfigs() failed to retrive the number of configs 
(error %s)",
                   getErrorString(eglGetError()));
-        return false;
+        return 0;
     }
-#else
-    if (_bpp == 32) {
-        printEGLAttribs(attrib32_list);
-        if (EGL_FALSE == eglChooseConfig(_eglDisplay, attrib32_list, 
&_eglConfig,
-                                          1, &_eglNumOfConfigs)) {
-            log_error("eglChooseConfig(32) failed (error %s)", 
-                       getErrorString(eglGetError()));
-            return false;
-        }
-    } else if (_bpp == 16) {
-        printEGLAttribs(attrib16_list);
-        if (EGL_FALSE == eglChooseConfig(_eglDisplay, attrib16_list, 
&_eglConfig,
-                                         1, &_eglNumOfConfigs)) {
-            log_error("eglChooseConfig(16) failed (error %s)",
-                       getErrorString(eglGetError()));
-            return false;
-        }
-    } else {
-        log_error("No supported bpp value!");
+    if(max_num_config <= 0) {
+        printf( "No EGLconfigs found\n" );
+        return 0;
     }
-#endif
-
-    if (0 == _eglNumOfConfigs) {
-        log_error("eglChooseConfig() was unable to find a suitable config");
-        return false;
+    log_debug("Max number of EGL Configs is %d", max_num_config);
+
+    // The quality of the rendering is controlled by the number of samples
+    // and sample buffers as specified in the configuration. Higher quality
+    // settings force lower performance.
+    EGLint eglNumOfConfigs = 0;
+    switch (_quality) {
+      case EGLDevice::LOW:
+          if (eglChooseConfig(_eglDisplay, attrib32_low, &_eglConfig,
+                              1, &eglNumOfConfigs)) {
+              log_debug("Choose 32bpp, low quality configuration");
+          } else {
+              log_error("eglChooseConfig(32-low) failed (error %s)", 
+                        getErrorString(eglGetError()));
+              if (eglChooseConfig(_eglDisplay, attrib16_low, &_eglConfig,
+                                  1, &eglNumOfConfigs)) {
+                  log_error("eglChooseConfig(16-low) failed (error %s)", 
+                            getErrorString(eglGetError()));
+                  return false;
+              }
+          }
+          break;
+      case EGLDevice::MEDIUM:
+          if (eglChooseConfig(_eglDisplay, attrib32_medium, &_eglConfig,
+                              1, &eglNumOfConfigs)) {
+              log_debug("Choose 32bpp, medium quality configuration");
+          } else {
+              log_error("eglChooseConfig(32-medium) failed (error %s)", 
+                        getErrorString(eglGetError()));
+              if (eglChooseConfig(_eglDisplay, attrib16_medium, &_eglConfig,
+                                  1, &eglNumOfConfigs)) {
+                  log_error("eglChooseConfig(16-medium) failed (error %s)", 
+                            getErrorString(eglGetError()));
+                  return false;
+              }
+          }
+          break;
+      case EGLDevice::HIGH:
+          if (eglChooseConfig(_eglDisplay, attrib32_high, &_eglConfig,
+                              1, &eglNumOfConfigs)) {
+              log_debug("Choose 32bpp, high quality configuration");
+          } else {
+              log_error("eglChooseConfig(32-high) failed (error %s)", 
+                        getErrorString(eglGetError()));
+              if (eglChooseConfig(_eglDisplay, attrib16_high, &_eglConfig,
+                                  1, &eglNumOfConfigs)) {
+                  log_error("eglChooseConfig(16-high) failed (error %s)", 
+                            getErrorString(eglGetError()));
+                  return false;
+              }
+          }
+          break;
+      default:
+          break;
     }
+
+    // if  (eglNumOfConfigs == 0) {
+    //     log_error("eglChooseConfig() was unable to find a suitable config");
+    //     return false;
+    // }
     
    if (!checkEGLConfig(_eglConfig)) {
        log_error("EGL configuration doesn't match!");
-       return false;
+       //return false;
    } else {
        printEGLConfig(_eglConfig);
    }
@@ -850,6 +781,25 @@ EGLDevice::createPixmap(int width, int height, 
NativePixmapType buf)
     return pbuf;  
 }
 
+// Set the bitmask for the configured renderable types.
+EGLint
+EGLDevice::getRenderableTypes()
+{
+    EGLint type = 0;
+#ifdef RENDERER_GLES1
+    type = type | EGL_OPENGL_ES_BIT;
+#endif
+#ifdef RENDERER_GLES2
+    type = type | EGL_OPENGL_ES2_BIT;
+#endif
+#ifdef RENDERER_OPENVG
+    type = type | EGL_OPENVG_BIT;
+#endif
+    return type;
+}
+
+
+
 } // namespace renderer
 } // namespace gnash
 
diff --git a/libdevice/egl/eglDevice.h b/libdevice/egl/eglDevice.h
index 9be1576..b3fd7ef 100644
--- a/libdevice/egl/eglDevice.h
+++ b/libdevice/egl/eglDevice.h
@@ -44,15 +44,10 @@ namespace renderer {
 
 struct eglVertex {
     eglVertex(float x, float y)
-        : _x(x), _y(y)
-        {
-        }
+        : _x(x), _y(y) { }
   
     eglVertex(const point& p)
-        : _x(p.x), _y(p.y)
-        {
-        }
-
+        : _x(p.x), _y(p.y) { }
     float _x;
     float _y;
 };
@@ -60,6 +55,7 @@ struct eglVertex {
 class EGLDevice : public GnashDevice
 {
   public:
+    typedef enum {LOW, MEDIUM, HIGH} quality_e;
     EGLDevice();
     EGLDevice(int argc, char *argv[]);
     EGLDevice(GnashDevice::rtype_t rtype);
@@ -200,6 +196,7 @@ class EGLDevice : public GnashDevice
     // Swap to the default surface
     bool swapBuffers() {
         GNASH_REPORT_FUNCTION;
+        log_debug("FIXME: %p, %p", _eglDisplay, _eglSurface);
         return eglSwapBuffers(_eglDisplay, _eglSurface);
     }
     bool copyPbuffers(size_t x) {
@@ -346,15 +343,15 @@ class EGLDevice : public GnashDevice
     }
     
     void setAttrib(int bpp);
+    static EGLint getRenderableTypes();
 protected:
     EGLConfig           _eglConfig;
     EGLContext          _eglContext;
     EGLSurface          _eglSurface;
     EGLDisplay          _eglDisplay;
-    EGLint              _eglNumOfConfigs;
     EGLNativeWindowType _nativeWindow;
     EGLNativePixmapType _nativePixmap;
-    EGLint              _max_num_config;
+    quality_e           _quality;
     const EGLint       *_attrib;
     unsigned int        _bpp;
     std::vector<EGLSurface> _pbuffers;

http://git.savannah.gnu.org/cgit//commit/?id=489b1107560918747f8f1da54aa3c89c4b669f6c


commit 489b1107560918747f8f1da54aa3c89c4b669f6c
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 12:35:46 2011 -0700

    more all the attribute tables to their own file

diff --git a/libdevice/egl/egl.am b/libdevice/egl/egl.am
index 2c1c7b4..1cd48c9 100644
--- a/libdevice/egl/egl.am
+++ b/libdevice/egl/egl.am
@@ -40,5 +40,6 @@ test_egl_LDADD = \
 libgnashdevice_la_CPPFLAGS += $(EGL_CFLAGS)
 libgnashdevice_la_SOURCES += \
        egl/eglDevice.cpp \
-       egl/eglDevice.h
+       egl/eglDevice.h \
+       egl/configTemplates.h
 libgnashdevice_la_LIBADD += $(EGL_LIBS)

http://git.savannah.gnu.org/cgit//commit/?id=5b87d3060942f8a9b8f62002b15bc8f4669ffaa3


commit 5b87d3060942f8a9b8f62002b15bc8f4669ffaa3
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 12:35:30 2011 -0700

    more all the attribute tables to their own file

diff --git a/libdevice/egl/configTemplates.h b/libdevice/egl/configTemplates.h
new file mode 100644
index 0000000..86c80b8
--- /dev/null
+++ b/libdevice/egl/configTemplates.h
@@ -0,0 +1,191 @@
+//
+//   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+//   Foundation, Inc
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+#ifndef __CONFIG_TEMPLATES_H__
+#define __CONFIG_TEMPLATES_H__ 1
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#ifdef HAVE_EGL_EGL_H
+# include <EGL/egl.h>
+#else
+# error "This file needs EGL, which is part of OpenGL-ES"
+#endif
+
+#include "eglDevice.h"
+
+namespace gnash {
+namespace renderer {
+
+// From the EGL 1.4 spec:
+//
+// EGL defines several types of drawing surfaces collectively referred
+// to as EGLSurfaces. These include windows, used for onscreen
+// rendering; pbuffers, used for offscreen rendering; and pixmaps,
+// used for offscreen rendering into buffers that may be accessed
+// through native APIs. EGL windows and pixmaps are tied to native
+// window system windows and pixmaps.
+//
+// depth, multisample, and stencil buffers are currently used only by
+// OpenGL-ES.
+
+// EGL and OpenGL ES supports two rendering models: back buffered and
+// single buffered. Back buffered rendering is used by window and
+// pbuffer surfaces. Memory for the color buffer used during rendering
+// is allocated and owned by EGL. When the client is finished drawing
+// a frame, the back buffer may be copied to a visible window using
+// eglSwapBuffers. Pbuffer surfaces have a back buffer but no
+// associated window, so the back buffer need not be copied.
+//
+// Single buffered rendering is used by pixmap surfaces. Memory for
+// the color buffer is specified at surface creation time in the form
+// of a native pixmap, and client APIs are required to use that memory
+// during rendering. When the client is finished drawing a frame, the
+// native pixmap contains the final image. Pixmap surfaces typically
+// do not support multisampling, since the native pixmap used as the
+// color buffer is unlikely to provide space to store multisample
+// information. Some client APIs , such as OpenGL and OpenVG , also
+// support single buffered rendering to window surfaces. This behavior
+// can be selected when creating the window surface, as defined in
+// section 3.5.1. When mixing use of client APIs which do not support
+// single buffered rendering into windows, like OpenGL ES , with
+// client APIs which do support it, back color buffers and visible
+// window contents must be kept consistent when binding window
+// surfaces to contexts for each API type. Both back and single
+// buffered surfaces may also be copied to a specified native pixmap
+// using eglCopyBuffers.
+
+// Native rendering will always be supported by pixmap surfaces (to
+// the extent that native rendering APIs can draw to native
+// pixmaps). Pixmap surfaces are typically used when mixing native and
+// client API rendering is desirable, since there is no need to move
+// data between the back buffer visible to the client APIs and the
+// native pixmap visible to native rendering APIs. However, pixmap
+// surfaces may, for the same reason, have restricted capabilities and
+// performance relative to window and pbuffer surfaces.
+
+// NOTE: Single Buffering appears not to work on X11, you get no visual.
+//    EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER,
+
+// These are the attributes for a 24bpp, 32bit display
+static const EGLint attrib32_low[] = {
+    EGL_RED_SIZE,        8,
+    EGL_GREEN_SIZE,      8,
+    EGL_BLUE_SIZE,       8,
+    EGL_ALPHA_SIZE,      0,
+    EGL_DEPTH_SIZE,      24,
+    // EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_SURFACE_TYPE,    EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
+    EGL_SAMPLES,         0,
+    EGL_SAMPLE_BUFFERS,  0,  
+    EGL_NONE
+};
+
+static const EGLint attrib32_medium[] = {
+    EGL_RED_SIZE,        8,
+    EGL_GREEN_SIZE,      8,
+    EGL_BLUE_SIZE,       8,
+    EGL_ALPHA_SIZE,      0,
+    EGL_DEPTH_SIZE,      24,
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_SURFACE_TYPE,    EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
+    EGL_SAMPLES,         2,
+    EGL_SAMPLE_BUFFERS,  1,  
+    EGL_NONE
+};
+
+static const EGLint attrib32_high[] = {
+    EGL_RED_SIZE,        8,
+    EGL_GREEN_SIZE,      8,
+    EGL_BLUE_SIZE,       8,
+    EGL_DEPTH_SIZE,      24,
+    EGL_ALPHA_SIZE,      0,
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_SURFACE_TYPE,    EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
+    EGL_SAMPLES,         4,
+    EGL_SAMPLE_BUFFERS,  1,  
+    EGL_NONE
+};
+
+// These are the attributes for a 24bpp, 32bit display
+static EGLint const attrib16_low[] = {
+    EGL_RED_SIZE,        5,
+    EGL_GREEN_SIZE,      6,
+    EGL_BLUE_SIZE,       5,
+    EGL_ALPHA_SIZE,      0,
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_LUMINANCE_SIZE,  EGL_DONT_CARE,
+    EGL_SURFACE_TYPE,    EGL_VG_COLORSPACE_LINEAR_BIT,
+    EGL_SAMPLES,         0,
+    EGL_DEPTH_SIZE,      16,
+    EGL_SAMPLES,         0,
+    EGL_SAMPLE_BUFFERS,  0,  
+    EGL_NONE
+};
+
+static EGLint const attrib16_medium[] = {
+    EGL_RED_SIZE,        5,
+    EGL_GREEN_SIZE,      6,
+    EGL_BLUE_SIZE,       5,
+    EGL_ALPHA_SIZE,      0,
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_LUMINANCE_SIZE,  EGL_DONT_CARE,
+    EGL_SURFACE_TYPE,    EGL_VG_COLORSPACE_LINEAR_BIT,
+    EGL_SAMPLES,         0,
+    EGL_DEPTH_SIZE,      16,
+    EGL_SAMPLES,         2,
+    EGL_SAMPLE_BUFFERS,  1,  
+    EGL_NONE
+};
+
+static EGLint const attrib16_high[] = {
+    EGL_RED_SIZE,        5,
+    EGL_GREEN_SIZE,      6,
+    EGL_BLUE_SIZE,       5,
+    EGL_ALPHA_SIZE,      0,
+    EGL_RENDERABLE_TYPE, EGLDevice::getRenderableTypes(),
+    EGL_LUMINANCE_SIZE,  EGL_DONT_CARE,
+    EGL_SURFACE_TYPE,    EGL_VG_COLORSPACE_LINEAR_BIT,
+    EGL_SAMPLES,         0,
+    EGL_DEPTH_SIZE,      16,
+    EGL_SAMPLES,         4,
+    EGL_SAMPLE_BUFFERS,  1,  
+    EGL_NONE
+};
+
+// These are the same EGL config settings as used by the Mesa
+// examples, which run on X11.
+static const EGLint attrib1_list[] = {
+    EGL_RED_SIZE, 1,
+    EGL_GREEN_SIZE, 1,
+    EGL_BLUE_SIZE, 1,
+    EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
+    EGL_NONE
+};
+
+#endif  // end of __CONFIG_TEMPLATES_H__
+
+} // namespace renderer
+} // namespace gnash
+
+// local Variables:
+// mode: C++
+// indent-tabs-mode: nil
+// End:

http://git.savannah.gnu.org/cgit//commit/?id=6b93372806de2e8adcca409c315281388a621394


commit 6b93372806de2e8adcca409c315281388a621394
Author: Rob Savoye <address@hidden>
Date:   Thu Jan 13 12:34:40 2011 -0700

    add range checking to avoid false positives

diff --git a/libdevice/egl/test_egl.cpp b/libdevice/egl/test_egl.cpp
index 64269b8..caa37d0 100644
--- a/libdevice/egl/test_egl.cpp
+++ b/libdevice/egl/test_egl.cpp
@@ -42,6 +42,7 @@
 #include "log.h"
 #include "dejagnu.h"
 #include "eglDevice.h"
+#include "configTemplates.h"
 #include "GnashDevice.h"
 
 TestState runtest;
@@ -102,6 +103,12 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
 {
     bool hwinit = false;
 
+    if (EGLDevice::getRenderableTypes()) {
+        runtest.pass("EGLDevice::getRenderableTypes()");
+    } else {
+        runtest.fail("EGLDevice::getRenderableTypes()");
+    }
+    
     // This is a utility method for converting integer error codes to
     // something human readable for debugging.
     string result = "EGL_BAD_CONFIG";
@@ -163,9 +170,10 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     } else {
         runtest.untested("EGLDevice::supportsRenderer()");
     }
-    
+
+    // pixel formats are either 8,8,8 or 5,6,5
     if (hwinit) {    
-        if (egl.getRedSize() > 0) {
+        if ((egl.getRedSize() == 8) || (egl.getRedSize() == 5)) {
             runtest.pass("EGLDevice::getRedSize()");
         } else {
             runtest.fail("EGLDevice::getRedSize()");
@@ -175,7 +183,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     }
     
     if (hwinit) {
-        if (egl.getGreenSize() > 0) {
+        if ((egl.getGreenSize() == 8) || (egl.getGreenSize() == 6)) {
             runtest.pass("EGLDevice::getGreenSize()");
         } else {
             runtest.fail("EGLDevice::getGreenSize()");
@@ -185,7 +193,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     }
     
     if (hwinit) {
-        if (egl.getBlueSize() > 0) {
+        if ((egl.getBlueSize() == 8) || (egl.getBlueSize() == 5)) {
             runtest.pass("EGLDevice::getBlueSize()");
         } else {
             runtest.fail("EGLDevice::getBlueSize()");
@@ -196,7 +204,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
 
     // Surface config info tests
     if (hwinit) {
-        if (egl.getSurfaceID()) {
+        if ((egl.getSurfaceID() > 0) && (egl.getSurfaceID() <= 10)) {
             runtest.pass("EGLDevice::getSurfaceID()");
         } else {
             runtest.fail("EGLDevice::getSurfaceID()");
@@ -206,7 +214,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     }
     
     if (hwinit) {
-        if (egl.getWidth()) {
+        if (egl.getWidth() < 16000) {
             runtest.pass("EGLDevice::getWidth()");
         } else {
             runtest.fail("EGLDevice::getWidth()");
@@ -216,7 +224,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     }
     
     if (hwinit) {
-        if (egl.getHeight()) {
+        if (egl.getHeight() < 16000) {
             runtest.pass("EGLDevice::getHeigth()");
         } else {
             runtest.fail("EGLDevice::getHeigth()");
@@ -286,7 +294,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
 
     // Context accessor tests
     if (hwinit) {
-        if (egl.getContextID()) {
+        if (egl.getContextID() < 10) {
             runtest.pass("EGLDevice::getContextID()");
         } else {
             runtest.fail("EGLDevice::getContextID()");
@@ -345,7 +353,7 @@ test_egl(EGLDevice &egl, GnashDevice::rtype_t rtype, int 
argc, char *argv[])
     }
     
     if (hwinit) {
-        if (egl.getDepth()) {
+        if ((egl.getDepth() == 32) || (egl.getDepth() == 16)) {
             runtest.pass("EGLDevice::getDepth()");
         } else {
             runtest.fail("EGLDevice::getDepth()");

-----------------------------------------------------------------------

Summary of changes:
 libdevice/egl/configTemplates.h |  202 ++++++++++++++++++++++++++
 libdevice/egl/egl.am            |    3 +-
 libdevice/egl/eglDevice.cpp     |  305 ++++++++++++++++++---------------------
 libdevice/egl/eglDevice.h       |   17 +--
 libdevice/egl/test_egl.cpp      |   65 ++++++---
 5 files changed, 396 insertions(+), 196 deletions(-)
 create mode 100644 libdevice/egl/configTemplates.h


hooks/post-receive
-- 
Gnash



reply via email to

[Prev in Thread] Current Thread [Next in Thread]