gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog backend/render_handler_cairo.cp...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog backend/render_handler_cairo.cp...
Date: Thu, 28 Sep 2006 08:00:24 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/09/28 08:00:23

Modified files:
        .              : ChangeLog 
        backend        : render_handler_cairo.cpp 
        gui            : gtk.cpp gtk_glue_cairo.cpp sdl.cpp 
        server         : gnash.h 
Added files:
        backend        : render_handler_cairo.h 

Log message:
                * backend/render_handler_cairo.cpp, 
backend/render_handler_cairo.h:
                  set up a renderer::cairo namespace, split renderer 
construction
                  and window association (to be able to create a renderere 
before
                  knowing width and height of the window)
                * server/gnash.h: commented out create_render_handler_cairo
                  (see render_handler_cairo.h for new interface)
                * gui/gtk_glue_cairo.cpp : moved cairo window association code
                  from createRenderHandler() to prepDrawingArea().
                * gui/gtk.cpp : moved glue.prepDrawingArea call *after* window
                  creation.
                * gui/sdl.cpp : updated call for cairo handler creation.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.945&r2=1.946
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_cairo.cpp?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_cairo.h?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk.cpp?cvsroot=gnash&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk_glue_cairo.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/sdl.cpp?cvsroot=gnash&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/gnash/server/gnash.h?cvsroot=gnash&r1=1.52&r2=1.53

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.945
retrieving revision 1.946
diff -u -b -r1.945 -r1.946
--- ChangeLog   28 Sep 2006 00:42:13 -0000      1.945
+++ ChangeLog   28 Sep 2006 08:00:23 -0000      1.946
@@ -1,3 +1,17 @@
+2006-09-28 Sandro Santilli  <address@hidden>
+
+       * backend/render_handler_cairo.cpp, backend/render_handler_cairo.h:
+         set up a renderer::cairo namespace, split renderer construction
+         and window association (to be able to create a renderere before
+         knowing width and height of the window)
+       * server/gnash.h: commented out create_render_handler_cairo
+         (see render_handler_cairo.h for new interface)
+       * gui/gtk_glue_cairo.cpp : moved cairo window association code
+         from createRenderHandler() to prepDrawingArea().
+       * gui/gtk.cpp : moved glue.prepDrawingArea call *after* window
+         creation.
+       * gui/sdl.cpp : updated call for cairo handler creation.
+
 2006-09-27 Markus Gothe <address@hidden>
        
        * plugin/Makefile.am: set path to top-dir.

Index: backend/render_handler_cairo.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_cairo.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- backend/render_handler_cairo.cpp    26 Sep 2006 15:08:06 -0000      1.9
+++ backend/render_handler_cairo.cpp    28 Sep 2006 08:00:23 -0000      1.10
@@ -16,7 +16,11 @@
 
 #include "log.h"
 
-using namespace gnash;
+//using namespace gnash;
+
+namespace gnash {
+namespace renderer {
+namespace cairo {
 
 static cairo_t* g_cr_win = 0;
 static cairo_t* g_cr = 0;
@@ -378,6 +382,9 @@
                g_cr_win = cairo_create(surface);
            }
 #endif
+
+           assert(g_cr_win);
+
            // Blit offscreen image onto output window 
            cairo_surface_t* offscreen = cairo_get_target(m_cr_offscreen);
            cairo_set_source_surface(g_cr_win, offscreen, 0, 0);
@@ -713,15 +720,28 @@
     m_pattern = cairo_pattern_create_for_surface(m_image);
 }
 
-gnash::render_handler* gnash::create_render_handler_cairo(void* cairohandle)
+render_handler*
+create_handler()
 // Factory.
 {
        //    GNASH_REPORT_FUNCTION;
-       g_cr_win = (cairo_t*) cairohandle;
+       //g_cr_win = (cairo_t*) cairohandle;
        return new render_handler_cairo();
 }
 
+void
+set_handle(cairo_t* handle)
+{
+       assert(handle);
+       assert(!g_cr_win);
+       g_cr_win = handle;
+}
+
+
 
+} // namespace gnash::renderer::cairo
+} // namespace gnash::renderer
+} // namespace gnash
 
 
 // Local Variables:

Index: gui/gtk.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- gui/gtk.cpp 23 Sep 2006 15:06:53 -0000      1.22
+++ gui/gtk.cpp 28 Sep 2006 08:00:23 -0000      1.23
@@ -185,8 +185,6 @@
       gtk_widget_set_size_request(_drawing_area, width, height);
     }
 
-    glue.prepDrawingArea(_drawing_area);
-
     createMenu();
     setupEvents();
 
@@ -198,6 +196,9 @@
     gtk_widget_show(_drawing_area);
     gtk_widget_show(_window);
 
+    /// cairo needs the _drawing_area.window to prepare it ..
+    glue.prepDrawingArea(_drawing_area);
+
     _renderer = glue.createRenderHandler();
 
     set_render_handler(_renderer);

