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. 8178d1b50b8354a09bea


From: Rob Savoye
Subject: [Gnash-commit] [SCM] Gnash branch, openvg, updated. 8178d1b50b8354a09bea59289d4e9840e85164be
Date: Fri, 29 Oct 2010 16:30:41 +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  8178d1b50b8354a09bea59289d4e9840e85164be (commit)
       via  fb12500f18d0cb06990eb53aa04cc954d078f5b9 (commit)
       via  0bbf779f767e9bb8413c5f41a120af97b05a6225 (commit)
       via  20e2816e06944cdae24120dfce9e022d8ff10c13 (commit)
       via  e0e2535a876e0b1e1a919d5014b49ff206493d96 (commit)
      from  61c4ebc4a07593cf78924c17c12f04eef21e9013 (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=8178d1b50b8354a09bea59289d4e9840e85164be


commit 8178d1b50b8354a09bea59289d4e9840e85164be
Author: Rob Savoye <address@hidden>
Date:   Fri Oct 29 10:30:10 2010 -0600

    hack in simple OpenVG drawing test, for debug only

diff --git a/librender/testr_gtk.cpp b/librender/testr_gtk.cpp
index f5bb49f..23a7b4a 100644
--- a/librender/testr_gtk.cpp
+++ b/librender/testr_gtk.cpp
@@ -33,6 +33,26 @@
 # include <gtk/gtk.h>
 # include <gdk/gdk.h>
 #endif
+#ifdef RENDERER_AGG
+#include "Renderer_agg.h"
+#endif
+#ifdef RENDERER_OPENGL
+#include "Renderer_ogl.h"
+#endif
+#ifdef RENDERER_OPENVG
+#include "Renderer_ovg.h"
+#include <VG/openvg.h>
+#include <VG/vgu.h>
+#endif
+#ifdef RENDERER_GLES1
+#include "Renderer_gles1.h"
+#endif
+#ifdef RENDERER_GLES2
+#include "Renderer_gles2.h"
+#endif
+#ifdef RENDERER_CAIRO
+#include "Renderer_cairo.h"
+#endif
 
 #include "log.h"
 #include "SWFMatrix.h"
@@ -44,6 +64,12 @@
 using namespace gnash; 
 using namespace std; 
 
+const VGfloat white_color[4] = {1.0, 1.0, 1.0, 1.0};
+const VGfloat color[4] = {0.4, 0.1, 1.0, 1.0};
+
+VGPath path;
+VGPaint paint;
+
 // The debug log used by all the gnash libraries.
 static LogFile& dbglogfile = LogFile::getDefaultInstance();
 
@@ -63,9 +89,67 @@ void on_window1_realize (GtkWidget *widget, gpointer 
user_data);
 void on_window1_size_allocate (GtkWidget *widget, GdkRectangle *allocation,
                                         gpointer user_data);
 
+static void
+initVGDemo(void)
+{
+    VGfloat clearColor[] = {0.0f, 0.0f, 0.0f, 1.0f};/* black color */
+    VGfloat greenColor[] = {0.0f, 1.0f, 0.0f, 1.0f};/* green color */
+    VGint arcType = VGU_ARC_OPEN;
+    VGfloat x, y, w, h, startAngle, angleExtent;
+
+    x = 150;
+    y = 150;
+    w = 150;
+    h = 150;
+#if 0
+    startAngle  = -540.0f;
+    angleExtent = 270.0f;
+#else
+    startAngle  = 270.0f;
+    angleExtent = 90.0f;
+#endif
+    paint = vgCreatePaint();
+
+    vgSetPaint(paint, VG_STROKE_PATH);
+    vgSetParameterfv(paint, VG_PAINT_COLOR, 4, greenColor);
+    vgSetParameteri( paint, VG_PAINT_TYPE, VG_PAINT_TYPE_COLOR);
+    vgSetf(VG_STROKE_LINE_WIDTH, 6.0f);
+    vgSeti(VG_RENDERING_QUALITY, VG_RENDERING_QUALITY_NONANTIALIASED);
+    vgSetfv(VG_CLEAR_COLOR, 4, clearColor);
+
+    path  = vgCreatePath(VG_PATH_FORMAT_STANDARD, VG_PATH_DATATYPE_F,
+                         1.0f, 0.0f, 0, 0, VG_PATH_CAPABILITY_ALL);
+
+    vguArc(path, x, y, w, h, startAngle, angleExtent, (VGUArcType)arcType);
+
+    vgSeti(VG_STROKE_CAP_STYLE, VG_CAP_BUTT);
+    vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_BEVEL);
+    vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
+}
+
+/* new window size or exposure */
+static void
+reshape(int w, int h)
+{
+   vgLoadIdentity();
+}
+
+static void
+draw(void)
+{
+   vgClear(0, 0, 500, 500);
+   vgDrawPath(path, VG_STROKE_PATH);
+
+   vgFlush();
+}
+
 GtkWidget *
