Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / synfig / render.cpp
index acfcbe3..af58a0e 100644 (file)
@@ -1,27 +1,28 @@
-/* === S I N F G =========================================================== */
-/*!    \file render.cpp
+/* === S Y N F I G ========================================================= */
+/*!    \file synfig/render.cpp
 **     \brief Renderer
 **
-**     $Id: render.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $
+**     $Id$
 **
 **     \legal
-**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
 **
-**     This software and associated documentation
-**     are CONFIDENTIAL and PROPRIETARY property of
-**     the above-mentioned copyright holder.
+**     This package 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 2 of
+**     the License, or (at your option) any later version.
 **
-**     You may not copy, print, publish, or in any
-**     other way distribute this software without
-**     a prior written agreement with
-**     the copyright holder.
+**     This package 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.
 **     \endlegal
 */
 /* ========================================================================= */
 
 /* === H E A D E R S ======================================================= */
 
-#define SINFG_NO_ANGLE
+#define SYNFIG_NO_ANGLE
 
 #ifdef USING_PCH
 #      include "pch.h"
@@ -47,7 +48,7 @@
 #endif
 
 using namespace std;
-using namespace sinfg;
+using namespace synfig;
 using namespace etl;
 
 /* === M A C R O S ========================================================= */
@@ -55,7 +56,7 @@ using namespace etl;
 /* === P R O C E D U R E S ================================================= */
 
 bool
