[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A plethora of MCL questions
- To: Benjamin Renaud <benjamin@wilson.ai.mit.edu>
- Subject: Re: A plethora of MCL questions
- From: poeck@informatik.uni-wuerzburg.de (Karsten Poeck)
- Date: Mon, 13 Feb 1995 15:52:10 +0100
- Cc: info-mcl@digitool.com
- Sender: owner-info-mcl@digitool.com
>* On a related note: I have metered stream-write-string and it's a bit
>faster than write-string. Is there something faster (e.g. a system
>call)?
>
You could try stream-writer, but it is not that faster
(defun really-fast-write-string (a-string function value)
(declare (optimize (speed 3)(safety 0))
(simple-string a-string))
(dotimes (index (length a-string))
(funcall function value (schar a-string index))))
(defun test (n m how)
(let ((string (make-string n :initial-element #\a))
(file (merge-pathnames "test"))
)
(when (probe-file file)
(delete-file file))
(with-open-file (stream file :if-does-not-exist :create
:direction :output)
(multiple-value-bind
(function value)
(stream-writer stream)
(ecase how
(:write-string
(time
(dotimes (x m)
(write-string string stream))))
(:really-fast-write-string
(time
(dotimes (x m)
(really-fast-write-string string function value)))))))))
#|
(test 1000 100 :write-string)
(test 1000 100 :really-fast-write-string)
|#
>* Is there some code somewhere which shows how to capture stream output
>for really fast redisplay? (e.g. call the display function once, output
>it to some records of some sort and that's it- a la CLIM output
>records).
Yes, thats done with pictures
to store the picture assuminf the view has an accessor picture
(start-picture views)
(unwind-protect
(do-all-draw-commands)
(setf (picture view) (get-picture views)))
to display it (draw-picture view (picture view))
Every with-focused-view sets the cliprect to the current visible region of
the window, sou you might end up using traps
Karsten