-create_GTK_window(int argc, char **argv)
+create_GTK_window()
 {
+    // As gtk_init() wants the command line arguments, we have to create
+    // fake ones, as we don't care about the X11 options at this point.
+    int argc = 0;
+    char **argv = 0;    
     gtk_init(&argc, &argv);
 
     GtkWidget *window;
@@ -84,7 +168,10 @@ create_GTK_window(int argc, char **argv)
     canvas = gtk_drawing_area_new();
     gtk_widget_show(canvas);
     gtk_container_add (GTK_CONTAINER (window), canvas);
-
+    // Disable double buffering, otherwise gtk tries to update widget
+    // contents from its internal offscreen buffer at the end of expose event
+    gtk_widget_set_double_buffered(canvas, FALSE);
+    
     g_signal_connect(GTK_OBJECT(window), "delete_event",
                      (GCallback)gtk_main_quit, NULL);
     g_signal_connect ((gpointer) window, "configure_event",
@@ -120,7 +207,7 @@ create_GTK_window(int argc, char **argv)
     // Just do one iteration of the main loop
     gtk_main_iteration_do(true);
     
-    return window;
+    return canvas;
 }
 
 void
@@ -171,7 +258,8 @@ on_window1_expose_event(GtkWidget *widget, GdkEventExpose  
*event,
                         gpointer user_data)
 {
     GNASH_REPORT_FUNCTION;
-
+    vgLoadIdentity();
+    
     return FALSE;
 }
 
@@ -188,6 +276,7 @@ on_window1_size_allocate(GtkWidget *widget, GdkRectangle 
*allocation,
     GNASH_REPORT_FUNCTION;
 }
 
+
 // Local Variables:
 // mode: C++
 // indent-tabs-mode: nil

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


commit fb12500f18d0cb06990eb53aa04cc954d078f5b9
Author: Rob Savoye <address@hidden>
Date:   Fri Oct 29 10:29:08 2010 -0600

    rename m_display_width * height to _display_*.

diff --git a/librender/Renderer_ovg.cpp b/librender/Renderer_ovg.cpp
index 6efb2fd..13f7f41 100644
--- a/librender/Renderer_ovg.cpp
+++ b/librender/Renderer_ovg.cpp
@@ -230,14 +230,26 @@ for_each(C& container, R (T::*pmf)(const A&),const A& arg)
 }
 
 Renderer_ovg::Renderer_ovg()
