gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash server/impl.cpp ./configure.ac ./ChangeLo...


From: Rob Savoye
Subject: [Gnash-commit] gnash server/impl.cpp ./configure.ac ./ChangeLo...
Date: Sat, 13 May 2006 05:45:28 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         
Changes by:     Rob Savoye <address@hidden>     06/05/13 05:45:27

Modified files:
        server         : impl.cpp 
        .              : configure.ac ChangeLog 
        gui            : gnash.cpp gtk.cpp gtk_glue_gtkglext.cpp 
                         gtksup.h gui.cpp gui.h kde.cpp 
                         kde_glue_opengl.cpp kdesup.h sdl.cpp sdlsup.h 

Log message:
        * configure.ac: Enable conditional for KDE.
        * gui/gnash.cpp: Reduce delay to 300 ms.
        * gui/gtk.cpp: Add support for configure event, so we can resize
        the viewport.
        * gui/gtk_glue_gtkglext.cpp: Unreference _glconfig and glcontext
        so Firefox doesn't crash.
        * gui/gtksup.h: Add unrealize event, remove resizeWindow.
        * gui/gui.cpp: Add method to resize the viewport.
        * gui/gui.h: Add method to resize the viewport.
        * gui/kde.cpp: Use setGeometry() instead of resize(). Handle the
        resize event, and mouse events.
        * gui/kde_glue_opengl.cpp: Set the view so it's oriented
        correctly.
        * gui/kdesup.h: Add mouse event handlers.
        * gui/sdl.cpp: Remove resizeWindow().
        * gui/sdlsup.h: Remove resizeWindow().
        * server/impl.cpp: Don't assert, return NULL if not initilized so
        we can use this to check the state.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/impl.cpp.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/configure.ac.diff?tr1=1.76&tr2=1.77&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.313&tr2=1.314&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gnash.cpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gtk.cpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gtk_glue_gtkglext.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gtksup.h.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/gui.cpp.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.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/kde.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/kde_glue_opengl.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/kdesup.h.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/sdl.cpp.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/gui/sdlsup.h.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.313 gnash/ChangeLog:1.314
--- gnash/ChangeLog:1.313       Sat May 13 00:48:39 2006
+++ gnash/ChangeLog     Sat May 13 05:45:27 2006
@@ -9,6 +9,25 @@
 
 2006-05-12 Rob Savoye <address@hidden>
 
+       * configure.ac: Enable conditional for KDE.
+       * gui/gnash.cpp: Reduce delay to 300 ms.
+       * gui/gtk.cpp: Add support for configure event, so we can resize
+       the viewport.
+       * gui/gtk_glue_gtkglext.cpp: Unreference _glconfig and glcontext
+       so Firefox doesn't crash.
+       * gui/gtksup.h: Add unrealize event, remove resizeWindow.
+       * gui/gui.cpp: Add method to resize the viewport. 
+       * gui/gui.h: Add method to resize the viewport.
+       * gui/kde.cpp: Use setGeometry() instead of resize(). Handle the
+       resize event, and mouse events.
+       * gui/kde_glue_opengl.cpp: Set the view so it's oriented
+       correctly.
+       * gui/kdesup.h: Add mouse event handlers.
+       * gui/sdl.cpp: Remove resizeWindow().
+       * gui/sdlsup.h: Remove resizeWindow().
+       * server/impl.cpp: Don't assert, return NULL if not initilized so
+       we can use this to check the state.
+       
        * gui/kde.cpp: New file for KDE support.
        * gui/kde_glue.h: New file for KDE support.
        * gui/kde_glue_opengl.cpp: New file for KDE support.
Index: gnash/configure.ac
diff -u gnash/configure.ac:1.76 gnash/configure.ac:1.77
--- gnash/configure.ac:1.76     Fri May 12 22:17:29 2006
+++ gnash/configure.ac  Sat May 13 05:45:27 2006
@@ -60,7 +60,7 @@
 AC_PATH_KDE
 KDE_USE_QT(3)
 AM_CONDITIONAL(KLASH, test x$klash = xyes)
