[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r12370: Simplify -R handling, make g
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r12370: Simplify -R handling, make gtk gui more robust on rendering handling. |
Date: |
Fri, 13 Aug 2010 00:27:56 +0200 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 12370
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Fri 2010-08-13 00:27:56 +0200
message:
Simplify -R handling, make gtk gui more robust on rendering handling.
Other guis seem just to be ignoring that switch... a RendererFactory would be
nice to think about
modified:
gui/gnash.cpp
gui/gtk/gtk_canvas.cpp
=== modified file 'gui/gnash.cpp'
--- a/gui/gnash.cpp 2010-08-12 21:50:47 +0000
+++ b/gui/gnash.cpp 2010-08-12 22:27:56 +0000
@@ -406,38 +406,12 @@
cout << rcfile.getFlashVersionString() << endl;
exit(EXIT_SUCCESS);
break;
- case 'M':
+ case 'M':
player.setMedia(parser.argument(i));
break;
-#if defined(RENDERER_AGG) || defined(RENDERER_OPENGL) ||
defined(RENDERER_CAIRO)
- case 'R':
- switch (parser.argument<char>(i)) {
- // See if a renderer was specified
-#ifdef RENDERER_AGG
- case 'a':
- // Enable AGG as the rendering backend
- player.setRenderer("agg");
- break;
-#endif
-#ifdef RENDERER_OPENGL
- case 'o':
- // Enable OpenGL as the rendering backend
- player.setRenderer("opengl");
- break;
-#endif
-#ifdef RENDERER_CAIRO
- case 'c':
- // Enable Cairo as the rendering backend
- player.setRenderer("cairo");
- break;
-#endif
- default:
- gnash::log_error(_("ERROR: -R (--Renderer) must be
followed by "
- "agg, opengl, or cairo"));
- break;
- }
- break;
-#endif // any RENDERER_* set
+ case 'R':
+ player.setRenderer(parser.argument(i));
+ break;
case 'r':
renderflag = true;
switch (parser.argument<char>(i)) {
=== modified file 'gui/gtk/gtk_canvas.cpp'
--- a/gui/gtk/gtk_canvas.cpp 2010-08-04 08:50:32 +0000
+++ b/gui/gtk/gtk_canvas.cpp 2010-08-12 22:27:56 +0000
@@ -215,7 +215,7 @@
#elif defined (RENDERER_CAIRO)
renderer = "cairo";
#elif defined (RENDERER_OGL)
- renderer = "ogl";
+ renderer = "opengl";
#endif
}
@@ -229,27 +229,36 @@
// Global enable VA-API, if requested
gnash::vaapi_set_is_enabled(hwaccel == "vaapi");
#endif
+
// Use the Cairo renderer. Cairo is also used by GTK2, so using
// Cairo makes much sense. Unfortunately, our implementation seems
// to have serious performance issues, although it does work.
+ if (renderer == "cairo") {
#ifdef RENDERER_CAIRO
- if (renderer == "cairo") {
canvas->glue.reset(new gnash::GtkCairoGlue);
+#else
+ boost::format fmt = boost::format("Support for renderer %1% "
+ " was not built") % renderer;
+ throw gnash::GnashException(fmt.str());
+#endif
}
-#endif
+ else if (renderer == "opengl") {
#ifdef RENDERER_OPENGL
- if (renderer == "opengl") {
canvas->glue.reset(new gnash::GtkGlExtGlue);
+#else
+ boost::format fmt = boost::format("Support for renderer %1% "
+ " was not built") % renderer;
+ throw gnash::GnashException(fmt.str());
+#endif
+ }
+ else if (renderer == "agg") {
// Use the AGG software library for rendering. While this runs
// on any hardware platform, it does have performance issues
// on low-end platforms without a GPU. So while AGG may render
// streaming video over a network connection just fine,
// anything below about 600Mhz CPU may have buffering and
// rendering performance issues.
- }
-#endif
- if (renderer == "agg") {
// Use LibVva, which works on Nvidia, AT, or Intel 965 GPUs
// with AGG or OpenGL.
#ifdef HAVE_VA_VA_H
@@ -267,12 +276,21 @@
// Set the hardware acclerator to the next one to try
// if initializing fails.
} else
-#endif
+#endif // HAVE_XV
{
canvas->glue.reset(new gnash::GtkAggGlue);
}
+#else // ndef RENDERER_AGG
+ boost::format fmt = boost::format("Support for renderer %1% "
+ "was not built") % renderer;
+ throw gnash::GnashException(fmt.str());
#endif
}
+ else {
+ boost::format fmt = boost::format("Non-existent renderer %1% "
+ "specified") % renderer;
+ throw gnash::GnashException(fmt.str());
+ }
// Initialize the canvas for rendering into
initialized_renderer = canvas->glue->init(argc, argv);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r12370: Simplify -R handling, make gtk gui more robust on rendering handling.,
Sandro Santilli <=