-    : m_display_width(0.0),
-      m_display_height(0.0),
+    : _display_width(0.0),
+      _display_height(0.0),
       _drawing_mask(false)
 {
 
     if (!initDevice(EGLDevice::OPENVG)) {
         log_error("Couldn't initialize EGL Device!");
     }
+#ifdef HAVE_GTK2 
+    if (!initEGL(0)) {
+        log_error("Couldn't initialize EGL Window!");
+    }
+    EGLint value;
+    eglQuerySurface(_eglDisplay, _eglSurface, EGL_WIDTH, &value);
+    _display_width = value;
+    eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+    _display_height = value;
+#else
+#warning "Must initialize a native window!"
+#endif
     
     set_scale(1.0f, 1.0f);
     m_fillpaint = vgCreatePaint();
@@ -268,8 +280,8 @@ Renderer_ovg::init(float x, float y)
     vgSeti(VG_STROKE_JOIN_STYLE, VG_JOIN_ROUND);
     vgSetf(VG_STROKE_MITER_LIMIT, 4.0f);
 #else
-    m_display_width = x;
-    m_display_height = y;
+    _display_width = x;
+    _display_height = y;
     
     // Turn on alpha blending.
     vgSeti (VG_BLEND_MODE, VG_BLEND_SRC_OVER);
@@ -394,12 +406,12 @@ Renderer_ovg::begin_display(const rgba& /* bg_color */, 
int /* viewport_x0 */,
     
     float mat[9];
     memset(mat, 0, sizeof(mat));
-    mat[0] = (float)m_display_width / float(x1 - x0);  // scale sx
+    mat[0] = (float)_display_width / float(x1 - x0);  // scale sx
     mat[1] = 0; // shx
     mat[3] = 0; // shy
-    mat[4] = -((float)m_display_height / float(y1 - y0)); // scale sy
+    mat[4] = -((float)_display_height / float(y1 - y0)); // scale sy
     mat[6] = 0;   // shift tx
-    mat[7] = m_display_height;   // shift ty
+    mat[7] = _display_height;   // shift ty
     
     vgSeti (VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
     vgLoadMatrix (mat);
@@ -586,11 +598,11 @@ Renderer_ovg::apply_mask()
     mat[3] =  0.0f; // shy
     mat[4] =  -stage_matrix.get_x_scale(); // scale sy
     mat[6] =  0;    // shift tx
-    mat[7] =  m_display_height;   // shift ty
+    mat[7] =  _display_height;   // shift ty
     vgLoadMatrix(mat);
     
 #ifdef OPENVG_VERSION_1_1    
-    vgMask(m_mask, VG_FILL_MASK, 0, 0, m_display_width, m_display_height); 
FIXME
+    vgMask(m_mask, VG_FILL_MASK, 0, 0, _display_width, _display_height); FIXME
 #endif
 // Call add_paths for each mask.
     std::for_each(_masks.begin(), _masks.end(),
@@ -1492,27 +1504,64 @@ Renderer_ovg::printVGParams()
 bool
 Renderer_ovg::initTestBuffer(unsigned int width, unsigned int height)
 {
-    int size = width * height; // * getBytesPerPixel();
+    int size = width * height * getBitsPerPixel(); // FIXME was Bytes not bits
+
+#ifdef HAVE_GTK2
+    // new surface
+    // makeCurrentContext
+#else
     
     // _testBuffer = static_cast<unsigned char *>(realloc(_testBuffer, size));
     _testBuffer = new unsigned char[size];
     memset(_testBuffer, 0, size);
     printf("\tRenderer Test memory at: %p\n", _testBuffer);
+#endif
+    
+    initEGL(0);
     
-//    init_buffer(_testBuffer, size, width, height, width * 
getBytesPerPixel());
+    init_buffer(_testBuffer, size, width, height, width * getBitsPerPixel());
 //    init(width, height);
     
     return true;
 }
 
+  /// Initializes the rendering buffer. The memory pointed by "mem" is not
+  /// owned by the renderer and init_buffer() may be called multiple times
+  /// when the buffer size changes, for example. However, bits_per_pixel must
+  /// remain the same. 
+  /// rowstride is the size, in bytes, of one row.
+  /// This method *must* be called prior to any other method of the class!
+void
+Renderer_ovg::init_buffer(unsigned char *mem, int size, int x, int y, int 
rowstride)
+{
+#if 0
+    assert(x > 0);
+    assert(y > 0);
+    
+    xres    = x;
+    yres    = y;
+    
+    m_rbuf.attach(mem, xres, yres, rowstride);
+    
+    // allocate pixel format accessor and renderer_base
+    m_pixf.reset(new PixelFormat(m_rbuf));
+    m_rbase.reset(new renderer_base(*m_pixf));  
+    
+    // by default allow drawing everywhere
+    set_invalidated_region_world();
+#endif
+}
+  
 Renderer *
 Renderer_ovg::startInternalRender(gnash::image::GnashImage&)
 {
+    
 }
 
 void
 Renderer_ovg::endInternalRender()
 {
+    
 }
 
 void
diff --git a/librender/Renderer_ovg.h b/librender/Renderer_ovg.h
index d7f60fb..46e1423 100644
--- a/librender/Renderer_ovg.h
+++ b/librender/Renderer_ovg.h
@@ -122,6 +122,7 @@ public:
 
     unsigned int getBitsPerPixel();
     bool initTestBuffer(unsigned width, unsigned height);
+    void init_buffer(unsigned char *mem, int size, int x, int y, int 
rowstride);
 
     // These methods are only for debugging and development
     void printVGParams();
@@ -201,8 +202,8 @@ public:
     float _height;
   
     // Output size.
-    float m_display_width;
-    float m_display_height;
+    float _display_width;
+    float _display_height;
   
     std::vector<PathVec> _masks;
     bool _drawing_mask;

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


commit 0bbf779f767e9bb8413c5f41a120af97b05a6225
Author: Rob Savoye <address@hidden>
Date:   Fri Oct 29 10:27:57 2010 -0600

    test the new accesors

diff --git a/librender/test_egl.cpp b/librender/test_egl.cpp
index 619a2e5..85b3667 100644
--- a/librender/test_egl.cpp
+++ b/librender/test_egl.cpp
@@ -67,6 +67,8 @@ main(int argc, char *argv[])
 #ifdef RENDERER_OPENVG
     test_egl(egl1, EGLDevice::OPENVG);
     egl1.printEGLConfig();
+    egl1.printEGLContext();
+    egl1.printEGLSurface();
 #endif
     
 #ifdef RENDERER_GLES1
@@ -118,6 +120,41 @@ test_egl(EGLDevice &egl, EGLDevice::rtype_t rtype)
         runtest.fail("EGLDevice::getErrorString()");
     }
     
+    if (egl.getWidth()) {
+        runtest.pass("EGLDevice::getWidth()");
+    } else {
+        runtest.fail("EGLDevice::getWidth()");
+    }
+    
+    if (egl.getHeigth()) {
+        runtest.pass("EGLDevice::getHeigth()");
+    } else {
+        runtest.fail("EGLDevice::getHeigth()");
+    }
+    
+    if (egl.getVerticalRes()) {
+        runtest.pass("EGLDevice::getVerticalRes()");
+    } else {
+        runtest.fail("EGLDevice::getVerticalRes()");
+    }
+    
+    if (egl.getHorzRes()) {
+        runtest.pass("EGLDevice::getHorzRes()");
+    } else {
+        runtest.fail("EGLDevice::getHorzRes()");
+    }
+    
+    if (egl.supportsRenderer(EGLDevice::OPENVG)) {
+        runtest.pass("EGLDevice::supportsRenderer()");
+    } else {
+        runtest.fail("EGLDevice::supportsRenderer()");
+    }
+    
+    if (egl.isSingleBuffered() != egl.isBackBuffered()) {
+        runtest.pass("EGLDevice::isSingleBuffered()");
+    } else {
+        runtest.fail("EGLDevice::isSingleBuffered()");
+    }
 }
 
 // Local Variables:

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


commit 20e2816e06944cdae24120dfce9e022d8ff10c13
Author: Rob Savoye <address@hidden>
Date:   Fri Oct 29 10:27:32 2010 -0600

    add accesors for EGL config data. Use cerr instead of log_debug for 
debugging so it always prints. Use Gdk instead of Xlib for display stuff

diff --git a/librender/eglDevice.cpp b/librender/eglDevice.cpp
index 5c7817d..d269d42 100644
--- a/librender/eglDevice.cpp
+++ b/librender/eglDevice.cpp
@@ -295,17 +295,21 @@ EGLDevice::initDevice(EGLDevice::rtype_t rtype)
     }
 
 #ifdef HAVE_GTK2_XX
