gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...
Date: Thu, 24 Aug 2006 16:59:07 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/08/24 16:59:07

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp text.cpp text.h 
        server/parser  : Makefile.am text_character_def.h 
        server/swf     : tag_loaders.cpp 
Added files:
        server/parser  : text_character_def.cpp 

Log message:
        moved 'text_character_def' class under server/parser/

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.699&r2=1.700
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/server/text.cpp?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/server/text.h?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/Makefile.am?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/text_character_def.h?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/text_character_def.cpp?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.29&r2=1.30

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.699
retrieving revision 1.700
diff -u -b -r1.699 -r1.700
--- ChangeLog   24 Aug 2006 14:47:53 -0000      1.699
+++ ChangeLog   24 Aug 2006 16:59:07 -0000      1.700
@@ -1,3 +1,11 @@
+2006-08-24 Sandro Santilli  <address@hidden>
+
+       * server/sprite_instance.cpp, server/swf/tag_loader.cpp,
+         server/parser/text_character_def.h,
+         server/parser/text_character_def.cpp,
+         server/text.h, server/text.cpp:
+         moved 'text_character_def' class under server/parser/
+
 2006-08-24 Vitaly Alexeev <address@hidden>
        
        * server\URLAccessmanager.cpp, StreamProvider.cpp, dlist.cpp,

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/sprite_instance.cpp  24 Aug 2006 00:42:12 -0000      1.42
+++ server/sprite_instance.cpp  24 Aug 2006 16:59:07 -0000      1.43
@@ -56,7 +56,7 @@
 #include "movie_definition.h"
 #include "MovieClipLoader.h" // @@ temp hack for loading tests
 #include "as_function.h"
-#include "text.h"
+#include "text_character_def.h" // @@ temp hack for createTextField exp.
 #include "execute_tag.h"
 #include "fn_call.h"
 //#include "tu_random.h"

Index: server/text.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/text.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- server/text.cpp     13 Aug 2006 16:45:11 -0000      1.23
+++ server/text.cpp     24 Aug 2006 16:59:07 -0000      1.24
@@ -173,149 +173,6 @@
                }
        }
 
