[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] [SCM] Gnash branch, openvg, updated. c3acfaa6095057e3e12916aaf829bbae13b98ec4,
Rob Savoye <=