-    Display *X11Display = XOpenDisplay(0);
-    XVisualInfo *visInfo, visTemplate;
-    int num_visuals;
-    // The X window visual must match the EGL config
-   visTemplate.visualid = vid;
-   visInfo = XGetVisualInfo(X11Display, VisualIDMask, &visTemplate, 
&num_visuals);
-   if (!visInfo) {
-       log_error("couldn't get X visual");
-       return false;
-   }
-   XFree(visInfo);
+    GdkVisual* wvisual = gdk_drawable_get_visual(_drawing_area->window);
+
+    GdkImage* tmpimage = gdk_image_new (GDK_IMAGE_FASTEST, wvisual, 1, 1);
+
+    const GdkVisual* visual = tmpimage->visual;
+
+    // FIXME: we use bpp instead of depth, because depth doesn't appear to
+    // include the padding byte(s) the GdkImage actually has.
+    const char *pixelformat = agg_detect_pixel_format(
+        visual->red_shift, visual->red_prec,
+        visual->green_shift, visual->green_prec,
+        visual->blue_shift, visual->blue_prec,
+        tmpimage->bpp * 8);
+
+    gdk_image_destroy(tmpimage);
 #endif
     
    // printEGLConfig(_eglConfig);
@@ -337,6 +341,9 @@ EGLDevice::initEGL(EGLNativeWindowType window)
     
     if (!window) {
 #if HAVE_GTK2
+        // This renders to the root screen, instead of the canvas, but keeps
+        // the test case from core dumping, and doesn't really effect anything
+        // but seeing that you are rendering.
         _nativeWindow = gdk_x11_get_default_root_xwindow();
 #endif
     } else {
@@ -590,15 +597,16 @@ EGLDevice::printEGLContext(EGLContext context)
 {
     EGLint value;
     eglQueryContext(_eglDisplay, context, EGL_CONFIG_ID, &value);
-    log_debug("Context EGL_CONFIG_ID is %d", value);
+    std::cerr << "Context EGL_CONFIG_ID is " << value << std::endl;
     eglQueryContext(_eglDisplay, context, EGL_CONTEXT_CLIENT_TYPE, &value);
-    log_debug("\tEGL_CONTEXT_CLIENT_TYPE is %d", (value == EGL_OPENVG_API)
-              ? "EGL_OPENVG_API" : "EGL_OPENGL_ES_API");
+    std::cerr << "\tEGL_CONTEXT_CLIENT_TYPE is "
+              << std::string((value == EGL_OPENVG_API)
+              ? "EGL_OPENVG_API" : "EGL_OPENGL_ES_API") << std::endl;
     // eglQueryContext(_eglDisplay, context, EGL_CONTEXT_CLIENT_VERSION, 
&value);
     // log_debug("EGL_CONTEXT_CLIENT_VERSION is %d", value);
     eglQueryContext(_eglDisplay, context, EGL_RENDER_BUFFER, &value);
-    log_debug("\tEGL_RENDER_BUFFER is %s", (value == EGL_BACK_BUFFER)
-              ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER");
+    std::cerr << "\tEGL_RENDER_BUFFER is " << std::string((value == 
EGL_BACK_BUFFER)
+              ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER") << std::endl;
 }
 
 void
@@ -606,24 +614,26 @@ EGLDevice::printEGLSurface(EGLSurface surface)
 {
     EGLint value;
     eglQuerySurface(_eglDisplay, surface, EGL_CONFIG_ID, &value);
-    log_debug("Surface EGL_CONFIG_ID is %d", value);
+    std::cerr << "Surface EGL_CONFIG_ID is " << value << std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_HEIGHT, &value);
-    log_debug("\tEGL_HEIGHT is %d", value);
+    std::cerr << "\tEGL_HEIGHT is " << value<< std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_WIDTH, &value);
-    log_debug("\tEGL_WIDTH is %d", value);
+    std::cerr << "\tEGL_WIDTH is " << value << std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_RENDER_BUFFER, &value);
-    log_debug("\tEGL_RENDER_BUFFER is %s", (value == EGL_BACK_BUFFER)
-              ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER");
+    std::cerr << "\tEGL_RENDER_BUFFER is " << std::string((value == 
EGL_BACK_BUFFER)
+              ? "EGL_BACK_BUFFER" : "EGL_SINGLE_BUFFER") << std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_VERTICAL_RESOLUTION, &value);
-    log_debug("\tEGL_VERTICAL_RESOLUTION is %d", value);
+    std::cerr << "\tEGL_VERTICAL_RESOLUTION is " << value << std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_HORIZONTAL_RESOLUTION, &value);
-    log_debug("\tEGL_HORIZONTAL_RESOLUTION is %d", value);
+    std::cerr << "\tEGL_HORIZONTAL_RESOLUTION is " << value << std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_SWAP_BEHAVIOR, &value);
-    log_debug("\tEGL_SWAP_BEHAVIOR is %d", (value == EGL_BUFFER_DESTROYED)
-              ? "EGL_BUFFER_DESTROYED" : "EGL_BUFFER_PRESERVED");
+    std::cerr << "\tEGL_SWAP_BEHAVIOR is "
+              << std::string((value == EGL_BUFFER_DESTROYED)
+                 ? "EGL_BUFFER_DESTROYED" : "EGL_BUFFER_PRESERVED") << 
std::endl;
     eglQuerySurface(_eglDisplay, surface, EGL_MULTISAMPLE_RESOLVE, &value);
