Revert back to creating a new clip region rather than reusing the previous one. This

fixes the long-standing incremental_reflow problem, as apparently ClearClipRegion
can't cope with the frequency of calls it gets with this switched on.

svn path=/trunk/netsurf/; revision=9333
This commit is contained in:
Chris Young 2009-08-17 11:48:56 +00:00
parent c26611b32b
commit 6030a12341
2 changed files with 7 additions and 16 deletions

1
amiga/dist/Install vendored
View File

@ -370,7 +370,6 @@
(dest (tackon @default-dest "Resources/Options"))
(append "theme:" #theme "\n")
(append "use_pubscreen:Workbench\n")
(append "incremental_reflow:0\n")
)
)
)

View File

@ -327,8 +327,6 @@ bool ami_polygon(const int *p, unsigned int n, const plot_style_t *style)
#ifndef NS_AMIGA_CAIRO
ULONG cx,cy;
//DebugPrintF("poly\n");
SetRPAttrs(&glob->rp,
RPTAG_APenColor,
p96EncodeColor(RGBFB_A8B8G8R8, style->fill_colour),
@ -369,17 +367,7 @@ bool ami_clip(int x0, int y0, int x1, int y1)
if(glob->rp.Layer)
{
reg = InstallClipRegion(glob->rp.Layer,NULL);
if(!reg)
{
reg = NewRegion();
}
else
{
ClearRectRegion(reg,&glob->rect);
}
reg = NewRegion();
glob->rect.MinX = x0;
glob->rect.MinY = y0;
@ -389,6 +377,7 @@ bool ami_clip(int x0, int y0, int x1, int y1)
OrRectRegion(reg,&glob->rect);
reg = InstallClipRegion(glob->rp.Layer,reg);
if(reg) DisposeRegion(reg);
}
@ -397,6 +386,7 @@ bool ami_clip(int x0, int y0, int x1, int y1)
cairo_rectangle(glob->cr, x0, y0, x1 - x0, y1 - y0);
cairo_clip(glob->cr);
#endif
return true;
}
@ -469,7 +459,6 @@ bool ami_arc(int x, int y, int radius, int angle1, int angle2, const plot_style_
#else
/* http://www.crbond.com/primitives.htm
CommonFuncsPPC.lha */
//DebugPrintF("arc\n");
SetRPAttrs(&glob->rp,
RPTAG_APenColor,
@ -552,6 +541,10 @@ bool ami_bitmap_tile(int x, int y, int width, int height,
if(!(repeat_x || repeat_y))
return ami_bitmap(x, y, width, height, bitmap);
/* If it is a one pixel transparent image, we are wasting our time */
if((bitmap->opaque == false) && (bitmap->width == 1) && (bitmap->height == 1))
return true;
tbm = ami_getcachenativebm(bitmap,width,height,glob->rp.BitMap);
if(!tbm) return true;
@ -684,7 +677,6 @@ bool ami_group_end(void)
bool ami_flush(void)
{
//DebugPrintF("flush\n");
return true;
}