Index: gui/gtk_glue_cairo.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk_glue_cairo.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- gui/gtk_glue_cairo.cpp      27 Jul 2006 14:54:43 -0000      1.4
+++ gui/gtk_glue_cairo.cpp      28 Sep 2006 08:00:23 -0000      1.5
@@ -36,6 +36,7 @@
 //
 
 #include "gtk_glue_cairo.h"
+#include "render_handler_cairo.h"
 
 #if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 8
 # include "gtk_cairo_create.h"
@@ -64,14 +65,19 @@
 GtkCairoGlue::prepDrawingArea(GtkWidget *drawing_area)
 {
     _drawing_area = drawing_area;
+    assert(_drawing_area);
+    assert(_drawing_area->window);
+    _cairo_handle = gdk_cairo_create (_drawing_area->window);
+    assert(_cairo_handle);
+    renderer::cairo::set_handle(_cairo_handle);
 }
 
 render_handler*
 GtkCairoGlue::createRenderHandler()
 {
-    _cairo_handle = gdk_cairo_create (_drawing_area->window);
-
-    return create_render_handler_cairo((void*)_cairo_handle);
+    //_cairo_handle = gdk_cairo_create (_drawing_area->window);
+    //return create_render_handler_cairo((void*)_cairo_handle);
+    return renderer::cairo::create_handler();
 }
 
 void

Index: gui/sdl.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/sdl.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- gui/sdl.cpp 25 Sep 2006 11:27:09 -0000      1.24
+++ gui/sdl.cpp 28 Sep 2006 08:00:23 -0000      1.25
@@ -44,6 +44,10 @@
 #include "log.h"
 #include "sdlsup.h"
 
+#ifdef RENDERER_CAIRO
+#include "render_handler_cairo.h"
+#endif // RENDERER_CAIRO
+
 #ifdef RENDERER_OPENGL
 
 #if defined(_WIN32) || defined(WIN32)
@@ -314,7 +318,8 @@
 
     _cairo_handle = cairo_create(_cairo_surface);
 
-    _renderer = create_render_handler_cairo((void*)_cairo_handle);
+    _renderer = renderer::cairo::create_handler();
+    renderer::cairo::set_handle(_cairo_handle);
 
 #elif defined (RENDERER_OPENGL)
     _renderer = create_render_handler_ogl();

Index: server/gnash.h
===================================================================
RCS file: /sources/gnash/gnash/server/gnash.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- server/gnash.h      27 Sep 2006 13:22:00 -0000      1.52
+++ server/gnash.h      28 Sep 2006 08:00:23 -0000      1.53
@@ -165,7 +165,7 @@
 // version of the library, depending on platform etc.
 DSOEXPORT render_handler*      create_render_handler_xbox();
 DSOEXPORT render_handler*      create_render_handler_ogl();
-DSOEXPORT render_handler*      create_render_handler_cairo(void* cairohandle);
+//DSOEXPORT render_handler*    create_render_handler_cairo(void* cairohandle);
 
 DSOEXPORT sound_handler*       create_sound_handler_sdl();
 DSOEXPORT sound_handler* create_sound_handler_gst();

Index: backend/render_handler_cairo.h
===================================================================
RCS file: backend/render_handler_cairo.h
diff -N backend/render_handler_cairo.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ backend/render_handler_cairo.h      28 Sep 2006 08:00:23 -0000      1.1
@@ -0,0 +1,57 @@
+// 
+//   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+// 
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+// Linking Gnash statically or dynamically with other modules is making a
+// combined work based on Gnash. Thus, the terms and conditions of the GNU
+// General Public License cover the whole combination.
+//
+// As a special exception, the copyright holders of Gnash give you
+// permission to combine Gnash with free software programs or libraries
+// that are released under the GNU LGPL and with code included in any
+// release of Talkback distributed by the Mozilla Foundation. You may
+// copy and distribute such a system following the terms of the GNU GPL
+// for all but the LGPL-covered parts and Talkback, and following the
+// LGPL for the LGPL-covered parts.
+//
+// Note that people who make modified versions of Gnash are not obligated
+// to grant this special exception for their modified versions; it is their
+// choice whether to do so. The GNU General Public License gives permission
+// to release a modified version without this exception; this exception
+// also makes it possible to release a modified version which carries
+// forward this exception.
+// 
+//
+
+#ifndef BACKEND_RENDER_HANDLER_CAIRO_H
+#define BACKEND_RENDER_HANDLER_CAIRO_H
+
+namespace gnash {
+namespace renderer {
+
+/// Cairo renderer namespace
+namespace cairo {
+
+/// Create a render handler
+gnash::render_handler* create_handler();
+
+/// Make sure to call this before starting display
+void set_handle(cairo_t* handle);
+
+} // namespace gnash::renderer::cairo
+} // namespace gnash::renderer
+} // namespace gnash
+
+#endif // BACKEND_RENDER_HANDLER_CAIRO_H




reply via email to

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