-    log_debug("\tEGL_MULTISAMPLE_RESOLVE is %d", (value == 
EGL_MULTISAMPLE_RESOLVE_BOX)
-              ? "EGL_MULTISAMPLE_RESOLVE_BOX" : 
"EGL_MULTISAMPLE_RESOLVE_DEFAULT");
+    std::cerr << "\tEGL_MULTISAMPLE_RESOLVE is "
+              << std::string((value == EGL_MULTISAMPLE_RESOLVE_BOX)
+                 ? "EGL_MULTISAMPLE_RESOLVE_BOX" : 
"EGL_MULTISAMPLE_RESOLVE_DEFAULT") << std::endl;
 }
 
 } // namespace renderer
diff --git a/librender/eglDevice.h b/librender/eglDevice.h
index 3df5c74..83c981b 100644
--- a/librender/eglDevice.h
+++ b/librender/eglDevice.h
@@ -70,9 +70,66 @@ class EGLDevice
     void printEGLContext(EGLContext context);
     void printEGLSurface() { return printEGLSurface(_eglSurface); };
     void printEGLSurface(EGLSurface surface);
+
+    // Accessors for the setting needed by higher level code
+    EGLint getWidth() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_WIDTH, &value);
+        return value;
+    };
+    EGLint getHeigth() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+        return value;
+    }
+    EGLint getVerticalRes() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_VERTICAL_RESOLUTION, 
&value);
+        return value;
+    }
+    EGLint getHorzRes() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_HORIZONTAL_RESOLUTION, 
&value);
+        return value;
+    }
+    bool supportsRenderer(rtype_t rtype) {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_HEIGHT, &value);
+        eglGetConfigAttrib(_eglDisplay, _eglConfig, EGL_RENDERABLE_TYPE, 
&value);
+        if (value > 0) {
+            std::string str;
+            if ((value & EGL_OPENGL_ES2_BIT) && (rtype == 
EGLDevice::OPENGLES2)) {
+                return true;
+            }
+            if ((value & EGL_OPENGL_ES_BIT) && (rtype == 
EGLDevice::OPENGLES1)) {
+                return true;
+            }
+            if ((value & EGL_OPENVG_BIT) && (rtype == EGLDevice::OPENVG)){
+                return true;
+            }
+        }
+        return false;
+    }
+    bool isSingleBuffered() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_SINGLE_BUFFER, &value);
+        if (value == EGL_SINGLE_BUFFER) {
+            return true;
+        }
+        return false;
+    }
     
