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. c3acfaa6095057e3e129


From: Rob Savoye
Subject: [Gnash-commit] [SCM] Gnash branch, openvg, updated. c3acfaa6095057e3e12916aaf829bbae13b98ec4
Date: Thu, 11 Nov 2010 23:35:43 +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  c3acfaa6095057e3e12916aaf829bbae13b98ec4 (commit)
       via  bdea6af59a7d65173e48045bd03a0c25f24b0e90 (commit)
      from  3f9775d1637ab2ce0f24fd5a6a540af3476da85a (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=c3acfaa6095057e3e12916aaf829bbae13b98ec4


commit c3acfaa6095057e3e12916aaf829bbae13b98ec4
Author: Rob Savoye <address@hidden>
Date:   Thu Nov 11 16:32:53 2010 -0700

    add pbuffer and pixmap support

diff --git a/librender/eglDevice.cpp b/librender/eglDevice.cpp
index f0f6390..6012818 100644
--- a/librender/eglDevice.cpp
+++ b/librender/eglDevice.cpp
@@ -65,7 +65,7 @@ static const EGLint attrib32_list[] = {
     EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
     EGL_STENCIL_SIZE,   8,
 #endif
-    EGL_SURFACE_TYPE,   EGL_WINDOW_BIT,
+    EGL_SURFACE_TYPE,   EGL_WINDOW_BIT|EGL_PBUFFER_BIT|EGL_PIXMAP_BIT,
 //    EGL_SAMPLE_BUFFERS, 1,
     // EGL_RENDER_BUFFER, EGL_SINGLE_BUFFER
     EGL_NONE
@@ -84,7 +84,7 @@ static EGLint const attrib16_list[] = {
 #endif
 #ifdef RENDERER_OPENVG
     EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
-    EGL_DEPTH_SIZE,     0,
+    EGL_DEPTH_SIZE,     16,
     EGL_STENCIL_SIZE,   0,
 #endif
     EGL_SURFACE_TYPE,   EGL_WINDOW_BIT,
diff --git a/librender/eglDevice.h b/librender/eglDevice.h
index 5cb9e81..650d4c0 100644
--- a/librender/eglDevice.h
+++ b/librender/eglDevice.h
@@ -287,10 +287,6 @@ class EGLDevice
         eglGetConfigAttrib(_eglDisplay, _eglConfig, EGL_MIN_SWAP_INTERVAL, 
&value);
         return value;
     }
-    // bool i() {
-    //     EGLint value;
-    //     return value;
-    // }
     
 protected:
     EGLConfig           _eglConfig;
@@ -299,6 +295,7 @@ protected:
     EGLDisplay          _eglDisplay;
     EGLint              _eglNumOfConfigs;
     EGLNativeWindowType _nativeWindow;
+    EGLNativePixmapType _nativePixmap;
     EGLint              _max_num_config;
     unsigned int        _bpp;
     unsigned int        _width;

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


commit bdea6af59a7d65173e48045bd03a0c25f24b0e90
Author: Rob Savoye <address@hidden>
Date:   Thu Nov 11 16:32:08 2010 -0700

    renable GTK support

diff --git a/librender/testr.cpp b/librender/testr.cpp
index bcf9ead..3e121ea 100644
--- a/librender/testr.cpp
+++ b/librender/testr.cpp
@@ -85,7 +85,10 @@ void test_renderer(Renderer *renderer, const std::string 
&type);
 void test_geometry(Renderer *renderer, const std::string &type);
 void test_iterators(Renderer *renderer, const std::string &type);
 
-#ifdef HAVE_GTK_XX
+// The debug log used by all the gnash libraries.
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
+
+#ifdef HAVE_GTK2
 GtkWidget *create_GTK_window();
 #endif
 
@@ -132,9 +135,6 @@ private:
     boost::posix_time::ptime _stoptime;
 };
 
-// The debug log used by all the gnash libraries.
-static LogFile& dbglogfile = LogFile::getDefaultInstance();
-
 int
 main(int argc, char *argv[])
 {
@@ -143,19 +143,8 @@ main(int argc, char *argv[])
 
     const char *pixelformat = "RGB24";
 
-#ifdef HAVE_GTK2_XX
-    GtkWidget *window = create_GTK_window();
-#endif
-
 #ifdef GTK_TEST_RENDER
-    // FIXME: GTK specific!
-    GtkWidget *drawing_area = 0;
-    if (!drawing_area) {
-        log_error("No GDK drawing area!");
-        exit(-1);
-    }
-    
-    GdkVisual *wvisual = gdk_drawable_get_visual(drawing_area->window);
+    GdkVisual *wvisual = gdk_drawable_get_visual(canvas);
 
     GdkImage* tmpimage = gdk_image_new (GDK_IMAGE_FASTEST, wvisual, 1, 1);
     const GdkVisual* visual = tmpimage->visual;
@@ -169,25 +158,40 @@ main(int argc, char *argv[])
         tmpimage->bpp * 8);
 #endif  // end of GTK_TEST_RENDER
 
-    Renderer *renderer = 0;
-
 #ifdef RENDERER_AGG
     Timer tagg("AGG");
-    renderer = create_Renderer_agg(pixelformat);
-    test_renderer(renderer, "AGG");
-    test_geometry(renderer, "AGG");
-    test_iterators(renderer, "AGG");
-    tagg.stop();
-    cerr << "AGG tests took " << tagg.elapsed() << endl;
+    Renderer *renderer1 = create_Renderer_agg(pixelformat);
+#ifdef HAVE_GTK2
+    GtkWidget *canvas = create_GTK_window();
+    GdkVisual* visual = gdk_drawable_get_visual(canvas->window);
+    GdkImage *offscreenbuf = gdk_image_new (GDK_IMAGE_FASTEST, visual, 
200,200);
+    static_cast<Renderer_agg_base *>(renderer1)->init_buffer(
+        (unsigned char*) offscreenbuf->mem,
+        offscreenbuf->bpl * offscreenbuf->height,
+        offscreenbuf->width,
+        offscreenbuf->height,
+        offscreenbuf->bpl);
 #endif
     
-#ifdef RENDERER_OPENVG 
+    if (renderer1) {
+        test_renderer(renderer1, "AGG");
+        test_geometry(renderer1, "AGG");
+        test_iterators(renderer1, "AGG");
+        tagg.stop();
+    }
+    cerr << "AGG tests took " << tagg.elapsed() << endl << endl;
+#endif
+
+#ifdef RENDERER_OPENVG
     Timer tovg("OpenVG");
-    renderer = renderer::openvg::create_handler(pixelformat);
-    if (renderer) {
-        test_renderer(renderer, "OpenVG");
-        test_geometry(renderer, "OpenVG");
-        test_iterators(renderer, "OpenVG");
+    Renderer *renderer2 = renderer::openvg::create_handler(pixelformat);
+    EGLDevice *ovg = dynamic_cast<EGLDevice *>(renderer2);
+    ovg->initDevice(EGLDevice::OPENVG);
+    ovg->initEGL(*(reinterpret_cast<EGLNativeWindowType *>(canvas)));
+    if (renderer2) {
+        test_renderer(renderer2, "OpenVG");
+        test_geometry(renderer2, "OpenVG");
+        test_iterators(renderer2, "OpenVG");
     } else {
         cerr << "ERROR: No OpenVG renderer to test!" << endl;
     }
@@ -195,13 +199,14 @@ main(int argc, char *argv[])
     cerr << "OpenVG tests took " << tovg.elapsed() << endl;
 #endif
     
+#if 1
 #ifdef RENDERER_GLES1
     Timer tgles1("OpenGLES1");
-    renderer = renderer::gles1::create_handler(pixelformat);
-    if (renderer) {
-        test_renderer(renderer, "OpenGLES1");
-        test_geometry(renderer, "OpenGLES1");
-        test_iterators(renderer, "OpenGLES1");
+    Renderer *renderer3 = renderer::gles1::create_handler(pixelformat);
+    if (renderer3) {
+        test_renderer(renderer3, "OpenGLES1");
+        test_geometry(renderer3, "OpenGLES1");
+        test_iterators(renderer3, "OpenGLES1");
     } else {
         cerr << "ERROR: No OpenGLES1 renderer to test!" << endl;
     }
@@ -211,11 +216,11 @@ main(int argc, char *argv[])
 
 #ifdef RENDERER_GLES2
     Timer tgles2("OpenGLES2");
-    renderer =  renderer::gles2::create_handler(pixelformat);
-    if (renderer) {
-        test_renderer(renderer, "OpenGLES2");
-        test_geometry(renderer, "OpenGLES2");
-        test_iterators(renderer, "OpenGLES2");
+    Renderer *renderer4 = renderer::gles2::create_handler(pixelformat);
+    if (renderer4) {
+        test_renderer(renderer4, "OpenGLES2");
+        test_geometry(renderer4, "OpenGLES2");
+        test_iterators(renderer4, "OpenGLES2");
     } else {
         cerr << "ERROR: No OpenGLES2 renderer to test!" << endl;
     }
@@ -225,11 +230,11 @@ main(int argc, char *argv[])
 
 #ifdef RENDERER_CAIRO 
     Timer tcairo("Cairo");
-    renderer = renderer::cairo::create_handler();
-    if (renderer) {
-        test_renderer(renderer, "Cairo");
-        test_geometry(renderer, "Cairo");
-        test_iterators(renderer, "Cairo");
+    Renderer *renderer5 = renderer::cairo::create_handler();
+    if (renderer5) {
+        test_renderer(renderer5, "Cairo");
+        test_geometry(renderer5, "Cairo");
+        test_iterators(renderer5, "Cairo");
     } else {
         cerr << "ERROR: No Cairo renderer to test!" << endl;
     }
@@ -239,19 +244,20 @@ main(int argc, char *argv[])
     
 #ifdef RENDERER_OPENGL
     Timer tgl("OpenGL");
-    renderer = renderer::opengl::create_handler(true);
-    if (renderer) {
-        test_renderer(renderer, "OpenGL");
-        test_geometry(renderer, "OpenGL");
-        test_iterators(renderer, "OpenGL");
+    Renderer *renderer6 = renderer::opengl::create_handler(true);
+    if (renderer6) {
+        test_renderer(renderer6, "OpenGL");
+        test_geometry(renderer6, "OpenGL");
+        test_iterators(renderer6, "OpenGL");
     } else {
         cerr << "ERROR: No OpenGL renderer to test!" << endl;
     }
     tgl.stop();
     cerr << "OpenGL tests took " << tgl.elapsed() << endl;
 #endif
+#endif
     
-#ifdef HAVE_GTK2_XX
+#ifdef HAVE_GTK2
     gtk_main();
     gtk_main_quit();
     gtk_exit(0);
@@ -291,12 +297,33 @@ test_renderer(Renderer *renderer, const std::string &type)
         runtest.fail("getBitsPerPixel()");
     }
 
+#ifdef HAVE_GTK2
+    GtkWidget *canvas = create_GTK_window();
+    if (type == "AGG") {
+        GdkVisual* visual = gdk_drawable_get_visual(canvas->window);
+        GdkImage *offscreenbuf = gdk_image_new (GDK_IMAGE_FASTEST, visual, 200,
+                                                200);;
+        static_cast<Renderer_agg_base *>(renderer)->init_buffer(
+            (unsigned char*) offscreenbuf->mem,
+            offscreenbuf->bpl * offscreenbuf->height,
+            offscreenbuf->width,
+            offscreenbuf->height,
+            offscreenbuf->bpl);    
+    }
+            
+    if ((type == "OpenVG") && (type == "OpenGLES1") && (type == "OpenGLES2")) {
+        EGLDevice *ovg = dynamic_cast<EGLDevice *>(renderer);
+        ovg->initDevice(EGLDevice::OPENVG);
+        ovg->initEGL(*(reinterpret_cast<EGLNativeWindowType *>(canvas)));
+    }
+#else
     // Initializes the renderer for off-screen rendering used by the testsuite.
     if (renderer->initTestBuffer(10, 10)) {
         runtest.pass("initTestBuffer()");
     } else {
         runtest.fail("initTestBuffer()");
     }
+#endif
     
     /// @coords an array of 16-bit signed integer coordinates. Even indices
     ///         (and 0) are x coordinates, while uneven ones are y coordinates.

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

Summary of changes:
 librender/eglDevice.cpp |    4 +-
 librender/eglDevice.h   |    5 +--
 librender/testr.cpp     |  129 ++++++++++++++++++++++++++++------------------
 3 files changed, 81 insertions(+), 57 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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