-dnl AM_CONDITIONAL(HAS_KDE, test x$kde = xyes)
+AM_CONDITIONAL(HAS_KDE, test x$kde = xyes)
 
 dnl Add KFLASH support, if specified.
 AC_ARG_ENABLE(fork, [  --disable-fork           Use a thread instead forking 
the standalone player.],
Index: gnash/gui/gnash.cpp
diff -u gnash/gui/gnash.cpp:1.9 gnash/gui/gnash.cpp:1.10
--- gnash/gui/gnash.cpp:1.9     Sat May 13 00:36:50 2006
+++ gnash/gui/gnash.cpp Sat May 13 05:45:27 2006
@@ -314,7 +314,7 @@
     m->set_background_alpha(background ? 1.0f : 0.05f);
 
     if (!delay) {
-      delay = (unsigned int) (400 / movie_fps) ; // milliseconds per frame
+      delay = (unsigned int) (300 / movie_fps) ; // milliseconds per frame
     }
     gui.setCallback(NULL, delay);
 
Index: gnash/gui/gtk.cpp
diff -u gnash/gui/gtk.cpp:1.9 gnash/gui/gtk.cpp:1.10
--- gnash/gui/gtk.cpp:1.9       Sat May 13 00:36:50 2006
+++ gnash/gui/gtk.cpp   Sat May 13 05:45:27 2006
@@ -53,8 +53,6 @@
 #include <gdk/gdkx.h>
 
 
-
-
 using namespace std;
 
 namespace gnash 
@@ -121,7 +119,7 @@
     _renderer = glue.createRenderHandler();
 
     set_render_handler(_renderer);
-
+    
     return true;
 }
 
@@ -152,12 +150,6 @@
     return true;
 }
 
-void
-GtkGui::resizeWindow()
-{
-    GNASH_REPORT_FUNCTION;
-}
-
 bool
 GtkGui::createMenu()
 {
@@ -233,13 +225,7 @@
   g_signal_connect(G_OBJECT(_window), "key_press_event",
                    G_CALLBACK(key_press_event), this);
 
- //   g_signal_connect(G_OBJECT (_drawing_area), "configure_event",
- //                    G_CALLBACK (configure_event), NULL);
-
- // g_signal_connect(G_OBJECT (_drawing_area), "expose_event",
- //                  G_CALLBACK (expose_event), this);
-
-  gtk_widget_add_events(_drawing_area, GDK_EXPOSURE_MASK
+   gtk_widget_add_events(_drawing_area, GDK_EXPOSURE_MASK
                         | GDK_BUTTON_PRESS_MASK
                         | GDK_BUTTON_RELEASE_MASK
                         | GDK_KEY_RELEASE_MASK
@@ -258,7 +244,15 @@
   g_signal_connect(G_OBJECT(_drawing_area), "motion_notify_event",
                    G_CALLBACK(motion_notify_event), this);
   
-  
+  g_signal_connect_after(G_OBJECT (_drawing_area), "realize",
+                         G_CALLBACK (realize_event), NULL);
+  g_signal_connect(G_OBJECT (_drawing_area), "configure_event",
+                   G_CALLBACK (configure_event), NULL);
+//   g_signal_connect(G_OBJECT (_drawing_area), "expose_event",
+//                    G_CALLBACK (expose_event), NULL);
+//   g_signal_connect(G_OBJECT (_drawing_area), "unrealize",
+//                           G_CALLBACK (unrealize_event), NULL);
+
   return true;
 }
 
@@ -267,7 +261,7 @@
 gint
 GtkGui::popup_handler(GtkWidget *widget, GdkEvent *event)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     
     GtkMenu *menu;
     GdkEventButton *event_button;
@@ -289,7 +283,7 @@
 void
 GtkGui::menuitem_restart_callback(GtkMenuItem *menuitem, gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_restart();
 }
 
@@ -297,7 +291,7 @@
 void
 GtkGui::menuitem_quit_callback(GtkMenuItem *menuitem, gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
 
     gtk_main_quit();
 }
@@ -306,7 +300,7 @@
 void
 GtkGui::menuitem_play_callback(GtkMenuItem *menuitem, gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_play();
 }
 
@@ -315,7 +309,7 @@
 GtkGui::menuitem_pause_callback(GtkMenuItem * menuitem,
                         gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_pause();
 }
 
@@ -324,7 +318,7 @@
 GtkGui::menuitem_stop_callback(GtkMenuItem *menuitem,
                        gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_stop();
 }
 
@@ -333,7 +327,7 @@
 GtkGui::menuitem_step_forward_callback(GtkMenuItem *menuitem,
                                gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_step_forward();
 }
 
@@ -342,7 +336,7 @@
 GtkGui::menuitem_step_backward_callback(GtkMenuItem *menuitem,
                                 gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_step_backward();
 }
 
@@ -351,7 +345,7 @@
 GtkGui::menuitem_jump_forward_callback(GtkMenuItem *menuitem,
                                gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_jump_forward();
 }
 
@@ -360,7 +354,7 @@
 GtkGui::menuitem_jump_backward_callback(GtkMenuItem *menuitem,
                                 gpointer data)
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     menu_jump_backward();
 }
 
@@ -368,6 +362,59 @@
 // Event handlers
 //
 
+gboolean
+GtkGui::expose_event(GtkWidget *const widget,
+             GdkEventExpose *const event,
+             const gpointer data)
+{
+    GNASH_REPORT_FUNCTION;
+
+    GdkGLDrawable *const gldrawable = gtk_widget_get_gl_drawable(widget);
+    g_assert(gldrawable);
+    GdkGLContext *const glcontext = gtk_widget_get_gl_context(widget);
+    g_assert(glcontext);
+
+    if (event->count == 0
+        && gdk_gl_drawable_make_current(gldrawable, glcontext)) {
+    }
+    
+   return TRUE;
+}
+
+gboolean
+GtkGui::configure_event(GtkWidget *const widget,
+                GdkEventConfigure *const event,
+                const gpointer data)
+{
+    GNASH_REPORT_FUNCTION;
+
+    GdkGLContext *glcontext = gtk_widget_get_gl_context (widget);
+    GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget);
+    if (gdk_gl_drawable_make_current(gldrawable, glcontext)) {
+        glViewport (event->x, event->y, event->width, event->height);
+    }
+    
+    resize_view(event->width, event->height);
+
+    return TRUE;
+}
+
+gboolean
+GtkGui::unrealize_event(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+    GNASH_REPORT_FUNCTION;
+    
+    return TRUE;
+}
+
+gboolean
+GtkGui::realize_event(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+    GNASH_REPORT_FUNCTION;
+
+    return TRUE;
+}
+
 // Shut everything down and exit when we're destroyed as a window
 gboolean
 GtkGui::delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
