From eddae6af0663243a2677674d501f9a87d55798f5 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 30 Jun 2011 15:48:07 +0000 Subject: Remove plotter table global. Pass a redraw context around redraw functions. Knockout could be handled better. Note: untested on most front ends. svn path=/trunk/netsurf/; revision=12543 --- atari/browser.c | 7 ++++++- atari/plot.c | 2 +- atari/plot.h | 2 ++ atari/treeview.c | 7 ++++++- 4 files changed, 15 insertions(+), 3 deletions(-) (limited to 'atari') diff --git a/atari/browser.c b/atari/browser.c index d5c86fbe2..ed2f644aa 100755 --- a/atari/browser.c +++ b/atari/browser.c @@ -903,6 +903,11 @@ static void browser_redraw_content( struct gui_window * gw, int xoff, int yoff ) CMP_BROWSER b = gw->browser; struct rect clip; + struct redraw_context ctx = { + .interactive = true, + .plot = &atari_plotters + }; + LOG(("%s : %d,%d - %d,%d\n", b->bw->name, b->redraw.area.x0, b->redraw.area.y0, b->redraw.area.x1, b->redraw.area.y1 )); @@ -915,7 +920,7 @@ static void browser_redraw_content( struct gui_window * gw, int xoff, int yoff ) a.y1 = b->redraw.area.y1; browser_window_redraw( b->bw, -b->scroll.current.x, - -b->scroll.current.y, &a ); + -b->scroll.current.y, &a, &ctx ); current_redraw_browser = NULL; } diff --git a/atari/plot.c b/atari/plot.c index 16e19149c..1a6ce4b44 100755 --- a/atari/plot.c +++ b/atari/plot.c @@ -238,7 +238,7 @@ static bool plot_path(const float *p, unsigned int n, colour fill, float width, -struct plotter_table plot = { +const struct plotter_table atari_plotter = { .rectangle = plot_rectangle, .line = plot_line, .polygon = plot_polygon, diff --git a/atari/plot.h b/atari/plot.h index 7be7d6aa3..02d9f37a9 100755 --- a/atari/plot.h +++ b/atari/plot.h @@ -24,6 +24,8 @@ struct rect; +extern const struct plotter_table atari_plotters; + int atari_plotter_init( char*, char * ); int atari_plotter_finalise( void ); void plot_set_knockout( int set ); diff --git a/atari/treeview.c b/atari/treeview.c index aaa3621af..9b925f6dc 100755 --- a/atari/treeview.c +++ b/atari/treeview.c @@ -312,6 +312,11 @@ void atari_treeview_redraw( NSTREEVIEW tv) GRECT work; WindGetGrect( tv->window, WF_WORKXYWH, &work ); + struct redraw_context ctx = { + .interactive = true, + .plot = &atari_plotters + }; + plotter->resize(plotter, work.g_w, work.g_h); plotter->move(plotter, work.g_x, work.g_y ); @@ -339,7 +344,7 @@ void atari_treeview_redraw( NSTREEVIEW tv) if (rc_intersect((GRECT *)&tv->rdw_area,(GRECT *)&todo)) { tree_draw(tv->tree, -tv->window->xpos*16, -tv->window->ypos*16, - todo[0], todo[1], todo[2], todo[3] + todo[0], todo[1], todo[2], todo[3], &ctx ); } if (wind_get(tv->window->handle, WF_NEXTXYWH, -- cgit v1.2.3