On Tue, 5 Aug 2008, Chris Young wrote:
On Mon, 4 Aug 2008 19:24:19 +0100 (BST), John-Mark Bell wrote:
The implementor of that function must do whatever is necessary to cause
the window to be redrawn in full. This basically involves interacting
with the window manager to ask it to send a redraw/window expose event,
which is then handled by the normal redraw infrastructure, effecting the
redraw.
OK, I can fake that easily enough, I don't think I can actually ask it
to request a refresh. Refresh events themselves probably don't need
me to run through the entire redraw process - AmigaOS tends to handle
refreshes itself for the most part, and I'm writing directly to the
window (for now), so I shouldn't need to worry about that yet.
I think I'm still missing something important. The only plotters that
are called are:
clip 0 0 800 600
clg ffffff
My redraw code looks like this (I've hardcoded the window to 800x600
temporarily hence the values below):
struct content *c;
c = g->bw->current_content;
current_redraw_browser = g->bw;
content_redraw(c, 0, 0, 800, 600, 0, 0, 800, 600, g->bw->scale,
0xFFFFFF);
current_redraw_browser = NULL;
That seems reasonable enough. I assume your plotting functions are
returning true on success and false on failure? Redraw will give up if
there's a problem.
J.