gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/styles.cpp server/styles...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog server/styles.cpp server/styles...
Date: Fri, 02 May 2008 15:19:13 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   08/05/02 15:19:12

Modified files:
        .              : ChangeLog 
        server         : styles.cpp styles.h 
        backend        : render_handler_agg.cpp 

Log message:
        * server/style.{cpp,h}: fixed default constructor
        * backend/render_handler_agg.cpp: implement cap and join styles

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6476&r2=1.6477
http://cvs.savannah.gnu.org/viewcvs/gnash/server/styles.cpp?cvsroot=gnash&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/gnash/server/styles.h?cvsroot=gnash&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.138&r2=1.139

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.6476
retrieving revision 1.6477
diff -u -b -r1.6476 -r1.6477
--- ChangeLog   2 May 2008 14:53:42 -0000       1.6476
+++ ChangeLog   2 May 2008 15:19:09 -0000       1.6477
@@ -1,3 +1,8 @@
+2008-05-02 Udo Giacomozzi <address@hidden>
+
+       * server/style.{cpp,h}: fixed default constructor
+       * backend/render_handler_agg.cpp: implement cap and join styles
+
 2008-05-02 Sandro Santilli <address@hidden>
 
        * gui/Player.cpp, gui/gui.h: have dump-gnash really use the

Index: server/styles.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/styles.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- server/styles.cpp   2 May 2008 13:54:16 -0000       1.40
+++ server/styles.cpp   2 May 2008 15:19:11 -0000       1.41
@@ -28,7 +28,12 @@
     m_width(0),
     m_color(),
     _scaleVertically(true),
-    _scaleHorizontally(true)
+    _scaleHorizontally(true),
+               _noClose(false),
+               _startCapStyle(CAP_ROUND),
+               _endCapStyle(CAP_ROUND),
+               _joinStyle(JOIN_ROUND),
+               _miterLimitFactor(1.0f)
 {
 }
 
@@ -106,21 +111,21 @@
        m_width = in->read_u16();
 
        // 0 -- Round caps, 1 -- No caps, 2 -- square caps
-       boost::uint8_t caps = in->read_uint(2);
+       _startCapStyle = (cap_style_e) in->read_uint(2);
        // 0 -- Round join, 1 -- Bevel join, 2 -- Miter join
-       boost::uint8_t joins = in->read_uint(2);
+       _joinStyle = (join_style_e) in->read_uint(2);
        bool has_fill = in->read_bit();
        _scaleHorizontally = ! in->read_bit();
        _scaleVertically = ! in->read_bit();
        bool pixel_hinting = in->read_bit();
        static_cast<void> (in->read_uint(5));
-       bool no_close = in->read_bit();
-       bool end_cap_style = in->read_uint(2); // As caps above.
+       _noClose = in->read_bit();
+       _startCapStyle = (cap_style_e) in->read_uint(2); // As caps above.
 
-       if (joins == 2)
+       if (_joinStyle == JOIN_MITER)  // style 2
        {
                in->ensureBytes(2);
-               /*float f_miter =*/static_cast<void>(in->read_short_ufixed());
+               _miterLimitFactor = in->read_short_ufixed();
        }
        if (has_fill)
        {

Index: server/styles.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/styles.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- server/styles.h     2 May 2008 13:54:16 -0000       1.27
+++ server/styles.h     2 May 2008 15:19:11 -0000       1.28
@@ -42,12 +42,7 @@
                m_width(width),
                m_color(color),
                _scaleVertically(scaleThicknessVertically),
-               _scaleHorizontally(scaleThicknessHorizontally),
-               _noClose(false),
-               _startCapStyle(CAP_ROUND),
-               _endCapStyle(CAP_ROUND),
-               _joinStyle(JOIN_ROUND),
-               _miterLimitFactor(1.0f)
+               _scaleHorizontally(scaleThicknessHorizontally)
        {
        }
 

Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -b -r1.138 -r1.139
--- backend/render_handler_agg.cpp      2 May 2008 13:54:16 -0000       1.138
+++ backend/render_handler_agg.cpp      2 May 2008 15:19:12 -0000       1.139
@@ -42,9 +42,9 @@
     patterns          don't exist (they're converted at compile time by Flash!)
     widths            COMPLETE
     colors, alpha     COMPLETE
-    cap styles        TODO / fixed to round caps
-    join styles       TODO / fixed to round joins
-    no-close flag     TODO / currently ignored        
+    cap styles        DONE, but end cap style is ignored
+    join styles       COMPLETE
+    no-close flag     TODO / currently ignored (noClose==1 assumed)        
   
     
   fills:
@@ -1780,8 +1780,24 @@
           stroke.width(std::max(1.0f, thickness*stroke_scale));
         }
           
-        stroke.line_cap(agg::round_cap);        
-        stroke.line_join(agg::round_join); 
+        // TODO: support endCapStyle
+        
+        // TODO: When lstyle.noClose==0 and the start and end point matches,
+        // then render a real join instead of the caps.
+
+        switch (lstyle.startCapStyle()) {
+          case CAP_NONE   : stroke.line_cap(agg::butt_cap); break; 
+          case CAP_SQUARE : stroke.line_cap(agg::square_cap); break;          
+          default : case CAP_ROUND : stroke.line_cap(agg::round_cap); 
+        }
+        
+        switch (lstyle.joinStyle()) {
+          case JOIN_BEVEL : stroke.line_join(agg::bevel_join); break;
+          case JOIN_MITER : stroke.line_join(agg::miter_join); break;
+          default : case JOIN_ROUND : stroke.line_join(agg::round_join);
+        }
+        
+        stroke.miter_limit(lstyle.miterLimitFactor());
                 
         ras.reset();
         ras.add_path(stroke);




reply via email to

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