;; drawing functions
(bind-lib ocv_core_lib cvCircle [void,CvArr*,ExtCvPoint,i32,CvScalar,i32,i32,i32]*)
(bind-lib ocv_core_lib cvClipLine [i32,ExtCvSize,CvPoint*,CvPoint*]*)
(bind-lib ocv_core_lib cvDrawContours [void,CvArr*,CvSeq*,CvScalar,CvScalar,i32,i32,i32]*)
(bind-lib ocv_core_lib cvEllipse [void,CvArr*,ExtCvPoint,ExtCvSize,double,double,double,CvScalar,i32,i32,i32]*)
;(bind-lib ocv_core_lib cvEllipseBox [void,CvArr*,CvBox2D,CvScalar,i32,i32,i32]*)
(bind-lib ocv_core_lib cvFillConvexPoly [void,CvArr*,CvPoint*,i32,CvScalar,i32,i32]*)
(bind-lib ocv_core_lib cvFillPoly [void,CvArr*,CvPoint**,i32*,i32,CvScalar,i32,i32]*)
(bind-lib ocv_core_lib cvGetTextSize [void,i8*,CvFont*,CvSize*,i32*]*)
(bind-lib ocv_core_lib cvInitFont [void,CvFont*,i32,double,double,double,i32,i32]*)
(bind-lib ocv_core_lib cvInitLineIterator [i32,CvArr*,ExtCvPoint,CvPoint,i8*,i32,i32,i32]*)
(bind-lib ocv_core_lib cvLine [void,CvArr*,ExtCvPoint,ExtCvPoint,CvScalar,i32,i32,i32]*)
(bind-lib ocv_core_lib cvPolyLine [void,CvArr*,CvPoint**,i32*,i32,i32,CvScalar,i32,i32,i32]*)
(bind-lib ocv_core_lib cvPutText [void,CvArr*,i8*,ExtCvPoint,CvFont*,CvScalar]*)
(bind-lib ocv_core_lib cvRectangle [void,CvArr*,ExtCvPoint,ExtCvPoint,CvScalar,i32,i32,i32]*)
(bind-func cvMakeColour (lambda (r g b) ;; returns CvScalar
(let ((s:CvScalar* (salloc)) (a (tref-ptr s 0)))
(aset! a 0 b) (aset! a 1 g) (aset! a 0 r) (pref s 0))))