Since the last change will require a recompilation of pretty much everything, I took...
[synfig.git] / synfig-core / trunk / src / modules / lyr_std / warp.cpp
index 3abf207..f3767ae 100644 (file)
@@ -516,7 +516,11 @@ Warp::accelerated_render(Context context,Surface *surface,int quality, const Ren
                // Real trans_z[4];
                Real z,minz(10000000000000.0f),maxz(0);
 
-
+               //! \todo checking the 4 corners for 0<=z<horizon*2 and using
+               //! only 4 corners which satisfy this condition isn't the
+               //! right thing to do.  It's possible that none of the 4
+               //! corners fall within that range, and yet content of the
+               //! tile does.
                p=transform_forward(min);
                z=transform_backward_z(p);
                if(z>0 && z<horizon*2)
@@ -691,9 +695,7 @@ Warp::accelerated_render(Context context,Surface *surface,int quality, const Ren
                                v=(tmp[1]-tl[1])*src_ph;
 
                                if(u<0 || v<0 || u>=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v))
-                               {
                                        (*surface)[y][x]=context.get_color(tmp);
-                               }
                                else
                                        (*surface)[y][x]=source.cubic_sample(u,v);
                        }
@@ -727,12 +729,7 @@ Warp::accelerated_render(Context context,Surface *surface,int quality, const Ren
                                v=(tmp[1]-tl[1])*src_ph;
 
                                if(u<0 || v<0 || u>=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v))
-                               {
-                                       if(clip)
-                                               (*surface)[y][x]=Color::alpha();
-                                       else
-                                               (*surface)[y][x]=context.get_color(tmp);
-                               }
+                                       (*surface)[y][x]=context.get_color(tmp);
                                else
                                        (*surface)[y][x]=source.linear_sample(u,v);
                        }
@@ -765,15 +762,10 @@ Warp::accelerated_render(Context context,Surface *surface,int quality, const Ren
                                v=(tmp[1]-tl[1])*src_ph;
 
                                if(u<0 || v<0 || u>=source.get_w() || v>=source.get_h() || isnan(u) || isnan(v))
-                               {
-                                       if(clip)
-                                               (*surface)[y][x]=Color::alpha();
-                                       else
-                                               (*surface)[y][x]=context.get_color(tmp);
-                               }
+                                       (*surface)[y][x]=context.get_color(tmp);
                                else
-                               //pen.set_value(source[v][u]);
-                               (*surface)[y][x]=source[floor_to_int(v)][floor_to_int(u)];
+                                       //pen.set_value(source[v][u]);
+                                       (*surface)[y][x]=source[floor_to_int(v)][floor_to_int(u)];
                        }
                        if(y&31==0 && cb)
                        {