-sinfg::parametric_render(
+synfig::parametric_render(
        Context context,
        Surface &surface,
        const RendDesc &desc,
@@ -70,16 +71,16 @@ sinfg::parametric_render(
 
        bool
                no_clamp=!desc.get_clamp();
-       
+
        int
                w(desc.get_w()),
                h(desc.get_h()),
                a(desc.get_antialias());
-       
+
        Point
                tl(desc.get_tl()),
                br(desc.get_br());
-       
+
        //Gamma
        //      gamma(desc.get_gamma());
 
@@ -89,10 +90,10 @@ sinfg::parametric_render(
 
        Color::value_type
                pool;           // Alpha pool (for correct alpha antialiasing)
-       
+
        // Calculate the number of channels
        //chan=channels(desc.get_pixel_format());
-               
+
        // Calculate the distance between pixels
        du=(br[0]-tl[0])/(Point::value_type)w;
        dv=(br[1]-tl[1])/(Point::value_type)h;
@@ -106,11 +107,11 @@ sinfg::parametric_render(
        //sv=tl[1]-(dv-dsv)/(Point::value_type)2.0;
        su=tl[0];
        sv=tl[1];
-       
+
        surface.set_wh(desc.get_w(),desc.get_h());
 
        assert(surface);
-       
+
        // Loop through all horizontal lines
        for(y=0,v=sv;y<h;y++,v+=dv)
        {
@@ -119,7 +120,7 @@ sinfg::parametric_render(
                Color *colordata=surface[y];
 
                assert(colordata);
-               
+
                // If we have a callback that we need
                // to report to, do so now.
                if(callback)
@@ -163,7 +164,7 @@ sinfg::parametric_render(
                                c/=pool;
                }
        }
-       
+
        // Give the callback one more last call,
        // this time with the full height as the
        // current line
@@ -175,7 +176,7 @@ sinfg::parametric_render(
 }
 
 bool
-sinfg::render(
+synfig::render(
        Context context,
        Target_Scanline::Handle target,
        const RendDesc &desc,
@@ -189,16 +190,16 @@ sinfg::render(
 
        bool
                no_clamp=!desc.get_clamp();
-       
+
        int
                w(desc.get_w()),
                h(desc.get_h()),
                a(desc.get_antialias());
-       
+
        Point
                tl(desc.get_tl()),
                br(desc.get_br());
-       
+
        //Gamma
        //      gamma(desc.get_gamma());
 
@@ -210,14 +211,14 @@ sinfg::render(
                pool;           // Alpha pool (for correct alpha antialiasing)
 
        assert(target);
-       
-       // If we do not have a target then bail
+
+       // If we do not have a target then bail
        if(!target)
                return false;
-       
+
        // Calculate the number of channels
        //chan=channels(desc.get_pixel_format());
-               
+
        // Calculate the distance between pixels
        du=(br[0]-tl[0])/(Point::value_type)w;
        dv=(br[1]-tl[1])/(Point::value_type)h;
@@ -233,7 +234,7 @@ sinfg::render(
        // Mark the start of a new frame.
        if(!target->start_frame(callback))
                return false;
-                       
+
        // Loop through all horizontal lines
        for(y=0,v=sv;y<h;y++,v+=dv)
        {
@@ -247,7 +248,7 @@ sinfg::render(
                        else throw(string(_("Target panic")));
                        return false;
                }
-               
+
                // If we have a callback that we need
                // to report to, do so now.
                if(callback)
@@ -255,7 +256,7 @@ sinfg::render(
                        {
                                // If the callback returns false,
                                // then the render has been aborted.
-                               // Exit gracefuly.
+                               // Exit gracefully.
 
                                target->end_scanline();
                                target->end_frame();
@@ -303,7 +304,7 @@ sinfg::render(
                        return false;
                }
        }
-       
+
        // Finish up the target's frame
        target->end_frame();
 
@@ -318,7 +319,7 @@ sinfg::render(
 }
 
 bool
-sinfg::render_threaded(
+synfig::render_threaded(
        Context context,
        Target_Scanline::Handle target,
        const RendDesc &desc,
@@ -347,9 +348,9 @@ sinfg::render_threaded(
                        }
                }
     } *render_thread;
-    
+
     int i, mythread=-1;
-       
+
        Point::value_type
                u,v,            // Current location in image
                su,sv,          // Starting locations
@@ -358,16 +359,16 @@ sinfg::render_threaded(
 
        bool
                no_clamp=!desc.get_clamp();
-       
+
        int
                w(desc.get_w()),
                h(desc.get_h()),
                a(desc.get_antialias());
-       
+
        Point
                tl(desc.get_tl()),
                br(desc.get_br());
-       
+
        int
                x,y,            // Current location on output bitmap
                x2,y2;          // Subpixel counters
@@ -376,11 +377,11 @@ sinfg::render_threaded(
                pool;           // Alpha pool (for correct alpha antialiasing)
 
        assert(target);
-       
-       // If we do not have a target then bail
+
+       // If we do not have a target then bail
        if(!target)
                return false;
-                       
+
        // Calculate the distance between pixels
        du=(br[0]-tl[0])/(Point::value_type)w;
        dv=(br[1]-tl[1])/(Point::value_type)h;
@@ -394,7 +395,7 @@ sinfg::render_threaded(
        sv=tl[1]-(dv-dsv)/(Point::value_type)2.0;
 
     render_thread=new _render_thread[threads];
-    
+
        // Start the forks
     for(i=0;i<threads;i++)
     {
@@ -406,7 +407,7 @@ sinfg::render_threaded(
                }
                render_thread[i].pid=pid;
     }
-    
+
        // Mark the start of a new frame.
        if(!target->start_frame(callback))
                return false;
@@ -423,7 +424,7 @@ sinfg::render_threaded(
                        else throw(string(_("Target panic")));
                        return false;
                }
-               
+
                // If we have a callback that we need
                // to report to, do so now.
                if(callback)
@@ -431,16 +432,16 @@ sinfg::render_threaded(
                        {
                                // If the callback returns false,
                                // then the render has been aborted.
-                               // Exit gracefuly.
+                               // Exit gracefully.
 
                                target->end_scanline();
                                target->end_frame();
                                delete [] render_thread;
                                return false;
                        }
-                               
+
                read(render_thread[y%threads].pipe_read,colordata,w*sizeof(Color));
-               
+
                // Send the buffer to the render target.
                // If anything goes wrong, cleanup and bail.
                if(!target->end_scanline())
@@ -460,15 +461,15 @@ sinfg::render_threaded(
        // current line
        if(callback)
                callback->amount_complete(h,h);
-    
+
     delete [] render_thread;
     return true;
 
 renderthread:
-       
+
        // Change the random seed, so that each thread has a different one
        srand(mythread*20+threads+time(0));
-       
+
        Color *buffer(new Color[w]);
 
        // Loop through all horizontal lines
@@ -477,7 +478,7 @@ renderthread:
                // Set the current pixel pointer
                // to the start of the line
                Color* colordata(buffer);
-               
+
                // Loop through every pixel in row
                for(x=0,u=su;x<w;x++,u+=du)
                {
@@ -509,17 +510,17 @@ renderthread:
                        if(pool)
                                c/=pool;
                }
-               
+
                // Send the buffer to the primary thread.
                write(render_thread[mythread].pipe_write,buffer,w*sizeof(Color));
        }
-       
+
        delete [] buffer;
-       
+
     _exit(0);
-       return false;   
+       return false;
 #else
        return render(context, target, desc, callback);
 
-#endif 
+#endif
 }