X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frenderer_canvas.cpp;h=6b9d31d07963ac9628277fd49f967d872bca015a;hb=2c7d34e9b6cbec4492f07a6a90d0682e0507bdb7;hp=1f73c4ad3391394b65244af1246306f645896c5b;hpb=3a3c4bca3a17137bec5d7960560934b91ef4146e;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp b/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp index 1f73c4a..6b9d31d 100644 --- a/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp +++ b/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp @@ -1,20 +1,22 @@ -/* === S I N F G =========================================================== */ -/*! \file template.cpp +/* === S Y N F I G ========================================================= */ +/*! \file renderer_canvas.cpp ** \brief Template File ** -** $Id: renderer_canvas.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** 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 */ /* ========================================================================= */ @@ -38,7 +40,7 @@ using namespace std; using namespace etl; -using namespace sinfg; +using namespace synfig; using namespace studio; /* === M A C R O S ========================================================= */ @@ -90,32 +92,32 @@ Renderer_Canvas::get_rendering()const void Renderer_Canvas::render_vfunc( const Glib::RefPtr& drawable, - const Gdk::Rectangle& expose_area + const Gdk::Rectangle& /*expose_area*/ ) { assert(get_work_area()); if(!get_work_area()) return; - -// const sinfg::RendDesc &rend_desc(get_work_area()->get_canvas()->rend_desc()); - - const sinfg::Vector focus_point(get_work_area()->get_focus_point()); + +// const synfig::RendDesc &rend_desc(get_work_area()->get_canvas()->rend_desc()); + + const synfig::Vector focus_point(get_work_area()->get_focus_point()); std::vector< std::pair,int> >& tile_book(get_tile_book()); - + int drawable_w,drawable_h; drawable->get_size(drawable_w,drawable_h); - + // Calculate the window coordinates of the top-left // corner of the canvas. - const sinfg::Vector::value_type + const synfig::Vector::value_type x(focus_point[0]/get_pw()+drawable_w/2-get_w()/2), y(focus_point[1]/get_ph()+drawable_h/2-get_h()/2); - /*const sinfg::Vector::value_type window_startx(window_tl[0]); - const sinfg::Vector::value_type window_endx(window_br[0]); - const sinfg::Vector::value_type window_starty(window_tl[1]); - const sinfg::Vector::value_type window_endy(window_br[1]); + /*const synfig::Vector::value_type window_startx(window_tl[0]); + const synfig::Vector::value_type window_endx(window_br[0]); + const synfig::Vector::value_type window_starty(window_tl[1]); + const synfig::Vector::value_type window_endy(window_br[1]); */ const int tile_w(get_work_area()->get_tile_w()), @@ -124,9 +126,9 @@ Renderer_Canvas::render_vfunc( const int w(get_w()), h(get_h()); - + Glib::RefPtr gc(Gdk::GC::create(drawable)); - + if(!tile_book.empty()) if(get_full_frame()) { @@ -149,12 +151,12 @@ Renderer_Canvas::render_vfunc( { const int width_in_tiles(w/tile_w+(w%tile_w?1:0)); const int height_in_tiles(h/tile_h+(h%tile_h?1:0)); - + int u(0),v(0),tx,ty; int u1(0),v1(0),u2(width_in_tiles), v2(height_in_tiles); bool needs_refresh(false); - + u1=int(-x/tile_w); v1=int(-y/tile_h); u2=int((-x+drawable_w)/tile_w+1); @@ -163,13 +165,13 @@ Renderer_Canvas::render_vfunc( if(v2>height_in_tiles)v2=height_in_tiles; if(u1<0)u1=0; if(v1<0)v1=0; - + for(v=v1;vindex && tile_book[index].first) + if(int(tile_book.size())>index && tile_book[index].first) { tx=u*tile_w; ty=v*tile_w; @@ -201,7 +203,7 @@ Renderer_Canvas::render_vfunc( // Draw the border around the rendered region { gc->set_rgb_fg_color(Gdk::Color("#000000")); - gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER); + gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER); drawable->draw_rectangle( gc, false, // Fill?