update structs in cairo.ffi
							parent
							
								
									4f07a26bd0
								
							
						
					
					
						commit
						47359279a5
					
				| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
 | 
			
		||||
USING: system combinators alien alien.syntax alien.c-types
 | 
			
		||||
alien.destructors kernel accessors sequences arrays ui.gadgets
 | 
			
		||||
alien.libraries ;
 | 
			
		||||
alien.libraries classes.struct ;
 | 
			
		||||
 | 
			
		||||
IN: cairo.ffi
 | 
			
		||||
<< {
 | 
			
		||||
| 
						 | 
				
			
			@ -26,23 +26,23 @@ TYPEDEF: int cairo_bool_t
 | 
			
		|||
TYPEDEF: void* cairo_t
 | 
			
		||||
TYPEDEF: void* cairo_surface_t
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_matrix_t
 | 
			
		||||
    { "double" "xx" }
 | 
			
		||||
    { "double" "yx" }
 | 
			
		||||
    { "double" "xy" }
 | 
			
		||||
    { "double" "yy" }
 | 
			
		||||
    { "double" "x0" }
 | 
			
		||||
    { "double" "y0" } ;
 | 
			
		||||
STRUCT: cairo_matrix_t
 | 
			
		||||
    { xx double }
 | 
			
		||||
    { yx double }
 | 
			
		||||
    { xy double }
 | 
			
		||||
    { yy double }
 | 
			
		||||
    { x0 double }
 | 
			
		||||
    { y0 double } ;
 | 
			
		||||
 | 
			
		||||
TYPEDEF: void* cairo_pattern_t
 | 
			
		||||
 | 
			
		||||
TYPEDEF: void* cairo_destroy_func_t
 | 
			
		||||
: cairo-destroy-func ( quot -- callback )
 | 
			
		||||
    [ "void" { "void*" } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
    [ void { void* } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
 | 
			
		||||
! See cairo.h for details
 | 
			
		||||
C-STRUCT: cairo_user_data_key_t
 | 
			
		||||
    { "int" "unused" } ;
 | 
			
		||||
STRUCT: cairo_user_data_key_t
 | 
			
		||||
    { unused int } ;
 | 
			
		||||
 | 
			
		||||
TYPEDEF: int cairo_status_t
 | 
			
		||||
C-ENUM:
 | 
			
		||||
| 
						 | 
				
			
			@ -79,11 +79,11 @@ CONSTANT: CAIRO_CONTENT_COLOR_ALPHA HEX: 3000
 | 
			
		|||
 | 
			
		||||
TYPEDEF: void* cairo_write_func_t
 | 
			
		||||
: cairo-write-func ( quot -- callback )
 | 
			
		||||
    [ "cairo_status_t" { "void*" "uchar*" "int" } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
    [ cairo_status_t { void* uchar* int } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
                          
 | 
			
		||||
TYPEDEF: void* cairo_read_func_t
 | 
			
		||||
: cairo-read-func ( quot -- callback )
 | 
			
		||||
    [ "cairo_status_t" { "void*" "uchar*" "int" } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
    [ cairo_status_t { void* uchar* int } "cdecl" ] dip alien-callback ; inline
 | 
			
		||||
 | 
			
		||||
! Functions for manipulating state objects
 | 
			
		||||
FUNCTION: cairo_t*
 | 
			
		||||
| 
						 | 
				
			
			@ -336,16 +336,16 @@ cairo_clip_preserve ( cairo_t* cr ) ;
 | 
			
		|||
FUNCTION: void
 | 
			
		||||
cairo_clip_extents ( cairo_t* cr, double* x1, double* y1, double* x2, double* y2 ) ;
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_rectangle_t
 | 
			
		||||
    { "double" "x" }
 | 
			
		||||
    { "double" "y" }
 | 
			
		||||
    { "double" "width" }
 | 
			
		||||
    { "double" "height" } ;
 | 
			
		||||
STRUCT: cairo_rectangle_t
 | 
			
		||||
    { x      double }
 | 
			
		||||
    { y      double }
 | 
			
		||||
    { width  double }
 | 
			
		||||
    { height double } ;
 | 
			
		||||
    
 | 
			
		||||
C-STRUCT: cairo_rectangle_list_t
 | 
			
		||||
    { "cairo_status_t"     "status" }
 | 
			
		||||
    { "cairo_rectangle_t*" "rectangles" }
 | 
			
		||||
    { "int"                "num_rectangles" } ;
 | 
			
		||||
STRUCT: cairo_rectangle_list_t
 | 
			
		||||
    { status         cairo_status_t     }
 | 
			
		||||
    { rectangles     cairo_rectangle_t* }
 | 
			
		||||
    { num_rectangles int                } ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: cairo_rectangle_list_t*
 | 
			
		||||
cairo_copy_clip_rectangle_list ( cairo_t* cr ) ;
 | 
			
		||||
| 
						 | 
				
			
			@ -359,25 +359,25 @@ TYPEDEF: void* cairo_scaled_font_t
 | 
			
		|||
 | 
			
		||||
TYPEDEF: void* cairo_font_face_t
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_glyph_t
 | 
			
		||||
  { "ulong"     "index" }
 | 
			
		||||
  { "double"    "x" }
 | 
			
		||||
  { "double"    "y" } ;
 | 
			
		||||
STRUCT: cairo_glyph_t
 | 
			
		||||
  { index ulong     }
 | 
			
		||||
  { x     double    }
 | 
			
		||||
  { y     double    } ;
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_text_extents_t
 | 
			
		||||
    { "double" "x_bearing" }
 | 
			
		||||
    { "double" "y_bearing" }
 | 
			
		||||
    { "double" "width" }
 | 
			
		||||
    { "double" "height" }
 | 
			
		||||
    { "double" "x_advance" }
 | 
			
		||||
    { "double" "y_advance" } ;
 | 
			
		||||
STRUCT: cairo_text_extents_t
 | 
			
		||||
    { x_bearing double }
 | 
			
		||||
    { y_bearing double }
 | 
			
		||||
    { width     double }
 | 
			
		||||
    { height    double }
 | 
			
		||||
    { x_advance double }
 | 
			
		||||
    { y_advance double } ;
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_font_extents_t
 | 
			
		||||
    { "double" "ascent" }
 | 
			
		||||
    { "double" "descent" }
 | 
			
		||||
    { "double" "height" }
 | 
			
		||||
    { "double" "max_x_advance" }
 | 
			
		||||
    { "double" "max_y_advance" } ;
 | 
			
		||||
STRUCT: cairo_font_extents_t
 | 
			
		||||
    { ascent double }
 | 
			
		||||
    { descent double }
 | 
			
		||||
    { height double }
 | 
			
		||||
    { max_x_advance double }
 | 
			
		||||
    { max_y_advance double } ;
 | 
			
		||||
 | 
			
		||||
TYPEDEF: int cairo_font_slant_t
 | 
			
		||||
C-ENUM:
 | 
			
		||||
| 
						 | 
				
			
			@ -648,20 +648,22 @@ C-ENUM:
 | 
			
		|||
    CAIRO_PATH_CLOSE_PATH ;
 | 
			
		||||
 | 
			
		||||
! NEED TO DO UNION HERE
 | 
			
		||||
C-STRUCT: cairo_path_data_t-point
 | 
			
		||||
    { "double" "x" }
 | 
			
		||||
    { "double" "y" } ;
 | 
			
		||||
STRUCT: cairo_path_data_t-point
 | 
			
		||||
    { x double }
 | 
			
		||||
    { y double } ;
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_path_data_t-header
 | 
			
		||||
    { "cairo_path_data_type_t" "type" }
 | 
			
		||||
    { "int" "length" } ;
 | 
			
		||||
STRUCT: cairo_path_data_t-header
 | 
			
		||||
    { type cairo_path_data_type_t }
 | 
			
		||||
    { length int } ;
 | 
			
		||||
 | 
			
		||||
C-UNION: cairo_path_data_t "cairo_path_data_t-point" "cairo_path_data_t-header" ;
 | 
			
		||||
UNION-STRUCT: cairo_path_data_t 
 | 
			
		||||
    { point  cairo_path_data_t-point }
 | 
			
		||||
    { header cairo_path_data_t-header } ;
 | 
			
		||||
 | 
			
		||||
C-STRUCT: cairo_path_t
 | 
			
		||||
    { "cairo_status_t"      "status" }
 | 
			
		||||
    { "cairo_path_data_t*"  "data" }
 | 
			
		||||
    { "int"                 "num_data" } ;
 | 
			
		||||
STRUCT: cairo_path_t
 | 
			
		||||
    { status   cairo_status_t      }
 | 
			
		||||
    { data     cairo_path_data_t*  }
 | 
			
		||||
    { num_data int                 } ;
 | 
			
		||||
 | 
			
		||||
FUNCTION: cairo_path_t*
 | 
			
		||||
cairo_copy_path ( cairo_t* cr ) ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue