[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash server/impl.cpp ./configure.ac ./ChangeLo...,
Rob Savoye <=