@@ -384,8 +431,6 @@
                 GdkEventKey *const event,
                 const gpointer data)
 {
-
-
     GNASH_REPORT_FUNCTION;
 
     switch (event->keyval) {
@@ -471,8 +516,8 @@
 
 gboolean
 GtkGui::button_press_event(GtkWidget *const widget,
-                   GdkEventButton *const event,
-                   const gpointer data)
+                           GdkEventButton *const event,
+                           const gpointer data)
 {
     GNASH_REPORT_FUNCTION;
 
@@ -489,8 +534,8 @@
 
 gboolean
 GtkGui::button_release_event(GtkWidget * const widget,
-                     GdkEventButton * const event,
-                     const gpointer data)
+                             GdkEventButton * const event,
+                             const gpointer data)
 {
     GNASH_REPORT_FUNCTION;
     Gui *obj = static_cast<Gui *>(data);
@@ -507,8 +552,8 @@
 
 gboolean
 GtkGui::motion_notify_event(GtkWidget *const widget,
-                    GdkEventMotion *const event,
-                    const gpointer data)
+                            GdkEventMotion *const event,
+                            const gpointer data)
 {
 //    GNASH_REPORT_FUNCTION;
     Gui *obj = static_cast<Gui *>(data);
@@ -520,222 +565,6 @@
     return true;
 }
 
-#if 0
-void
-GtkGui::print_gl_config_attrib (GdkGLConfig *glconfig,
-                        const gchar *attrib_str,
-                        int          attrib,
-                        gboolean     is_boolean)
-{
-  int value;
-
-  g_print ("%s = ", attrib_str);
-  if (gdk_gl_config_get_attrib (glconfig, attrib, &value))
-    {
-      if (is_boolean)
-        g_print ("%s\n", value == TRUE ? "TRUE" : "FALSE");
-      else
-        g_print ("%d\n", value);
-    }
-  else
-    g_print ("*** Cannot get %s attribute value\n", attrib_str);
-}
-
-void
-GtkGui::examine_gl_config_attrib (GdkGLConfig *glconfig)
-{
-  g_print ("\nOpenGL visual configurations :\n\n");
-
-  g_print ("gdk_gl_config_is_rgba (glconfig) = %s\n",
-           gdk_gl_config_is_rgba (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_is_double_buffered (glconfig) = %s\n",
-           gdk_gl_config_is_double_buffered (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_is_stereo (glconfig) = %s\n",
-           gdk_gl_config_is_stereo (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_has_alpha (glconfig) = %s\n",
-           gdk_gl_config_has_alpha (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_has_depth_buffer (glconfig) = %s\n",
-           gdk_gl_config_has_depth_buffer (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_has_stencil_buffer (glconfig) = %s\n",
-           gdk_gl_config_has_stencil_buffer (glconfig) ? "TRUE" : "FALSE");
-  g_print ("gdk_gl_config_has_accum_buffer (glconfig) = %s\n",
-           gdk_gl_config_has_accum_buffer (glconfig) ? "TRUE" : "FALSE");
-
-  g_print ("\n");
-
-  print_gl_config_attrib (glconfig, "GDK_GL_USE_GL",           GDK_GL_USE_GL,  
         TRUE);
-  print_gl_config_attrib (glconfig, "GDK_GL_BUFFER_SIZE",      
GDK_GL_BUFFER_SIZE,      FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_LEVEL",            GDK_GL_LEVEL,   
         FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_RGBA",             GDK_GL_RGBA,    
         TRUE);
-  print_gl_config_attrib (glconfig, "GDK_GL_DOUBLEBUFFER",     
GDK_GL_DOUBLEBUFFER,     TRUE);
-  print_gl_config_attrib (glconfig, "GDK_GL_STEREO",           GDK_GL_STEREO,  
         TRUE);
-  print_gl_config_attrib (glconfig, "GDK_GL_AUX_BUFFERS",      
GDK_GL_AUX_BUFFERS,      FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_RED_SIZE",         
GDK_GL_RED_SIZE,         FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_GREEN_SIZE",       
GDK_GL_GREEN_SIZE,       FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_BLUE_SIZE",        
GDK_GL_BLUE_SIZE,        FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_ALPHA_SIZE",       
GDK_GL_ALPHA_SIZE,       FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_DEPTH_SIZE",       
GDK_GL_DEPTH_SIZE,       FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_STENCIL_SIZE",     
GDK_GL_STENCIL_SIZE,     FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_ACCUM_RED_SIZE",   
GDK_GL_ACCUM_RED_SIZE,   FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_ACCUM_GREEN_SIZE", 
GDK_GL_ACCUM_GREEN_SIZE, FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_ACCUM_BLUE_SIZE",  
GDK_GL_ACCUM_BLUE_SIZE,  FALSE);
-  print_gl_config_attrib (glconfig, "GDK_GL_ACCUM_ALPHA_SIZE", 
GDK_GL_ACCUM_ALPHA_SIZE, FALSE);
-
-  g_print ("\n");
-}
-
-
-void
-GtkGui::drawTestGraphic()
-{
-    GNASH_REPORT_FUNCTION;
-    GdkGLContext *glcontext = gtk_widget_get_gl_context (_drawing_area);
-    GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
-    
-    GLUquadricObj *qobj;
-    static GLfloat light_diffuse[] = {1.0, 0.0, 0.0, 1.0};
-    static GLfloat light_position[] = {1.0, 1.0, 1.0, 0.0};
-    
-    // OpenGL BEGIN
-    if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) {
-        dbglogfile << "ERROR: Couldn't start drawable!" << endl;
-        return;
-    }
-    
-    qobj = gluNewQuadric ();
-    gluQuadricDrawStyle (qobj, GLU_FILL);
-    glNewList (1, GL_COMPILE);
-    gluSphere (qobj, 1.0, 20, 20);
-    glEndList ();
-    
-    glLightfv (GL_LIGHT0, GL_DIFFUSE, light_diffuse);
-    glLightfv (GL_LIGHT0, GL_POSITION, light_position);
-    glEnable (GL_LIGHTING);
-    glEnable (GL_LIGHT0);
-    glEnable (GL_DEPTH_TEST);
-    
-    glClearColor (1.0, 1.0, 1.0, 1.0);
-    glClearDepth (1.0);
-    
-    glViewport (0, 0, _width, _height);
-    
-    glMatrixMode (GL_PROJECTION);
-    glLoadIdentity ();
-    gluPerspective (40.0, 1.0, 1.0, 10.0);
-    
-    glMatrixMode (GL_MODELVIEW);
-    glLoadIdentity ();
-    gluLookAt (0.0, 0.0, 3.0,
-               0.0, 0.0, 0.0,
-               0.0, 1.0, 0.0);
-    glTranslatef (0.0, 0.0, -3.0);
-    
-    if (gdk_gl_drawable_is_double_buffered (gldrawable)) {
-        gdk_gl_drawable_swap_buffers (gldrawable);
-    } else {
-        glFlush();
-    }    
-    gdk_gl_drawable_gl_end (gldrawable);    
-
-}
-
-// This is actually an Xt event handler, not a GTK one.
-
-/// \brief Handle X events
-///
-/// This C function handles events from X, like keyboard events, or
-/// Expose events that we're interested in.
-void
-xt_event_handler(Widget xtwidget, nsPluginInstance *plugin,
-                XEvent *xevent, Boolean *b)
-{
-    GNASH_REPORT_FUNCTION;
-
-    int        keycode;
-    KeySym     keysym;
-#if 0
-    SDL_Event  sdl_event;
-    SDL_keysym sdl_keysym;
-
-    //    handleKeyPress((SDL_keysym)keysym);
-    log_msg("Peep Event returned %d", SDL_PeepEvents(&sdl_event, 1, 
SDL_PEEKEVENT, 
SDL_USEREVENT|SDL_ACTIVEEVENT|SDL_KEYDOWN|SDL_KEYUP|SDL_MOUSEBUTTONUP|SDL_MOUSEBUTTONDOWN));
-  
-    if (SDL_PollEvent(&sdl_event)) {
-        switch(sdl_event.type) {
-          case SDL_ACTIVEEVENT:
-          case SDL_VIDEORESIZE:
-          case SDL_KEYDOWN:
-              /* handle key presses */
-              handleKeyPress( &sdl_event.key.keysym );
-              break;
-          default:
-              break;
-      
-        }
-    }
-#endif
-  
-    switch (xevent->type) {
-      case Expose:
-          // get rid of all other exposure events
-          if (plugin) {
-//           if (_glInitialized) {
-//               plugin->setGL();
-// #ifdef TEST_GRAPHIC
-//               plugin->drawTestScene();
-//               plugin->swapBuffers();
-//               plugin->freeX();
-// #else
-//               gnash::movie_interface *m = gnash::get_current_root();
-//               if (m != NULL) {
-//                   m->display();
-//               }
-// #endif
-//               log_msg("Drawing GL Scene for expose event!");
-//           } else {
-                 log_msg("GL Surface not initialized yet, ignoring expose 
event!");
-//           }
-          }
-          break;
-      case ButtonPress:
-//     fe.type = FeButtonPress;
-          log_msg("Button Press");
-          break;
-      case ButtonRelease:
-          //     fe.type = FeButtonRelease;
-          log_msg("Button Release");
-          break;
-      case KeyPress:
-          keycode = xevent->xkey.keycode;
-               plugin->lockX();
-          keysym = XLookupKeysym((XKeyEvent*)xevent, 0);
-          log_msg ("%s(%d): Keysym is %s", __PRETTY_FUNCTION__, __LINE__,
-                  XKeysymToString(keysym));
-               plugin->freeX();
-
-          switch (keysym) {
-            case XK_Up:
-                log_msg("Key Up");
-                break;
-            case XK_Down:
-                log_msg("Key Down");
-                break;
-            case XK_Left:
-                log_msg("Key Left");
-                break;
-            case XK_Right:
-                log_msg("Key Right");
-                break;
-            case XK_Return:
-                log_msg("Key Return");
-                break;
-      
-            default:
-                break;
-          }
-    }
-}
-#endif
 
 // end of namespace gnash
 }
Index: gnash/gui/gtk_glue_gtkglext.cpp
diff -u gnash/gui/gtk_glue_gtkglext.cpp:1.2 gnash/gui/gtk_glue_gtkglext.cpp:1.3
--- gnash/gui/gtk_glue_gtkglext.cpp:1.2 Fri May 12 04:34:51 2006
+++ gnash/gui/gtk_glue_gtkglext.cpp     Sat May 13 05:45:27 2006
@@ -38,6 +38,7 @@
 #include "gtk_glue_gtkglext.h"
 #include "log.h"
 
+const float OVERSIZE = 1.0f;
 
 using namespace std;
 
@@ -50,15 +51,28 @@
   : tex_lod_bias(-1.2f)
 #endif
 {
+//    GNASH_REPORT_FUNCTION;
 }
 
 GtkGlExtGlue::~GtkGlExtGlue()
 {
+//    GNASH_REPORT_FUNCTION;
+    if (_glconfig) {
+        g_object_unref (G_OBJECT (_glconfig));
+        _glconfig = NULL;
+    }
+    
+    GdkGLContext *glcontext = gtk_widget_get_gl_context (_drawing_area);
+    if (glcontext) {
+       g_object_unref (G_OBJECT (glcontext));
+       glcontext = NULL;
+    }
 }
 
 bool
 GtkGlExtGlue::init(int argc, char **argv[])
 {
+//    GNASH_REPORT_FUNCTION;
 #ifdef FIX_I810_LOD_BIAS
     int c = getopt (argc, argv, "m:");
     if (c == 'm') {
@@ -93,7 +107,7 @@
     } else {
       dbglogfile << "Got double-buffered visual." << endl;
     }
-
+    
     return true;
 }
 
@@ -101,6 +115,7 @@
 void
 GtkGlExtGlue::prepDrawingArea(GtkWidget *drawing_area)
 {
+//    GNASH_REPORT_FUNCTION;
     _drawing_area = drawing_area;
     gtk_widget_set_gl_capability(_drawing_area, _glconfig,
                                  NULL, TRUE, GDK_GL_RGBA_TYPE);
@@ -109,6 +124,7 @@
 render_handler*
 GtkGlExtGlue::createRenderHandler()
 {
+//    GNASH_REPORT_FUNCTION;
     GdkGLContext *glcontext = gtk_widget_get_gl_context (_drawing_area);
     GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
 
@@ -120,12 +136,35 @@
 #ifdef FIX_I810_LOD_BIAS
     glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, 
_tex_lod_bias);
 #endif
-  return renderer;
+
+    // Turn on alpha blending.
+    glEnable(GL_BLEND);
+    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    
+    // Turn on line smoothing.  Antialiased lines can be used to
+    // smooth the outsides of shapes.
+    glEnable(GL_LINE_SMOOTH);
+    glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); // GL_NICEST, GL_FASTEST, 
GL_DONT_CARE
+    
+    glMatrixMode(GL_PROJECTION);
+    glOrtho(-OVERSIZE, OVERSIZE, OVERSIZE, -OVERSIZE, -1, 1);
+    glMatrixMode(GL_MODELVIEW);
+    glLoadIdentity();
+    
+    // We don't need lighting effects
+    glDisable(GL_LIGHTING);
+    // glColorPointer(4, GL_UNSIGNED_BYTE, 0, *);
+    // glInterleavedArrays(GL_T2F_N3F_V3F, 0, *)
+    glPushAttrib (GL_ALL_ATTRIB_BITS);
+    
+    return renderer;
 }
 
 void
 GtkGlExtGlue::render()
 {
+//    GNASH_REPORT_FUNCTION;
+    
     GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (_drawing_area);
     if (gdk_gl_drawable_is_double_buffered (gldrawable)) {
         gdk_gl_drawable_swap_buffers (gldrawable);
Index: gnash/gui/gtksup.h
diff -u gnash/gui/gtksup.h:1.8 gnash/gui/gtksup.h:1.9
--- gnash/gui/gtksup.h:1.8      Sat May 13 00:36:50 2006
+++ gnash/gui/gtksup.h  Sat May 13 05:45:27 2006
@@ -72,7 +72,6 @@
     virtual bool init(int argc, char **argv[]);
     virtual bool createWindow(int width, int height);
     virtual bool run(void *arg);    
-    virtual void resizeWindow();
     virtual bool createMenu();
     virtual bool setupEvents();
     virtual void renderBuffer();
@@ -101,32 +100,26 @@
                                          gpointer instance);
 
     // GTK Event handlers
+    static gboolean unrealize_event(GtkWidget *widget, GdkEvent *event,
+                                    gpointer data);
     static gboolean realize_event(GtkWidget *widget, GdkEvent *event,
                                   gpointer data);
     static gboolean delete_event(GtkWidget *widget, GdkEvent *event,
                                  gpointer data);
     static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event,
-                          gpointer data);
+                                 gpointer data);
     static gboolean configure_event(GtkWidget *widget, GdkEventConfigure 
*event,
-                             gpointer data);
+                                    gpointer data);
     static gboolean key_press_event(GtkWidget *widget, GdkEventKey *event,
-                             gpointer data);
+                                    gpointer data);
     static gboolean button_press_event(GtkWidget *widget, GdkEventButton 
*event,
-                                gpointer data);
+                                       gpointer data);
     static gboolean button_release_event(GtkWidget *widget, GdkEventButton 
*event,
-                                  gpointer data);
+                                         gpointer data);
     static gboolean motion_notify_event(GtkWidget *widget, GdkEventMotion 
*event,
-                                 gpointer data);
-    static gint popup_handler(GtkWidget *widget, GdkEvent *event);
-    
-    // GtkGLExt utility functions
-#if 0
-    void print_gl_config_attrib (GdkGLConfig *glconfig,
-                                 const gchar *attrib_str,
-                                 int attrib, gboolean is_boolean);
-    void examine_gl_config_attrib (GdkGLConfig *glconfig);
-#endif
-private:
+                                        gpointer data);
+    static gint popup_handler(GtkWidget *widget, GdkEvent *event);    
+ private:
     GtkWidget   *_window;
     GtkWidget   *_drawing_area;    
     GtkMenu     *_popup_menu;
