Prevent compiler warnings about unused parameters.
[synfig.git] / synfig-core / trunk / src / synfig / context.cpp
index 617238d..49e9843 100644 (file)
@@ -1,20 +1,21 @@
-/* === S I N F G =========================================================== */
-/*!    \file template.cpp
+/* === S Y N F I G ========================================================= */
+/*!    \file context.cpp
 **     \brief Template File
 **
-**     $Id: context.cpp,v 1.4 2005/01/24 05:00:18 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
 */
 /* ========================================================================= */
 
 using namespace std;
 using namespace etl;
-using namespace sinfg;
+using namespace synfig;
 
 /* === M A C R O S ========================================================= */
 
-//#define SINFG_PROFILE_LAYERS
-//#define SINFG_DEBUG_LAYERS
+//#define SYNFIG_PROFILE_LAYERS
+//#define SYNFIG_DEBUG_LAYERS
 
 /* === G L O B A L S ======================================================= */
 
-#ifdef SINFG_PROFILE_LAYERS
+#ifdef SYNFIG_PROFILE_LAYERS
 #include <ETL/clock>
 static int depth(0);
 static std::map<String,float> time_table;
@@ -62,7 +63,7 @@ static String curr_layer;
 static void
 _print_profile_report()
 {
-       sinfg::info(">>>> Profile Report: (Times are in msecs)");
+       synfig::info(">>>> Profile Report: (Times are in msecs)");
        std::map<String,float>::iterator iter;
        float total_time(0);
        for(iter=time_table.begin();iter!=time_table.end();++iter)
@@ -71,10 +72,10 @@ _print_profile_report()
                float time(iter->second);
                int runs(run_table[layer]);
                total_time+=time;
-               sinfg::info(" Layer \"%s\",\tExecs: %03d, Avg Time: %05.1f, Total Time: %05.1f",layer.c_str(),runs,time/runs*1000,time*1000);
+               synfig::info(" Layer \"%s\",\tExecs: %03d, Avg Time: %05.1f, Total Time: %05.1f",layer.c_str(),runs,time/runs*1000,time*1000);
        }
-       sinfg::info("Total Time: %f seconds", total_time);
-       sinfg::info("<<<< End of Profile Report");
+       synfig::info("Total Time: %f seconds", total_time);
+       synfig::info("<<<< End of Profile Report");
 }
 
 #endif
