[pal-cvs] CVS pal/examples
tneste
tneste at common-lisp.net
Thu Jul 19 16:37:25 UTC 2007
Update of /project/pal/cvsroot/pal/examples
In directory clnet:/tmp/cvs-serv8793/examples
Modified Files:
images.lisp
Log Message:
Added LOAD-IMAGE-TO-ARRAY, few bug fixes.
--- /project/pal/cvsroot/pal/examples/images.lisp 2007/07/18 19:27:22 1.2
+++ /project/pal/cvsroot/pal/examples/images.lisp 2007/07/19 16:37:25 1.3
@@ -2,11 +2,12 @@
(:use :cl :pal))
(in-package :image-tests)
+(defparameter *foo* nil)
(define-tags
;; IMAGE-FROM-FN builds and image by calling the FN with x and y coordinates.
;; FN should return at least three VALUES for r, g and b and an optional fourth value for alpha.
- image-1 (image-from-fn 256 256 nil
+ image-1 (image-from-fn 255 255 nil
(lambda (x y)
(values (truncate (+ 127 (* 128 (sin (/ x 10)))))
(truncate (+ 127 (* 128 (cos (/ y 10)))))
@@ -16,12 +17,20 @@
;; Try setting the SMOOTHP parameter to T and see what happens.
image-2 (image-from-array nil #2A(((255 255 255 128) (0 0 0) (255 255 255))
((255 255 255) (255 255 0) (255 255 255))
- ((255 255 255) (0 0 0) (255 255 255 128)))))
+ ((255 255 255) (0 0 0) (255 255 255 128))))
+ ;; LOAD-IMAGE-TO-ARRAY does exactly what it says. Let's load the plane image and randomize the alpha values a bit.
+ image-3 (image-from-array nil
+ (let ((image (load-image-to-array "lego-plane.png")))
+ (do-n (x (array-dimension image 0) y (array-dimension image 1))
+ (when (> (fourth (aref image x y)) 200)
+ (setf (fourth (aref image x y)) (+ (random 128) 127))))
+ image)))
-(with-pal ()
- (set-cursor (tag 'image-2)) ;; sets image-2 as a mouse cursor image
+
+(with-pal (:paths (merge-pathnames "examples/" pal::*pal-directory*))
+ (set-cursor (tag 'image-3)) ;; sets image-3 as a mouse cursor image
(let ((a 0f0))
(event-loop ()
(draw-polygon* (list (v 0 0)
@@ -33,7 +42,7 @@
(list 0 0 255 255)
(list 0 0 255 255))) ;; just draws a nice gradient background
- ;; And draw a pattern of image-1s on the top of it. Not exactly seamlessly tiled but hey...
+ ;; And draw a pattern of image-1s on the top of it. Not exactly seamless tiles but hey...
(draw-rectangle (v 0 0) 800 600 255 255 255 255 :fill (tag 'image-1))
;; let's scale up a bit to see what the image-2 looks like.
More information about the Pal-cvs
mailing list