Index: gnash/gui/gui.cpp
diff -u gnash/gui/gui.cpp:1.5 gnash/gui/gui.cpp:1.6
--- gnash/gui/gui.cpp:1.5       Sat May 13 00:36:50 2006
+++ gnash/gui/gui.cpp   Sat May 13 05:45:27 2006
@@ -119,9 +119,19 @@
 }
 
 void
+Gui::resize_view(int width, int height)
+{
+//    GNASH_REPORT_FUNCTION;
+    movie_interface* m = get_current_root();
+    if (m) {
+        m->set_display_viewport(0, 0, width, height);
+    }
+}
+
+void
 Gui::menu_quit()
 {
-    GNASH_REPORT_FUNCTION;
+//    GNASH_REPORT_FUNCTION;
     exit(0);
 }
 
@@ -191,9 +201,9 @@
     
     Gui *gui = reinterpret_cast<Gui*> (data);
     gnash::movie_interface* m = gnash::get_current_root();
-    
+
     m->notify_mouse_state(gui->getMouseX(), gui->getMouseY(), 
gui->getMouseButtons());
-    
+
     m->advance(1.0);
     m->display();
     
Index: gnash/gui/gui.h
diff -u gnash/gui/gui.h:1.5 gnash/gui/gui.h:1.6
--- gnash/gui/gui.h:1.5 Sat May 13 00:36:50 2006
+++ gnash/gui/gui.h     Sat May 13 05:45:27 2006
@@ -66,7 +66,6 @@
     bool createWindow(int xid, int width, int height);    
     virtual bool createWindow(int width, int height) = 0;
     virtual bool run(void *) = 0;
