X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fsurface.cpp;h=f783d9ced706d51e81255aa48322c524fa3b9bd1;hb=c3ad95144d148602f672e95ddda1f18fc35502f8;hp=eb5506856f20f2e610f0f8ac3d0a47ec7ff58faf;hpb=e704e6dbd6bd7607e0e484685b8f6997dd9d1286;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/surface.cpp b/synfig-core/trunk/src/synfig/surface.cpp index eb55068..f783d9c 100644 --- a/synfig-core/trunk/src/synfig/surface.cpp +++ b/synfig-core/trunk/src/synfig/surface.cpp @@ -1,8 +1,10 @@ -/* ======================================================================== -** Synfig -** Template File -** $Id: surface.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +/* === S Y N F I G ========================================================= */ +/*! \file surface.cpp +** \brief Template File ** +** $Id$ +** +** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** ** This package is free software; you can redistribute it and/or @@ -14,6 +16,7 @@ ** 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 ** ** === N O T E S =========================================================== ** @@ -59,9 +62,9 @@ public: virtual ~target2surface(); virtual bool set_rend_desc(synfig::RendDesc *newdesc); - + virtual bool start_frame(synfig::ProgressCallback *cb); - + virtual void end_frame(); virtual Color * start_scanline(int scanline); @@ -85,23 +88,23 @@ target2surface::set_rend_desc(synfig::RendDesc *newdesc) desc=*newdesc; return synfig::Target_Scanline::set_rend_desc(newdesc); } - + bool -target2surface::start_frame(synfig::ProgressCallback *cb) -{ +target2surface::start_frame(synfig::ProgressCallback */*cb*/) +{ if(surface->get_w() != desc.get_w() || surface->get_h() != desc.get_h()) { surface->set_wh(desc.get_w(),desc.get_h()); } - return true; + return true; } - + void target2surface::end_frame() { return; } - + Color * target2surface::start_scanline(int scanline) { @@ -148,26 +151,26 @@ synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) if(x<0) { w+=x; //decrease - x=0; + x=0; } - + if(y<0) { h+=y; //decrease - y=0; + y=0; } - + //clip width against dest width w = min((long)w,(long)(pen.end_x()-pen.x())); h = min((long)h,(long)(pen.end_y()-pen.y())); - + //clip width against src width w = min(w,get_w()-x); h = min(h,get_h()-y); if(w<=0 || h<=0) return; - + for(int i=0;i(static_cast(operator[](y)+x))+i*get_w()*sizeof(Color)); @@ -176,8 +179,8 @@ synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) } return; } - -#ifdef HAS_VIMAGE + +#ifdef HAS_VIMAGE if( pen.get_blend_method()==Color::BLEND_COMPOSITE && fabs(alpha-1.0f)=get_w() || y>=get_w()) @@ -188,23 +191,23 @@ synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) { //u-=x; //increase w+=x; //decrease - x=0; + x=0; } - + if(y<0) { //v-=y; //increase h+=y; //decrease - y=0; + y=0; } - + //clip width against dest width w = min(w,pen.end_x()-pen.x()); h = min(h,pen.end_y()-pen.y()); - + //clip width against src width - w = min(w,get_w()-x); - h = min(h,get_h()-y); + w = min(w,get_w()-x); + h = min(h,get_h()-y); if(w<=0 || h<=0) return; @@ -213,7 +216,7 @@ synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) vImage_Buffer top,bottom; vImage_Buffer& dest(bottom); - + top.data=static_cast(operator[](y)+x); top.height=h; top.width=w; @@ -225,12 +228,12 @@ synfig::Surface::blit_to(alpha_pen& pen, int x, int y, int w, int h) bottom.width=w; //bottom.rowBytes=pen.get_width()*sizeof(Color); //! \fixme this should get the pitch!! bottom.rowBytes=pen.get_pitch(); //! \fixme this should get the pitch!! - + vImage_Error ret; ret=vImageAlphaBlend_ARGBFFFF(&top,&bottom,&dest,kvImageNoFlags); - + assert(ret!=kvImageNoError); - + return; } #endif