[mcclim-cvs] CVS mcclim
afuchs
afuchs at common-lisp.net
Sat Apr 22 15:31:27 UTC 2006
Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv32675
Modified Files:
incremental-redisplay.lisp
Log Message:
Back out the spatial-trees change to compute-difference-set.
--- /project/mcclim/cvsroot/mcclim/incremental-redisplay.lisp 2006/04/20 23:25:23 1.59
+++ /project/mcclim/cvsroot/mcclim/incremental-redisplay.lisp 2006/04/22 15:31:27 1.60
@@ -754,12 +754,12 @@
;; (declare (values erases moves draws erase-overlapping move-overlapping))
(let (was
is
+ stay
come
(everywhere (or +everywhere+
(pane-viewport-region (updating-output-stream record))))
(was-table (make-hash-table :test #'equalp))
- (is-table (make-hash-table :test #'equalp))
- (stay-tree (%make-tree-output-record-tree)))
+ (is-table (make-hash-table :test #'equalp)))
(labels ((collect-1-was (record)
(push record was)
@@ -771,14 +771,12 @@
;; stay = is ^ was
(cond ((updating-output-record-p record)
(if (eq :clean (output-record-dirty record))
- (spatial-trees:insert
- (make-tree-output-record-entry record 0) stay-tree)
+ (push record stay)
(push record come)))
(t
(let ((q (gethash (output-record-hash record) was-table)))
(if (some #'(lambda (x) (output-record-equal record x)) q)
- (spatial-trees:insert
- (make-tree-output-record-entry record 0) stay-tree)
+ (push record stay)
(push record come)))))))
;; Collect what was there
(labels ((gather-was (record)
@@ -829,15 +827,15 @@
(when check-overlapping
(setf (values gone gone-overlap)
(loop for k in gone
- if (spatial-trees:search (%record-to-spatial-tree-rectangle k)
- stay-tree)
+ if (some (lambda (x) (region-intersects-region-p k x))
+ stay)
collect (list k k) into gone-overlap*
else collect (list k k) into gone*
finally (return (values gone* gone-overlap*))))
(setf (values come come-overlap)
(loop for k in come
- if (spatial-trees:search (%record-to-spatial-tree-rectangle k)
- stay-tree)
+ if (some (lambda (x) (region-intersects-region-p k x))
+ stay)
collect (list k k) into come-overlap*
else collect (list k k) into come*
finally (return (values come* come-overlap*)))))
More information about the Mcclim-cvs
mailing list