view Android/java/org/madbutterfly/coord.java @ 840:048cc704bef7

Merge dirty_pcache_area_coords and zeroing_coords. Also interleave zeroing and updating pcache_area tasks. To zeroing a cached coord, pcache_area of descendants cached coords must be updated before zeroing. But, updating pcache_area of a cached coord must be performed after zeroing the coord. So, they are interleaved. dirty_pcache_area_coords are removed from redraw_man_t. It is merged to zeroing_coords.
author Thinker K.F. Li <thinker@codemud.net>
date Fri, 17 Sep 2010 12:21:36 +0800
parents c468e397614d
children
line wrap: on
line source

package org.madbutterfly;

import java.util.ArrayList;

public class coord {
    protected int addr;
    redraw_man rdman;
    public ArrayList children;
    public ArrayList members;

    public coord(redraw_man rdman, int addr) {
	this.addr = addr;
	this.rdman = rdman;
	children = new ArrayList();
	members = new ArrayList();
    }

    protected void invalid() {
	addr = 0;
    }

    protected void finalize() {
	if(addr != 0)
	    _jni.rdman_coord_free(rdman._rdman_addr, addr);
    }

    public void add_shape(shape member) {
	_jni.rdman_add_shape(rdman._rdman_addr, member.addr, addr);
	members.add(member);
	member.parent = this;
	_jni.rdman_coord_changed(rdman._rdman_addr, addr);
	_jni.rdman_shape_changed(rdman._rdman_addr, member.addr);
    }
}