[mcclim-cvs] CVS mcclim/Extensions

dlichteblau dlichteblau at common-lisp.net
Sun Apr 1 17:24:04 UTC 2007


Update of /project/mcclim/cvsroot/mcclim/Extensions
In directory clnet:/tmp/cvs-serv24182/Extensions

Modified Files:
	rgb-image.lisp 
Log Message:

Added an extension function SHEET-RGB-IMAGE, which "screenshots" a sheet
into an RGB-IMAGE; basically the opposite of MEDIUM-DRAW-RGB-IMAGE.

Implemented only for CLIM-CLX and only for true color visuals.
	
	* Backends/CLX/clim-extensions.lisp (ZIMAGE-TO-RGB): New helper
	function.  (SHEET-RGB-DATA): New method.
	
	* Extensions/rgb-image.lisp (SHEET-RGB-IMAGE): New extension
	function.  (SHEET-RGB-DATA): New backend protocol function.


--- /project/mcclim/cvsroot/mcclim/Extensions/rgb-image.lisp	2007/01/07 19:32:29	1.1
+++ /project/mcclim/cvsroot/mcclim/Extensions/rgb-image.lisp	2007/04/01 17:24:04	1.2
@@ -67,3 +67,24 @@
 
 (defmethod medium-draw-image-design* :before (medium design x y)
   (assert (eq medium (slot-value design 'medium))))
+
+
+;;; Fetching protocol
+
+(defun sheet-rgb-image (sheet &key x y width height)
+  (multiple-value-bind (data alphap)
+      (sheet-rgb-data (port sheet)
+		      sheet
+		      :x x
+		      :y y
+		      :width width
+		      :height height)
+    (destructuring-bind (height width)
+	(array-dimensions data)
+      (make-instance 'rgb-image
+	:width width
+	:height height
+	:data data
+	:alphap alphap))))
+
+(defgeneric sheet-rgb-data (port sheet &key x y width height))




More information about the Mcclim-cvs mailing list