@@ -87,14 +88,14 @@ Color
 Context::get_color(const Point &pos)const
 {
        Context context(*this);
-               
+
        while(!context->empty())
-       {       
+       {
                // If this layer is active, then go
                // ahead and break out of the loop
                if((*context)->active())
                        break;
-               
+
                // Otherwise, we want to keep searching
                // till we find either an active layer,
                // or the end of the layer list
@@ -113,24 +114,24 @@ Rect
 Context::get_full_bounding_rect()const
 {
        Context context(*this);
-               
+
        while(!context->empty())
-       {       
+       {
                // If this layer is active, then go
                // ahead and break out of the loop
                if((*context)->active())
                        break;
-               
+
                // Otherwise, we want to keep searching
                // till we find either an active layer,
                // or the end of the layer list
                ++context;
        }
 
-       if(context->empty())
-               return Rect::zero();
+       // If this layer isn't defined, return zero-sized rectangle
+       if(context->empty()) return Rect::zero();
 
-       return (*context)->get_full_bounding_rect(*this+1);
+       return (*context)->get_full_bounding_rect(context+1);
 }
 
 
@@ -156,7 +157,7 @@ Context::get_full_bounding_rect()const
          -
          +
        -
-       
+
        at each minus we must record all the info for that which we are worried about...
        each layer can do work before or after the other work is done... so both values must be recorded...
 */
@@ -164,9 +165,9 @@ Context::get_full_bounding_rect()const
 bool
 Context::accelerated_render(Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb) const
 {
-       #ifdef SINFG_PROFILE_LAYERS
+       #ifdef SYNFIG_PROFILE_LAYERS
        String layer_name(curr_layer);
-       
+
        //sum the pre-work done by layer above us... (curr_layer is layer above us...)
        if(depth>0)
        {
@@ -177,7 +178,7 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
        #endif
 
        const Rect bbox(renddesc.get_rect());
-       
+
        Context context(*this);
        for(;!(context)->empty();++context)
        {
@@ -185,19 +186,19 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
                // then move on to next layer
                if(!(*context)->active())
                        continue;
-               
+
                const Rect layer_bounds((*context)->get_bounding_rect());
-               
+
                // If the box area is less than zero
                // then move on to next layer
                if(layer_bounds.area()<=0.0000000000001)
                        continue;
-               
+
                // If the boxes do not intersect
                // then move on to next layer
                if(!(layer_bounds && bbox))
                        continue;
-               
+
                // Break out of the loop--we have found a good layer
                break;
        }
@@ -205,32 +206,32 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
        // If this layer isn't defined, return alpha
        if((context)->empty())
        {
-#ifdef SINFG_DEBUG_LAYERS
-               sinfg::info("Context::accelerated_render(): Hit end of list");
+#ifdef SYNFIG_DEBUG_LAYERS
+               synfig::info("Context::accelerated_render(): Hit end of list");
 #endif
                surface->set_wh(renddesc.get_w(),renddesc.get_h());
                surface->clear();
-               #ifdef SINFG_PROFILE_LAYERS
-               profile_timer.reset();  
+               #ifdef SYNFIG_PROFILE_LAYERS
+               profile_timer.reset();
                #endif
                return true;
        }
 
-#ifdef SINFG_DEBUG_LAYERS
-       sinfg::info("Context::accelerated_render(): Descending into %s",(*context)->get_name().c_str());
+#ifdef SYNFIG_DEBUG_LAYERS
+       synfig::info("Context::accelerated_render(): Descending into %s",(*context)->get_name().c_str());
 #endif
 
        try {
                RWLock::ReaderLock lock((*context)->get_rw_lock());
-               
-       #ifdef SINFG_PROFILE_LAYERS
-       
+
+       #ifdef SYNFIG_PROFILE_LAYERS
+
        //go down one layer :P
        depth++;
        curr_layer=(*context)->get_name();      //make sure the layer inside is referring to the correct layer outside
        profile_timer.reset();                                                                          // +
        bool ret((*context)->accelerated_render(context+1,surface,quality,renddesc, cb));
-       
+
        //post work for the previous layer
        time_table[curr_layer]+=profile_timer();                                                        //-
        if(run_table.count(curr_layer))run_table[curr_layer]++;
@@ -238,7 +239,7 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
 
        depth--;
        curr_layer = layer_name; //we are now onto this layer (make sure the post gets recorded correctly...
-               
+
        //print out the table it we're done...
        if(depth==0) _print_profile_report(),time_table.clear(),run_table.clear();
        profile_timer.reset();                                                                                          //+
@@ -250,7 +251,7 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
        }
        catch(std::bad_alloc)
        {
-               sinfg::error("Context::accelerated_render(): Layer \"%s\" threw a bad_alloc exception!",(*context)->get_name().c_str());
+               synfig::error("Context::accelerated_render(): Layer \"%s\" threw a bad_alloc exception!",(*context)->get_name().c_str());
 #ifdef _DEBUG
                return false;
 #else
@@ -260,8 +261,8 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde
        }
        catch(...)
        {
-               sinfg::error("Context::accelerated_render(): Layer \"%s\" threw an exception, rethrowing...",(*context)->get_name().c_str());
-               throw;          
+               synfig::error("Context::accelerated_render(): Layer \"%s\" threw an exception, rethrowing...",(*context)->get_name().c_str());
+               throw;
        }
 }
 
@@ -270,12 +271,12 @@ Context::set_time(Time time)const
 {
        Context context(*this);
        while(!(context)->empty())
-       {       
+       {
                // If this layer is active, then go
                // ahead and break out of the loop
                if((*context)->active() && !(*context)->dirty_time_.is_equal(time))
                        break;
-               
+
                // Otherwise, we want to keep searching
                // till we find either an active layer,
                // or the end of the layer list
@@ -288,16 +289,16 @@ Context::set_time(Time time)const
        // Set up a wrter lock
        RWLock::WriterLock lock((*context)->get_rw_lock());
 
-       //sinfg::info("%s: dirty_time=%f",(*context)->get_name().c_str(),(float)(*context)->dirty_time_);
-       //sinfg::info("%s: time=%f",(*context)->get_name().c_str(),(float)time);
+       //synfig::info("%s: dirty_time=%f",(*context)->get_name().c_str(),(float)(*context)->dirty_time_);
+       //synfig::info("%s: time=%f",(*context)->get_name().c_str(),(float)time);
 
        {
                Layer::ParamList params;
                Layer::DynamicParamList::const_iterator iter;
-               
+
                for(iter=(*context)->dynamic_param_list().begin();iter!=(*context)->dynamic_param_list().end();iter++)
                        params[iter->first]=(*iter->second)(time);
-               
+
                (*context)->set_param_list(params);
 
                (*context)->set_time(context+1,time);
@@ -307,18 +308,18 @@ Context::set_time(Time time)const
 }
 
 void
-Context::set_time(Time time,const Vector &pos)const
+Context::set_time(Time time,const Vector &/*pos*/)const
 {
        set_time(time);
 /*
        Context context(*this);
        while(!(context)->empty())
-       {       
+       {
                // If this layer is active, then go
                // ahead and break out of the loop
                if((*context)->active())
                        break;
-               
+
                // Otherwise, we want to keep searching
                // till we find either an active layer,
                // or the end of the layer list
@@ -332,10 +333,10 @@ Context::set_time(Time time,const Vector &pos)const
        {
                Layer::ParamList params;
                Layer::DynamicParamList::const_iterator iter;
-               
+
                for(iter=(*context)->dynamic_param_list().begin();iter!=(*context)->dynamic_param_list().end();iter++)
                        params[iter->first]=(*iter->second)(time);
-               
+
                (*context)->set_param_list(params);
 
                (*context)->set_time(context+1,time,pos);
@@ -347,14 +348,14 @@ etl::handle<Layer>
 Context::hit_check(const Point &pos)const
 {
        Context context(*this);
-       
+
        while(!context->empty())
-       {       
+       {
                // If this layer is active, then go
                // ahead and break out of the loop
                if((*context)->active())
                        break;
-               
+
                // Otherwise, we want to keep searching
                // till we find either an active layer,
                // or the end of the layer list