gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/swf/SetBackgroundColorTag.h


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/swf/SetBackgroundColorTag.h
Date: Fri, 23 Nov 2007 13:58:40 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/11/23 13:58:40

Modified files:
        .              : ChangeLog 
Added files:
        server/swf     : SetBackgroundColorTag.h 

Log message:
        Oops, forgot this

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4938&r2=1.4939
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/SetBackgroundColorTag.h?cvsroot=gnash&rev=1.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4938
retrieving revision 1.4939
diff -u -b -r1.4938 -r1.4939
--- ChangeLog   23 Nov 2007 13:25:04 -0000      1.4938
+++ ChangeLog   23 Nov 2007 13:58:39 -0000      1.4939
@@ -1,6 +1,7 @@
 2007-11-23 Sandro Santilli <address@hidden>
 
-       * server/: Makefile.am, impl.cpp, swf/tag_loaders.{cpp,h}:
+       * server/: Makefile.am, impl.cpp, swf/tag_loaders.{cpp,h},
+         swf/SetBackgroundColorTag.h:
          Extrapolated a SetBackgroundColorTag class out of tag_loaders.cpp
          into its own header file, cleaned up.
 

Index: server/swf/SetBackgroundColorTag.h
===================================================================
RCS file: server/swf/SetBackgroundColorTag.h
diff -N server/swf/SetBackgroundColorTag.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ server/swf/SetBackgroundColorTag.h  23 Nov 2007 13:58:39 -0000      1.1
@@ -0,0 +1,129 @@
+// 
+//   Copyright (C) 2007 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 3 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
+
+// 
+//
+//
+
+#ifndef GNASH_SWF_SETBACKGROUNDCOLOR_TAG_H
+#define GNASH_SWF_SETBACKGROUNDCOLOR_TAG_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "ControlTag.h" // for inheritance
+#include "swf.h" // for tag_type definition
+#include "action_buffer.h" // for composition
+#include "sprite_instance.h" // for inlines (execute)
+#include "movie_definition.h" // for inlines (loader)
+#include "log.h" // for log_parse
+#include "types.h" // for rgba class
+#include "utility.h" // for frnd
+
+// Forward declarations
+namespace gnash {
+       class stream;
+       class movie_definition;
+}
+
+namespace gnash {
+namespace SWF {
+
+/// SWF Tag SetBackgroundColor (9)
+//
+class SetBackgroundColorTag : public ControlTag
+{
+
+private:
+
+       /// Actual color. So far only RGB values are used,
+       /// as alpha is not encoded in the tag itself
+       rgba m_color;
+
+       /// Read SetBackgroundColorTag from the given stream
+       //
+       /// Tag header is assumed to have been read already
+       ///
+       /// Can throw ParserException on premature end of input stream
+       ///
+       void read(stream& in)
+       {
+               // may throw ParserException
+               m_color.read_rgb(&in);
+
+               IF_VERBOSE_PARSE (
+               log_parse(_("  SetBackgroundColor: %s"), 
m_color.toString().c_str());
+               );
+       }
+
+
+public:
+
+       /// \brief
+       /// Construct a SetBackgroundColorTag by reading it 
+       /// from the given SWF stream.
+       //
+       /// Tag header is assumed to have been read already
+       ///
+       /// Can throw ParserException on premature end of input stream
+       ///
+       SetBackgroundColorTag(stream& in)
+       {
+               read(in);
+       }
+
+       void execute(sprite_instance* m) const
+       {
+               float   current_alpha = m->get_background_alpha();
+               rgba newcolor = m_color; // to avoid making m_color mutable
+               newcolor.m_a = frnd(current_alpha * 255.0f);
+               m->set_background_color(newcolor);
+       }
+
+       void execute_state(sprite_instance* m) const
+       {
+               execute(m);
+       }
+
+       /// Set background color tag loader (SWF::SETBACKGROUNDCOLOR)
+       static void loader(stream* in, tag_type tag, movie_definition* m)
+       {
+               assert(tag == SWF::SETBACKGROUNDCOLOR); // 9
+               assert(m);
+               assert(in);
+
+               // this one may throw, we'll let caller catch it
+               SetBackgroundColorTag* t = new SetBackgroundColorTag(*in);
+               m->addControlTag(t); // takes ownership
+       }
+};
+
+
+
+
+} // namespace gnash::SWF
+} // namespace gnash
+
+
+#endif // GNASH_SWF_SETBACKGROUNDCOLOR_TAG_H
+
+
+// Local Variables:
+// mode: C++
+// indent-tabs-mode: t
+// End:




reply via email to

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