-  private:
+    bool isBackBuffered() {
+        EGLint value;
+        eglQuerySurface(_eglDisplay, _eglSurface, EGL_BACK_BUFFER, &value);
+        if (value == EGL_BACK_BUFFER) {
+            return true;
+        }
+        return false;
+    }
+
     
+protected:
     EGLConfig           _eglConfig;
     EGLContext          _eglContext;
     EGLSurface          _eglSurface;

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


commit e0e2535a876e0b1e1a919d5014b49ff206493d96
Author: Rob Savoye <address@hidden>
Date:   Fri Oct 29 10:25:30 2010 -0600

    draw_poly is now drawPoly

diff --git a/librender/Renderer_ogl.cpp b/librender/Renderer_ogl.cpp
index b82a975..00a5374 100644
--- a/librender/Renderer_ogl.cpp
+++ b/librender/Renderer_ogl.cpp
@@ -809,7 +809,7 @@ public:
       }
   }
 
-  boost::shared_ptr<gnash::GnashTexture> getCachedTexture(image::GnashImage 
*frame)
+  boost::shared_ptr<GnashTexture> getCachedTexture(image::GnashImage *frame)
   {
       boost::shared_ptr<GnashTexture> texture;
       gnash::GnashTextureFormat frameFormat(frame->type());
@@ -1139,7 +1139,7 @@ public:
 
   // NOTE: this implementation can't handle complex polygons (such as concave
   // polygons.
-  virtual void  draw_poly(const point* corners, size_t corner_count, 
+  virtual void  drawPoly(const point* corners, size_t corner_count, 
     const rgba& fill, const rgba& outline, const SWFMatrix& mat, bool /* 
masked */)
   {
     if (corner_count < 1) {

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

Summary of changes:
 librender/Renderer_ogl.cpp |    4 +-
 librender/Renderer_ovg.cpp |   71 +++++++++++++++++++++++++++-----
 librender/Renderer_ovg.h   |    5 +-
 librender/eglDevice.cpp    |   64 +++++++++++++++++------------
 librender/eglDevice.h      |   59 ++++++++++++++++++++++++++-
 librender/test_egl.cpp     |   37 +++++++++++++++++
 librender/testr_gtk.cpp    |   97 ++++++++++++++++++++++++++++++++++++++++++--
 7 files changed, 290 insertions(+), 47 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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