(in-package #:ocl) (defun create-sampler-with-properties (context &key (normalized-coords-p t) (addressing-mode :address-clamp) (filter-mode :filter-nearest)) (let ((properties `(:sampler-normalized-coords ,normalized-coords-p :sampler-addressing-mode ,addressing-mode :sampler-filter-mode ,filter-mode 0))) (with-foreign-sequence (c-properties properties 'cl-sampler-properties) (check-error-arg (%create-sampler-with-properties context sampler-properties))))) (defun retain-sampler (sampler) (check-error (%retain-sampler sampler))) (defun release-sampler (sampler) (check-error (%release-sampler sampler))) (defparameter +sampler-info-type-alist+ '((:sampler-reference-count . cl-uint) (:sampler-context . cl-context) (:sampler-normalized-coords . cl-bool) (:sampler-addressing-mode . cl-addressing-mode) (:sampler-filter-mode . cl-filter-mode) (:sampler-properties . (:pointer cl-sampler-properties)))) (wrap-get-info-function get-sampler-info %get-sampler-info +sampler-info-type-alist+)