-    virtual void resizeWindow() = 0;
     virtual bool createMenu() = 0;
     virtual bool setupEvents() = 0;
     virtual void renderBuffer() = 0;
@@ -94,6 +93,7 @@
     static void menu_jump_forward();
     static void menu_jump_backward();
     static bool advance_movie(void *data);
+    static void resize_view(int width, int height);
 
 protected:
     bool            _loop;
Index: gnash/gui/kde.cpp
diff -u gnash/gui/kde.cpp:1.1 gnash/gui/kde.cpp:1.2
--- gnash/gui/kde.cpp:1.1       Sat May 13 00:36:50 2006
+++ gnash/gui/kde.cpp   Sat May 13 05:45:27 2006
@@ -61,11 +61,6 @@
 namespace gnash 
 {
 
-// KdeGui::KdeGui()
-// {
-// //    GNASH_REPORT_FUNCTION;
-// }
-
 KdeGui::KdeGui(WId embed)
 {
 //    GNASH_REPORT_FUNCTION;
@@ -129,7 +124,7 @@
 
     _qwidget = new KdeGui(_xid);
     _qwidget->makeCurrent();
-    _qwidget->resize(width, height);
+    _qwidget->setGeometry(0, 0, width, height);
     _qwidget->show();
 
     _glue.prepDrawingArea(_qwidget);
@@ -138,7 +133,7 @@
     _height = height;
     _renderer = _glue.createRenderHandler();
     set_render_handler(_renderer);
-
+    
     return true;
 }
 
@@ -198,12 +193,6 @@
     return true;
 }
 
