[Top][All Lists]
[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
+
+