public void dirty() { if (path==null) dirty(0, 0, contentwidth, contentheight); else dirty(path); }
public void dirty(int x, int y, int w, int h) { }
public void dirty(Path p) {
public void dirty() { if (path==null) dirty(0, 0, contentwidth, contentheight); else dirty(path); }
public void dirty(int x, int y, int w, int h) { }
public void dirty(Path p) {
for(Box cur = this; cur != null; cur = cur.parent) a.premultiply(cur.transform);
long hbounds = p.horizontalBounds(a);
long vbounds = p.verticalBounds(a);
for(Box cur = this; cur != null; cur = cur.parent) a.premultiply(cur.transform);
long hbounds = p.horizontalBounds(a);
long vbounds = p.verticalBounds(a);
a = a.copy().premultiply(transform);
//boolean relevant = packed() || ((fillcolor&0xff000000)!=0x0) || path!=null;
a = a.copy().premultiply(transform);
//boolean relevant = packed() || ((fillcolor&0xff000000)!=0x0) || path!=null;
for(Box child = getChild(0); child != null; child = child.nextSibling()) {
xmin = Integer.MAX_VALUE; ymin = Integer.MAX_VALUE;
xmax = Integer.MIN_VALUE; ymax = Integer.MIN_VALUE;
for(Box child = getChild(0); child != null; child = child.nextSibling()) {
xmin = Integer.MAX_VALUE; ymin = Integer.MAX_VALUE;
xmax = Integer.MIN_VALUE; ymax = Integer.MIN_VALUE;
child.constrain(this, Affine.identity());
if (xmin==Integer.MAX_VALUE||xmax==Integer.MIN_VALUE||ymin==Integer.MAX_VALUE||ymax== Integer.MIN_VALUE) continue;
child.constrain(this, Affine.identity());
if (xmin==Integer.MAX_VALUE||xmax==Integer.MIN_VALUE||ymin==Integer.MAX_VALUE||ymax== Integer.MIN_VALUE) continue;
contentwidth += (xmax-xmin);
contentheight = max(ymax-ymin, contentheight);
}
contentwidth += (xmax-xmin);
contentheight = max(ymax-ymin, contentheight);
}
- if (clipFrom != null) clipFrom.subtract(mesh, clipa);
- Mesh mesh = treeSize() > 0 ? this.mesh.copy() : this.mesh;
- for(Box b = getChild(0); b != null; b = b.nextSibling()) b.render(buf, a, mesh, Affine.identity());
+ // FIXME: mesh clipping code has been getting stuck in loops; to see this,
+ // uncomment the next two lines and swap the order of the last two lines.
+
+ //if (clipFrom != null) clipFrom.subtract(mesh, clipa);
+ //Mesh mesh = treeSize() > 0 ? this.mesh.copy() : this.mesh;
mesh.fill(buf, a, null, fillcolor, true);
mesh.fill(buf, a, null, fillcolor, true);
if (getSurface() != null) // FIXME
getSurface().dirty(0, 0, getSurface().root.contentwidth, getSurface().root.contentheight);
REPLACE();
if (getSurface() != null) // FIXME
getSurface().dirty(0, 0, getSurface().root.contentwidth, getSurface().root.contentheight);
REPLACE();