[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./configure.ac gui/Makefile.am gui/README...
From: |
Bastiaan Jacques |
Subject: |
[Gnash-commit] gnash ./configure.ac gui/Makefile.am gui/README... |
Date: |
Fri, 12 May 2006 00:23:04 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Bastiaan Jacques <address@hidden> 06/05/12 00:23:04
Modified files:
. : configure.ac
gui : Makefile.am README gnash.cpp gtk.cpp gtksup.h
gui.h sdl.cpp sdlsup.h
Log message:
(Forgot to commit the modified files in my last commit)
* configure.ac: Use GTK as the default GUI.
* gui/gtk_glue.h, gui/gtk_glue_cairo.{cpp,h},
gui/gtk_glue_gtkglext.{cpp,h}: Introduce an abstraction class
for Gtkglext and "GtkCairo" which connect (glue) GTK to the OpenGL
and Cairo renderers, respectively.
* gui/Makefile.am: Build the appropriate glue.
* gui/README: Deprecate the SDL-based Firefox plugin.
* gui/{gnash.cpp,gui.h,sdl.cpp}: No longer handle the OpenGL LOD bias
parameter. It is now handled in the glue class.
* gui/{gtk.cpp,gtksup.h}: Migrate to the new glue.
* gui/gui.h: No longer handle the OpenGL LOD bias parameter.
* gui/sdl.cpp: Scale mouse event coordinates according to the movie
scale.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/configure.ac.diff?tr1=1.72&tr2=1.73&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/Makefile.am.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/README.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gnash.cpp.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gtk.cpp.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gtksup.h.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gui.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/sdl.cpp.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/sdlsup.h.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnash/configure.ac
diff -u gnash/configure.ac:1.72 gnash/configure.ac:1.73
--- gnash/configure.ac:1.72 Thu May 11 09:34:43 2006
+++ gnash/configure.ac Fri May 12 00:23:04 2006
@@ -143,7 +143,7 @@
sdl|SDL) gui=sdl ;;
*) AC_MSG_ERROR([invalid gui ${enableval} given]) ;;
esac],
- [gui=sdl]
+ [gui=gtk]
)
case "${gui}" in
gtk) AC_DEFINE([GUI_GTK], [1], [Use GTK gui]) ;;
Index: gnash/gui/Makefile.am
diff -u gnash/gui/Makefile.am:1.2 gnash/gui/Makefile.am:1.3
--- gnash/gui/Makefile.am:1.2 Sun May 7 15:33:08 2006
+++ gnash/gui/Makefile.am Fri May 12 00:23:04 2006
@@ -111,10 +111,22 @@
$(PTHREAD_LIBS)
+if USE_RENDERER_OPENGL
+GTK_GTKGL_SRCS = gtk_glue_gtkglext.cpp gtk_glue_gtkglext.h
+else
+GTK_GTKGL_SRCS =
+endif
+
+if USE_RENDERER_CAIRO
+GTK_CAIRO_SRCS = gtk_glue_cairo.cpp gtk_glue_cairo.h
+else
+GTK_CAIRO_SRCS =
+endif
+
if HAS_GTK2
-GTK_SRCS = gtk.cpp gtksup.h
+GTK_SRCS = gtk.cpp gtksup.h $(GTK_CAIRO_SRCS) $(GTK_GTKGL_SRCS)
else
GTK_SRCS =
endif
Index: gnash/gui/README
diff -u gnash/gui/README:1.2 gnash/gui/README:1.3
--- gnash/gui/README:1.2 Sun May 7 15:33:08 2006
+++ gnash/gui/README Fri May 12 00:23:04 2006
@@ -37,8 +37,9 @@
- OpenGL and Cairo.
- Mouse events work (keyboard events don't).
- There's no pop-up menu (and there probably never will be one).
-- Firefox plugin doesn't work, and I don't know why. The call to
- SDL_SetVideoMode makes X throw an error.
+- The Firefox plugin is not available for this frontend, because
+ implementing it would develop a dependency on GTK2.
+
QT:
- Unimplemented. (Klash plugin may still work.)
Index: gnash/gui/gnash.cpp
diff -u gnash/gui/gnash.cpp:1.6 gnash/gui/gnash.cpp:1.7
--- gnash/gui/gnash.cpp:1.6 Thu May 11 09:45:44 2006
+++ gnash/gui/gnash.cpp Fri May 12 00:23:04 2006
@@ -94,7 +94,7 @@
bool do_render = true, do_sound = false, sdl_abort = true,
background = true, do_loop = true;
unsigned int delay = 0;
- float tex_lod_bias = -1.2f, scale = 1.0f, exit_timeout = 0;
+ float scale = 1.0f, exit_timeout = 0;
long int width = 0, height = 0;
#if defined(RENDERER_CAIRO)
unsigned int bit_depth = 32;
@@ -122,7 +122,7 @@
dbglogfile.setWriteDisk(false);
- while ((c = getopt (argc, argv, "hvaps:cfd:m:x:r:t:b:1ewj:k:u:")) != -1) {
+ while ((c = getopt (argc, argv, "hvaps:cfd:x:r:t:b:1ewj:k:u:")) != -1) {
switch (c) {
case 'h':
usage ();
@@ -175,9 +175,12 @@
case 'x':
windowid = strtol(optarg, NULL, 0);
break;
+#if 0
+ // This option is parsed in GtkGlExtGlue::init().
case 'm':
tex_lod_bias = (float) atof(optarg);
break;
+#endif
case '1':
do_loop = false;
break;
@@ -278,10 +281,6 @@
}
#endif
-#if defined(RENDERER_OPENGL) && defined(FIX_I810_LOD_BIAS)
- gui->setLodBias(tex_lod_bias);
-#endif
-
gui.init(argc, &argv);
gui.createWindow(width, height);
Index: gnash/gui/gtk.cpp
diff -u gnash/gui/gtk.cpp:1.6 gnash/gui/gtk.cpp:1.7
--- gnash/gui/gtk.cpp:1.6 Wed May 10 21:21:16 2006
+++ gnash/gui/gtk.cpp Fri May 12 00:23:04 2006
@@ -53,16 +53,6 @@
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
-#ifdef RENDERER_OPENGL
-# include <gtk/gtkgl.h>
-# include <GL/gl.h>
-# include <GL/glu.h>
-#elif defined(RENDERER_CAIRO)
-# include <cairo.h>
-# if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 8
-# include "gtk_cairo_create.h"
-# endif
-#endif
@@ -73,15 +63,11 @@
GtkGui::~GtkGui()
{
-#ifdef RENDERER_CAIRO
- cairo_destroy(_cairo_handle);
-#endif
}
GtkGui::GtkGui(unsigned long xid, float scale, bool loop, unsigned int depth)
: Gui(xid, scale, loop, depth)
{
-
}
@@ -92,35 +78,9 @@
gtk_init (&argc, argv);
-#ifdef RENDERER_OPENGL
- gtk_gl_init (&argc, argv);
- gint major, minor;
- gdk_gl_query_version (&major, &minor);
- dbglogfile << "OpenGL extension version - "
- << (int)major << "." << (int)minor << endl;
-
- GdkGLConfigMode glcmode = (GdkGLConfigMode)(GDK_GL_MODE_RGB |
- GDK_GL_MODE_DEPTH |
- GDK_GL_MODE_DOUBLE);
- _glconfig = gdk_gl_config_new_by_mode (glcmode);
-
- if (!_glconfig) {
- dbglogfile << "Cannot find the double-buffered visual." << endl;
- dbglogfile << "Trying single-buffered visual." << endl;
-
- glcmode = (GdkGLConfigMode)(GDK_GL_MODE_RGB | GDK_GL_MODE_DEPTH);
- _glconfig = gdk_gl_config_new_by_mode (glcmode);
- if (!_glconfig) {
- dbglogfile << "No appropriate OpenGL-capable visual found." << endl;
- gtk_main_quit();
- } else {
- dbglogfile << "Got single-buffered visual." << endl;
- }
- } else {
- dbglogfile << "Got double-buffered visual." << endl;
- }
-#endif
+ glue.init (argc, argv);
+
return true;
}
@@ -146,10 +106,8 @@
gtk_widget_set_size_request(_drawing_area, width, height);
}
-#ifdef RENDERER_OPENGL
- assert(gtk_widget_set_gl_capability(_drawing_area, _glconfig,
- NULL, TRUE, GDK_GL_RGBA_TYPE));
-#endif
+ glue.prepDrawingArea(_drawing_area);
+
createMenu();
setupEvents();
@@ -161,21 +119,7 @@
gtk_widget_show(_drawing_area);
gtk_widget_show(_window);
-#ifdef RENDERER_OPENGL
- GdkGLContext *glcontext = gtk_widget_get_gl_context (_drawing_area);
- GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
-
- // Attach our OpenGL context to the _drawing_area.
- assert (gdk_gl_drawable_make_current(gldrawable, glcontext));
-
- _renderer = create_render_handler_ogl();
-# ifdef FIX_I810_LOD_BIAS
- glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT,
_tex_lod_bias);
-# endif
-#elif defined (RENDERER_CAIRO)
- _cairo_handle = gdk_cairo_create (_drawing_area->window);
- _renderer = create_render_handler_cairo((void*)_cairo_handle);
-#endif
+ _renderer = glue.createRenderHandler();
set_render_handler(_renderer);
@@ -185,14 +129,7 @@
void
GtkGui::renderBuffer()
{
-#ifdef RENDERER_OPENGL
- GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
- if (gdk_gl_drawable_is_double_buffered (gldrawable)) {
- gdk_gl_drawable_swap_buffers (gldrawable);
- } else {
- glFlush();
- }
-#endif
+ glue.render();
}
void
@@ -594,7 +531,7 @@
return true;
}
-#ifdef RENDERER_OPENGL
+#if 0
void
GtkGui::print_gl_config_attrib (GdkGLConfig *glconfig,
const gchar *attrib_str,
@@ -658,14 +595,11 @@
g_print ("\n");
}
-#endif // RENDERER_OPENGL
-
void
GtkGui::drawTestGraphic()
{
GNASH_REPORT_FUNCTION;
-#ifdef RENDERER_OPENGL
GdkGLContext *glcontext = gtk_widget_get_gl_context (_drawing_area);
GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
@@ -713,10 +647,9 @@
glFlush();
}
gdk_gl_drawable_gl_end (gldrawable);
-#endif // RENDERER_OPENGL
+
}
-#if 0
// This is actually an Xt event handler, not a GTK one.
/// \brief Handle X events
Index: gnash/gui/gtksup.h
diff -u gnash/gui/gtksup.h:1.5 gnash/gui/gtksup.h:1.6
--- gnash/gui/gtksup.h:1.5 Wed May 10 09:22:35 2006
+++ gnash/gui/gtksup.h Fri May 12 00:23:04 2006
@@ -48,8 +48,10 @@
#ifdef RENDERER_OPENGL
#include <gtk/gtkgl.h>
+#include "gtk_glue_gtkglext.h"
#elif defined(RENDERER_CAIRO)
#include <cairo.h>
+#include "gtk_glue_cairo.h"
#endif
#include <gtk/gtk.h>
@@ -57,6 +59,7 @@
#include "log.h"
#include "gui.h"
+
namespace gnash
{
@@ -73,14 +76,9 @@
virtual void resizeWindow();
virtual bool createMenu();
virtual bool setupEvents();
- virtual void drawTestGraphic();
virtual void renderBuffer();
virtual void setCallback(callback_t f, unsigned int interval);
virtual void setTimeout(unsigned int timeout);
-#if defined(RENDERER_OPENGL) && defined(FIX_I810_LOD_BIAS)
- virtual void setLodBias(float tex_lod_bias);
-#endif
-
// Menu Item callbacks
@@ -123,7 +121,7 @@
static gint popup_handler(GtkWidget *widget, GdkEvent *event);
// GtkGLExt utility functions
-#if RENDERER_OPENGL
+#if 0
void print_gl_config_attrib (GdkGLConfig *glconfig,
const gchar *attrib_str,
int attrib, gboolean is_boolean);
@@ -135,9 +133,12 @@
GtkMenu *_popup_menu;
#ifdef RENDERER_CAIRO
cairo_t *_cairo_handle;
+ GtkCairoGlue glue;
#elif defined(RENDERER_OPENGL)
GdkGLConfig *_glconfig;
+ GtkGlExtGlue glue;
#endif
+
};
Index: gnash/gui/gui.h
diff -u gnash/gui/gui.h:1.2 gnash/gui/gui.h:1.3
--- gnash/gui/gui.h:1.2 Sun May 7 15:33:08 2006
+++ gnash/gui/gui.h Fri May 12 00:23:04 2006
@@ -96,9 +96,6 @@
callback_t _mouse_handler;
callback_t _heyboard_handler;
render_handler* _renderer;
-#if defined(RENDERER_OPENGL) && defined(FIX_I810_LOD_BIAS)
- float _tex_lod_bias;
-#endif
};
Index: gnash/gui/sdl.cpp
diff -u gnash/gui/sdl.cpp:1.3 gnash/gui/sdl.cpp:1.4
--- gnash/gui/sdl.cpp:1.3 Tue May 9 00:21:53 2006
+++ gnash/gui/sdl.cpp Fri May 12 00:23:04 2006
@@ -97,8 +97,8 @@
switch (event.type) {
case SDL_MOUSEMOTION:
- _mouse_x = (int) (event.motion.x /*/ s_scale*/); // XXX
- _mouse_y = (int) (event.motion.y /*/ s_scale*/); // XXX
+ _mouse_x = (int) (event.motion.x / _scale);
+ _mouse_y = (int) (event.motion.y / _scale);
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
@@ -138,6 +138,13 @@
{
GNASH_REPORT_FUNCTION;
+#ifdef FIX_I810_LOD_BIAS
+ int c = getopt (argc, argv, "m:");
+ if (c == 'm') {
+ _tex_lod_bias = (float) atof(optarg);
+ }
+#endif
+
if (_xid) {
char SDL_windowhack[32];
sprintf (SDL_windowhack,"SDL_WINDOWID=%ld", _xid);
Index: gnash/gui/sdlsup.h
diff -u gnash/gui/sdlsup.h:1.1 gnash/gui/sdlsup.h:1.2
--- gnash/gui/sdlsup.h:1.1 Sun May 7 15:33:08 2006
+++ gnash/gui/sdlsup.h Fri May 12 00:23:04 2006
@@ -81,6 +81,9 @@
unsigned char *_render_image;
#endif
bool _core_trap;
+#ifdef FIX_I810_LOD_BIAS
+ float _tex_lod_bias;
+#endif
};
// void xt_event_handler(Widget xtwidget, gpointer instance,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ./configure.ac gui/Makefile.am gui/README...,
Bastiaan Jacques <=