Edited the single line description of each source file that implements a layer.
[synfig.git] / synfig-core / trunk / src / modules / lyr_std / warp.cpp
index f3767ae..ec56596 100644 (file)
@@ -1,11 +1,12 @@
 /* === S Y N F I G ========================================================= */
 /*!    \file warp.cpp
-**     \brief Template File
+**     \brief Implementation of the "Warp" layer
 **
 **     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -51,8 +52,8 @@
 
 SYNFIG_LAYER_INIT(Warp);
 SYNFIG_LAYER_SET_NAME(Warp,"warp");
-SYNFIG_LAYER_SET_LOCAL_NAME(Warp,_("Warp"));
-SYNFIG_LAYER_SET_CATEGORY(Warp,_("Distortions"));
+SYNFIG_LAYER_SET_LOCAL_NAME(Warp,N_("Warp"));
+SYNFIG_LAYER_SET_CATEGORY(Warp,N_("Distortions"));
 SYNFIG_LAYER_SET_VERSION(Warp,"0.1");
 SYNFIG_LAYER_SET_CVS_ID(Warp,"$Id$");
 
@@ -613,6 +614,16 @@ Warp::accelerated_render(Context context,Surface *surface,int quality, const Ren
        Point min_point(bounding_rect.get_min());
        Point max_point(bounding_rect.get_max());
 
+       // we're going to divide by the different of these pairs soon;
+       // if they're the same, we'll be dividing by zero, and we don't
+       // want to do that!
+       // \todo what should we do in this case?
+       if (min_point[0] == max_point[0] || min_point[1] == max_point[1])
+       {
+               surface->set_wh(renddesc.get_w(),renddesc.get_h());
+               surface->clear();
+               return true;
+       }
 
        if(tl[0]>br[0])
        {