-void
-KdeGui::resizeWindow()
-{
-    GNASH_REPORT_FUNCTION;
-}
-
 bool
 KdeGui::createMenu()
 {
@@ -215,7 +204,7 @@
 bool
 KdeGui::setupEvents()
 {
-//  GNASH_REPORT_FUNCTION;
+  GNASH_REPORT_FUNCTION;
 
   return true;
 }
@@ -298,12 +287,43 @@
 // Event handlers
 //
 
-void KdeGui::resizeEvent(QResizeEvent *event)
+void
+KdeGui::resizeEvent(QResizeEvent *event)
 {
 //    GNASH_REPORT_FUNCTION;
-//    _qwidget->resize(width, height);
-//    this->resize(width, height);
+    resize_view(int(event->size().width()), int(event->size().height()));
+    
+}
+
+void
+KdeGui::mouseMoveEvent(QMouseEvent *event)
+{
+    GNASH_REPORT_FUNCTION;
+//    mouseHandle(event->pos());
 }
 
+
+void
+KdeGui::mousePressEvent(QMouseEvent *event)
+{
+    GNASH_REPORT_FUNCTION;
+//     if (event->button() == QMouseEvent::LeftButton) {
+//         mouseHandle( event->pos() );
+//     }
+}
+
+void
+KdeGui::mouseHandle(const QPoint &pos)
+{
+    GNASH_REPORT_FUNCTION;
+    
+//     int i = pos2index(pos.x() );
+//     int j = pos2index(pos.y() );
+//    setPoint( i, j );
+}
+
+
+
+
 // end of namespace gnash
 }
