gnash-commit
[Top][All Lists]
Advanced

[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,




reply via email to

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