rearranged cairo: binding in cairo.ffi, high-level words in extra/cairo.
							parent
							
								
									4532810923
								
							
						
					
					
						commit
						dcd07575d0
					
				| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
USING: cairo math.parser kernel sequences tools.test ;
 | 
			
		||||
IN: cairo.tests
 | 
			
		||||
 | 
			
		||||
[ t ] [ ! apply a little pressure to cairo_version
 | 
			
		||||
    cairo_version number>string CHAR: 0 swap remove
 | 
			
		||||
    CHAR: . cairo_version_string remove =
 | 
			
		||||
] unit-test
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,36 +0,0 @@
 | 
			
		|||
! Copyright (C) 2008 Doug Coleman.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: cairo kernel accessors sequences
 | 
			
		||||
namespaces fry continuations ;
 | 
			
		||||
IN: cairo.lib
 | 
			
		||||
 | 
			
		||||
TUPLE: cairo-t alien ;
 | 
			
		||||
C: <cairo-t> cairo-t
 | 
			
		||||
M: cairo-t dispose ( alien -- ) alien>> cairo_destroy ;
 | 
			
		||||
 | 
			
		||||
TUPLE: cairo-surface-t alien ;
 | 
			
		||||
C: <cairo-surface-t> cairo-surface-t
 | 
			
		||||
M: cairo-surface-t dispose ( alien -- ) alien>> cairo_surface_destroy ;
 | 
			
		||||
 | 
			
		||||
: check-cairo ( cairo_status_t -- )
 | 
			
		||||
    dup CAIRO_STATUS_SUCCESS = [ drop ]
 | 
			
		||||
    [ cairo_status_to_string "Cairo error: " prepend throw ] if ;
 | 
			
		||||
 | 
			
		||||
SYMBOL: cairo
 | 
			
		||||
: cr ( -- cairo ) cairo get ;
 | 
			
		||||
 | 
			
		||||
: (with-cairo) ( cairo-t quot -- )
 | 
			
		||||
    >r alien>> cairo r> [ cr cairo_status check-cairo ]
 | 
			
		||||
    compose with-variable ; inline
 | 
			
		||||
    
 | 
			
		||||
: with-cairo ( cairo quot -- )
 | 
			
		||||
    >r <cairo-t> r> [ (with-cairo) ] curry with-disposal ; inline
 | 
			
		||||
 | 
			
		||||
: (with-surface) ( cairo-surface-t quot -- )
 | 
			
		||||
    >r alien>> r> [ cairo_surface_status check-cairo ] bi ; inline
 | 
			
		||||
 | 
			
		||||
: with-surface ( cairo_surface quot -- )
 | 
			
		||||
    >r <cairo-surface-t> r> [ (with-surface) ] curry with-disposal ; inline
 | 
			
		||||
 | 
			
		||||
: with-cairo-from-surface ( cairo_surface quot -- )
 | 
			
		||||
    '[ cairo_create , with-cairo ] with-surface ; inline
 | 
			
		||||
		Loading…
	
		Reference in New Issue