-       //
-       // text_character_def
-       // 
-
-       void text_character_def::read(stream* in, int tag_type,
-                       movie_definition* m)
-       {
-               assert(m != NULL);
-               assert(tag_type == 11 || tag_type == 33);
-
-               m_rect.read(in);
-               m_matrix.read(in);
-
-               int     glyph_bits = in->read_u8();
-               int     advance_bits = in->read_u8();
-
-               IF_VERBOSE_PARSE(
-               log_parse("begin text records");
-               );
-
-               bool    last_record_was_style_change = false;
-
-               text_style      style;
-               for (;;)
-               {
-                       int     first_byte = in->read_u8();
-                       
-                       if (first_byte == 0)
-                       {
-                               // This is the end of the text records.
-                               IF_VERBOSE_PARSE(
-                               log_parse("end text records");
-                               );
-                               break;
-                       }
-
-                       // Style changes and glyph records just alternate.
-                       // (Contrary to what most SWF references say!)
-                       if (last_record_was_style_change == false)
-                       {
-                               // This is a style change.
-
-                               last_record_was_style_change = true;
-
-                               bool    has_font = (first_byte >> 3) & 1;
-                               bool    has_color = (first_byte >> 2) & 1;
-                               bool    has_y_offset = (first_byte >> 1) & 1;
-                               bool    has_x_offset = (first_byte >> 0) & 1;
-
-                               IF_VERBOSE_PARSE(
-                               log_parse("  text style change");
-                               );
-
-                               if (has_font)
-                               {
-                                       uint16_t        font_id = 
in->read_u16();
-                                       style.m_font_id = font_id;
-                                       IF_VERBOSE_PARSE(
-                                       log_parse("  has_font: font id = %d", 
font_id);
-                                       );
-                               }
-                               if (has_color)
-                               {
-                                       if (tag_type == 11)
-                                       {
-                                               style.m_color.read_rgb(in);
-                                       }
-                                       else
-                                       {
-                                               assert(tag_type == 33);
-                                               style.m_color.read_rgba(in);
-                                       }
-                                       IF_VERBOSE_PARSE(
-                                       log_parse("  has_color");
-                                       );
-                               }
-                               if (has_x_offset)
-                               {
-                                       style.m_has_x_offset = true;
-                                       style.m_x_offset = in->read_s16();
-                                       IF_VERBOSE_PARSE(
-                                       log_parse("  has_x_offset = %g", 
style.m_x_offset);
-                                       );
-                               }
-                               else
-                               {
-                                       style.m_has_x_offset = false;
-                                       style.m_x_offset = 0.0f;
-                               }
-                               if (has_y_offset)
-                               {
-                                       style.m_has_y_offset = true;
-                                       style.m_y_offset = in->read_s16();
-                                       IF_VERBOSE_PARSE(
-                                       log_parse("  has_y_offset = %g", 
style.m_y_offset);
-                                       );
-                               }
-                               else
-                               {
-                                       style.m_has_y_offset = false;
-                                       style.m_y_offset = 0.0f;
-                               }
-                               if (has_font)
-                               {
-                                       style.m_text_height = in->read_u16();
-                                       IF_VERBOSE_PARSE(
-                                       log_parse("  text_height = %g", 
style.m_text_height);
-                                       );
-                               }
-                       }
-                       else
-                       {
-                               // Read the glyph record.
-
-                               last_record_was_style_change = false;
-
-                               int     glyph_count = first_byte;
-
-//                                     if (! last_record_was_style_change)
-//                                     {
-//                                             glyph_count &= 0x7F;
-//                                     }
-//                                     // else { Don't mask the top bit; the 
first record is allowed to have > 127 glyphs. }
-
-                               
m_text_glyph_records.resize(m_text_glyph_records.size() + 1);
-                               m_text_glyph_records.back().m_style = style;
-                               m_text_glyph_records.back().read(in, 
glyph_count, glyph_bits, advance_bits);
-
-                               IF_VERBOSE_PARSE(
-                               log_parse("  glyph_records: count = %d", 
glyph_count);
-                               );
-                       }
-               }
-       }
-
-       void text_character_def::display(character* inst)
-       {
-//             GNASH_REPORT_FUNCTION;
-               display_glyph_records(m_matrix, inst,
-                       m_text_glyph_records, m_root_def);
-       }
-
-
 }      // end namespace gnash
 
 

Index: server/text.h
===================================================================
RCS file: /sources/gnash/gnash/server/text.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/text.h       18 May 2006 15:17:57 -0000      1.9
+++ server/text.h       24 Aug 2006 16:59:07 -0000      1.10
@@ -105,33 +105,6 @@
                const std::vector<text_glyph_record>& records,
                movie_definition* root_def);
 
-       /// Text character 
-       //
-       /// This is either read from SWF stream 
-       /// or (hopefully) created with scripting
-       ///
-       struct text_character_def : public character_def
-       {
-               movie_definition*       m_root_def;
-               rect    m_rect;
-               matrix  m_matrix;
-               std::vector<text_glyph_record>  m_text_glyph_records;
-
-               text_character_def(movie_definition* root_def)
-                       :
-                       m_root_def(root_def)
-               {
-                       assert(m_root_def);
-               }
-
-               void read(stream* in, int tag_type, movie_definition* m);
-
-               /// Draw the string.
-               void display(character* inst);
-
-       };
-
-
 } // namespace gnash
 
 #endif // GNASH_TEXT_H

Index: server/parser/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/server/parser/Makefile.am,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- server/parser/Makefile.am   24 Aug 2006 00:57:20 -0000      1.1
+++ server/parser/Makefile.am   24 Aug 2006 16:59:07 -0000      1.2
@@ -70,6 +70,7 @@
        action_buffer.cpp \
        character_def.cpp \
        edit_text_character_def.cpp \
