[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash backend/render_handler.h ChangeLog
From: |
Udo Giacomozzi |
Subject: |
[Gnash-commit] gnash backend/render_handler.h ChangeLog |
Date: |
Fri, 13 Oct 2006 08:06:59 +0000 |
CVSROOT: /cvsroot/gnash
Module name: gnash
Changes by: Udo Giacomozzi <udog> 06/10/13 08:06:58
Modified files:
backend : render_handler.h
. : ChangeLog
Log message:
Added documentation
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1180&r2=1.1181
Patches:
Index: backend/render_handler.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- backend/render_handler.h 12 Oct 2006 18:59:00 -0000 1.7
+++ backend/render_handler.h 13 Oct 2006 08:06:58 -0000 1.8
@@ -35,11 +35,13 @@
//
//
-/* $Id: render_handler.h,v 1.7 2006/10/12 18:59:00 udog Exp $ */
+/* $Id: render_handler.h,v 1.8 2006/10/13 08:06:58 udog Exp $ */
#ifndef RENDER_HANDLER_H
#define RENDER_HANDLER_H
+/// \page render_handler_intro Render handler introduction
+///
/// Information for writing new render handlers:
///
/// There are two ways to write a new render handler:
@@ -122,6 +124,45 @@
/// (like the AGG backend does too).
+/// \page region_update Detection of updated regions
+///
+/// (this applies to the whole Gnash playback architecture)
+///
+/// After advancing the root movie (see Gui::advance_movie) it is checked
+/// which region of the stage has been changed visibly (by computing the
+/// bounds around updated characters). This has two advantages:
+///
+/// 1st, it allows a renderer/gui combination to avoid re-rendering of
+/// unchanged parts in the scene. When supported by the rendering engine
+/// this can be a huge performance gain. The original Flash player does
+/// that too, btw. Altough he is able to define multiple smaller regions
+/// for one frame. This could be implemented in Gnash, too.
+///
+/// 2nd, it can detect still frames (like a stopped movie). gui.cpp can
+/// detect these and completely avoids to call any rendering function.
+///
+/// Of course, the most critical part is detection of changes. There is a
+/// method called set_invalidated() which gets called whenever a critical
+/// property of a instance gets updated, like when it changes position, for
+/// example. It's really important to always call set_invalidated() whenever
+/// code is added that changes the character instance in a visible way.
+///
+/// Even if no renderer really uses this information it has effects when
+/// skipping unchanged frames. If necessary, this feature can be switched
+/// off easily in gui.cpp (maybe using a runtime option?).
+///
+/// Note the updated region is only passed to the GUI, which is itself
+/// responsible of informing the renderer. This is because it's pointless
+/// to have a renderer which updates only a small part of the stage when
+/// the GUI shows it all since the area aroung the region is undefined.
+/// However, there can be a GUI which supports update regions without needing
+/// the renderer to do so (for example, to save time during blitting).
+/// The GUI can also completely ignore the region information.
+///
+/// As for the integer/float discussion: I used rect (floats) because all
+/// the bounds calculation involves floats anyway and so it's probably
+/// faster than converting between ints and floats all the way.
+
#ifdef HAVE_CONFIG_H
#include "config.h"
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.1180
retrieving revision 1.1181
diff -u -b -r1.1180 -r1.1181
--- ChangeLog 13 Oct 2006 00:36:43 -0000 1.1180
+++ ChangeLog 13 Oct 2006 08:06:58 -0000 1.1181
@@ -1,7 +1,15 @@
+2006-10-13 Udo Giacomozzi <address@hidden>
+
+ * backend/render_handler.h: Added documentation
+
2006-10-13 Markus Gothe <address@hidden>
* macros/png.m4: Added pkg-config support.
+2006-10-12 Udo Giacomozzi <address@hidden>
+
+ * render_handler_agg.cpp, gui/fb.cpp: Implemented clipping for AGG
backend
+
2006-10-12 Rob Savoye <address@hidden>
* testsuite/libbase/Makefile.am: Redefine the check-DEJAGNU target
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash backend/render_handler.h ChangeLog,
Udo Giacomozzi <=