[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog backend/render_handler_cairo.cp...,
Sandro Santilli <=