[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