+       text_character_def.cpp \
        movie_def_impl.cpp \
        shape_character_def.cpp \
        sprite_definition.cpp 
@@ -79,6 +80,7 @@
        character_def.h \
        bitmap_character_def.h \
        edit_text_character_def.h \
+       text_character_def.h \
        movie_definition.h \
        movie_def_impl.h \
        shape_character_def.h \

Index: server/parser/text_character_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/text_character_def.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- server/parser/text_character_def.h  24 Aug 2006 00:57:20 -0000      1.1
+++ server/parser/text_character_def.h  24 Aug 2006 16:59:07 -0000      1.2
@@ -42,60 +42,14 @@
 #ifndef GNASH_PARSER_TEXT_CHARACTER_DEF_H
 #define GNASH_PARSER_TEXT_CHARACTER_DEF_H
 
+#include "character_def.h" // for inheritance
+#include "text.h" // for text_glyph_record
 #include "textformat.h" // maybe we should include it here
 #include "styles.h" 
 
 namespace gnash {
 
-// Forward declarations
-struct text_character_def; 
-struct text_glyph_record; 
-
-// Helper struct.
-// @@ text_character_def friend ?
-struct text_style
-{
-       int     m_font_id;
-       mutable const font*     m_font;
-       rgba    m_color;
-       float   m_x_offset;
-       float   m_y_offset;
-       float   m_text_height;
-       bool    m_has_x_offset;
-       bool    m_has_y_offset;
-
-       text_style()
-               :
-               m_font_id(-1),
-               m_font(NULL),
-               m_x_offset(0),
-               m_y_offset(0),
-               m_text_height(1.0f),
-               m_has_x_offset(false),
-               m_has_y_offset(false)
-       {
-       }
-
-       void    resolve_font(movie_definition* root_def) const;
-};
-
-
-// Helper struct.
-// @@ text_character_def friend ?
-struct text_glyph_record
-{
-       struct glyph_entry
-       {
-               int     m_glyph_index;
-               float   m_glyph_advance;
-       };
-       text_style      m_style;
-       std::vector<glyph_entry>        m_glyphs;
-
-       void read(stream* in, int glyph_count,
-               int glyph_bits, int advance_bits);
-
-};
+class movie_definition;
 
 /// Text character 
 //

Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- server/swf/tag_loaders.cpp  24 Aug 2006 08:24:36 -0000      1.29
+++ server/swf/tag_loaders.cpp  24 Aug 2006 16:59:07 -0000      1.30
@@ -70,7 +70,7 @@
 #include "swf.h"
 #include "swf/TagLoadersTable.h"
 #include "generic_character.h"
-#include "text.h" // for text_character_def
+#include "text_character_def.h" 
 #include "edit_text_character_def.h"
 #include "execute_tag.h" // for do_action inheritance (DOACTION tag loader)
 #include "URL.h"

Index: server/parser/text_character_def.cpp
===================================================================
RCS file: server/parser/text_character_def.cpp
diff -N server/parser/text_character_def.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ server/parser/text_character_def.cpp        24 Aug 2006 16:59:07 -0000      
1.1
@@ -0,0 +1,166 @@
+// text.cpp    -- Thatcher Ulrich <address@hidden> 2003
+
+// This source code has been donated to the Public Domain.  Do
+// whatever you want with it.
+
+// Code for the text tags.
+
+
+//#include "utf8.h"
+//#include "utility.h"
+//#include "impl.h"
+//#include "shape.h"
+//#include "shape_character_def.h"
+#include "stream.h"
+#include "log.h"
+//#include "font.h"
+//#include "fontlib.h"
+//#include "render.h"
+//#include "textformat.h"
+#include "text_character_def.h"
+//#include "movie_definition.h"
+
+namespace gnash {
+
+void text_character_def::read(stream* in, int tag_type,
+               movie_definition* m)
+{
+       assert(m != NULL);
+       assert(tag_type == 11 || tag_type == 33);
+
+       m_rect.read(in);
+       m_matrix.read(in);
+
+       int     glyph_bits = in->read_u8();
+       int     advance_bits = in->read_u8();
+
+       IF_VERBOSE_PARSE(
+       log_parse("begin text records");
+       );
+
+       bool    last_record_was_style_change = false;
+
+       text_style      style;
+       for (;;)
+       {
+               int     first_byte = in->read_u8();
+               
+               if (first_byte == 0)
+               {
+                       // This is the end of the text records.
+                       IF_VERBOSE_PARSE(
+                       log_parse("end text records");
+                       );
+                       break;
+               }
+
+               // Style changes and glyph records just alternate.
+               // (Contrary to what most SWF references say!)
+               if (last_record_was_style_change == false)
+               {
+                       // This is a style change.
+
+                       last_record_was_style_change = true;
+
+                       bool    has_font = (first_byte >> 3) & 1;
+                       bool    has_color = (first_byte >> 2) & 1;
+                       bool    has_y_offset = (first_byte >> 1) & 1;
+                       bool    has_x_offset = (first_byte >> 0) & 1;
+
+                       IF_VERBOSE_PARSE(
+                       log_parse("  text style change");
+                       );
+
+                       if (has_font)
+                       {
+                               uint16_t        font_id = in->read_u16();
+                               style.m_font_id = font_id;
+                               IF_VERBOSE_PARSE(
+                               log_parse("  has_font: font id = %d", font_id);
+                               );
+                       }
+                       if (has_color)
+                       {
+                               if (tag_type == 11)
+                               {
+                                       style.m_color.read_rgb(in);
+                               }
+                               else
+                               {
+                                       assert(tag_type == 33);
+                                       style.m_color.read_rgba(in);
+                               }
+                               IF_VERBOSE_PARSE(
+                               log_parse("  has_color");
+                               );
+                       }
+                       if (has_x_offset)
+                       {
+                               style.m_has_x_offset = true;
+                               style.m_x_offset = in->read_s16();
+                               IF_VERBOSE_PARSE(
+                               log_parse("  has_x_offset = %g", 
style.m_x_offset);
+                               );
+                       }
+                       else
+                       {
+                               style.m_has_x_offset = false;
+                               style.m_x_offset = 0.0f;
+                       }
+                       if (has_y_offset)
+                       {
+                               style.m_has_y_offset = true;
+                               style.m_y_offset = in->read_s16();
+                               IF_VERBOSE_PARSE(
+                               log_parse("  has_y_offset = %g", 
style.m_y_offset);
+                               );
+                       }
+                       else
+                       {
+                               style.m_has_y_offset = false;
+                               style.m_y_offset = 0.0f;
+                       }
+                       if (has_font)
+                       {
+                               style.m_text_height = in->read_u16();
+                               IF_VERBOSE_PARSE(
+                               log_parse("  text_height = %g", 
style.m_text_height);
+                               );
+                       }
+               }
+               else
+               {
+                       // Read the glyph record.
+
+                       last_record_was_style_change = false;
+
+                       int     glyph_count = first_byte;
+
+//                                     if (! last_record_was_style_change)
+//                                     {
+//                                             glyph_count &= 0x7F;
+//                                     }
+//                                     // else { Don't mask the top bit; the 
first record is allowed to have > 127 glyphs. }
+
+                       m_text_glyph_records.resize(m_text_glyph_records.size() 
+ 1);
+                       m_text_glyph_records.back().m_style = style;
+                       m_text_glyph_records.back().read(in, glyph_count, 
glyph_bits, advance_bits);
+
+                       IF_VERBOSE_PARSE(
+                       log_parse("  glyph_records: count = %d", glyph_count);
+                       );
+               }
+       }
+}
+
+void text_character_def::display(character* inst)
+{
+//     GNASH_REPORT_FUNCTION;
+       display_glyph_records(m_matrix, inst,
+               m_text_glyph_records, m_root_def);
+}
+
+
+}      // end namespace gnash
+
+




reply via email to

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