Index: gnash/gui/kde_glue_opengl.cpp
diff -u gnash/gui/kde_glue_opengl.cpp:1.1 gnash/gui/kde_glue_opengl.cpp:1.2
--- gnash/gui/kde_glue_opengl.cpp:1.1   Sat May 13 00:36:50 2006
+++ gnash/gui/kde_glue_opengl.cpp       Sat May 13 05:45:27 2006
@@ -40,6 +40,7 @@
 
 using namespace std;
 
+const float OVERSIZE = 1.0f;
 
 namespace gnash
 {
@@ -86,7 +87,27 @@
 #ifdef FIX_I810_LOD_BIAS
     glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, 
_tex_lod_bias);
 #endif
-  return renderer;
+    // Turn on alpha blending.
+    glEnable(GL_BLEND);
+    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    
+    // Turn on line smoothing.  Antialiased lines can be used to
+    // smooth the outsides of shapes.
+    glEnable(GL_LINE_SMOOTH);
+    glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); // GL_NICEST, GL_FASTEST, 
GL_DONT_CARE
+    
+    glMatrixMode(GL_PROJECTION);
+    glOrtho(-OVERSIZE, OVERSIZE, OVERSIZE, -OVERSIZE, -1, 1);
+    glMatrixMode(GL_MODELVIEW);
+    glLoadIdentity();
+    
+    // We don't need lighting effects
+    glDisable(GL_LIGHTING);
+    // glColorPointer(4, GL_UNSIGNED_BYTE, 0, *);
+    // glInterleavedArrays(GL_T2F_N3F_V3F, 0, *)
+    glPushAttrib (GL_ALL_ATTRIB_BITS);
+    
+    return renderer;
 }
 
 void
