X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Frenderer_canvas.cpp;h=6b9d31d07963ac9628277fd49f967d872bca015a;hb=37600b4b217caa5e316984ec0b035c5e8f9698af;hp=d533fbd4e9dd4b369d9ddb8f78cb123ce5c5c014;hpb=ce408de81ca266b1f334ee9bc6c8fb7ba1492ed4;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp b/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp index d533fbd..6b9d31d 100644 --- a/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp +++ b/synfig-studio/trunk/src/gtkmm/renderer_canvas.cpp @@ -1,11 +1,12 @@ /* === S Y N F I G ========================================================= */ -/*! \file template.cpp +/*! \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-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 @@ -91,22 +92,22 @@ 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 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 synfig::Vector::value_type @@ -125,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()) { @@ -150,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); @@ -164,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; @@ -202,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?