Index: gnash/gui/kdesup.h
diff -u gnash/gui/kdesup.h:1.1 gnash/gui/kdesup.h:1.2
--- gnash/gui/kdesup.h:1.1      Sat May 13 00:36:50 2006
+++ gnash/gui/kdesup.h  Sat May 13 05:45:27 2006
@@ -80,7 +80,6 @@
     virtual bool init(int argc, char **argv[]);
     virtual bool createWindow(int width, int height);
     virtual bool run(void *arg);
-    virtual void resizeWindow();
     virtual bool createMenu();
     virtual bool setupEvents();
     virtual void renderBuffer();
@@ -106,6 +105,10 @@
     void resizeEvent(QResizeEvent *event);
     void timerEvent(QTimerEvent *event);
     void contextMenuEvent(QContextMenuEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseHandle(const QPoint &pos);
+    
 signals:
     void explain(const QString&);
 private:
Index: gnash/gui/sdl.cpp
diff -u gnash/gui/sdl.cpp:1.6 gnash/gui/sdl.cpp:1.7
--- gnash/gui/sdl.cpp:1.6       Sat May 13 00:36:50 2006
+++ gnash/gui/sdl.cpp   Sat May 13 05:45:27 2006
@@ -285,12 +285,6 @@
     _interval = interval;
 }
 
-void
-SDLGui::resizeWindow()
-{
-    GNASH_REPORT_FUNCTION;
-}
-
 bool
 SDLGui::createMenu()
 {
Index: gnash/gui/sdlsup.h
diff -u gnash/gui/sdlsup.h:1.4 gnash/gui/sdlsup.h:1.5
--- gnash/gui/sdlsup.h:1.4      Sat May 13 00:36:50 2006
+++ gnash/gui/sdlsup.h  Sat May 13 05:45:27 2006
@@ -62,7 +62,6 @@
     virtual bool init(int argc, char **argv[]);
     virtual bool createWindow(int width, int height);
     virtual bool run(void *arg);
-    virtual void resizeWindow();
     virtual bool createMenu();
     virtual bool setupEvents();
     virtual void renderBuffer();
Index: gnash/server/impl.cpp
diff -u gnash/server/impl.cpp:1.36 gnash/server/impl.cpp:1.37
--- gnash/server/impl.cpp:1.36  Tue May  9 17:43:38 2006
+++ gnash/server/impl.cpp       Sat May 13 05:45:27 2006
@@ -516,7 +516,7 @@
 
 movie_interface* get_current_root()
 {
-    assert(s_current_root != NULL);
+//    assert(s_current_root != NULL);
     return s_current_root;
 }
 




reply via email to

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