tslediter/funcext/tvclib/t_cairo_api.tsf

334 lines
14 KiB
Plaintext

type t_cairo_api = class()
{**
@explan(˵Ã÷)cairo µÄc½Ó¿Úº¯Êý %%
**}
///////////////////////////cairo////////////////////////////////
procedure cairo_pattern_destroy(p:pointer);
begin
_f_ := static procedure(p:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(p);
end
function cairo_pattern_create_for_surface(f:pointer):pointer;
begin
_f_ := static function(f:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(f);
end
function cairo_create(s:pointer):pointer;
begin
_f_ := static function(s:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(s);
end
procedure cairo_save(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_restore(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
function cairo_move_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
function cairo_line_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
procedure cairo_set_source(cr:pointer;s:pointer);
begin
_f_ := static procedure(cr:pointer;s:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,s);
end
function cairo_get_source(cr:pointer):pointer;
begin
_f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_curve_to(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);
begin
_f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x1,y1,x2,y2,x3,y3);
end
procedure cairo_rectangle(c:pointer;x:double;y:double;w:double;h:double);
begin
_f_ := static procedure(c:pointer;x:double;y:double;w:double;h:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x,y,w,h);
end
procedure cairo_set_source_rgba(c:pointer;red:double;green:double;blue:double;alpha:double);
begin
_f_ := static procedure(c:pointer;red:double;green:double;blue:double;alpha:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,red,green,blue,alpha);
end
procedure cairo_set_source_rgb(c:pointer;r:double;g:double;b:double);
begin
_f_ := static procedure(c:pointer;r:double;g:double;b:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,r,g,b);
end
procedure cairo_set_line_width(c:pointer;w:double);
begin
_f_ := static procedure(c:pointer;w:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,w);
end
function cairo_get_line_width(c:pointer):double;
begin
_f_ := static function(c:pointer):double;cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_line_cap(c:pointer;cp:integer);
begin
_f_ := static procedure(c:pointer;cp:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,cp);
end
function cairo_get_line_cap(c:pointer):integer;
begin
_f_ := static function(c:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_line_join(c:pointer;t:integer);
begin
_f_ := static procedure(c:pointer;t:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,t);
end
function cairo_get_line_join(c:pointer):integer;
begin
_f_ := static function(c:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
//procedure draw_round_rectangle(c:pointer;x:double;y:double;w:double;h:double;r:double);cdecl;external 'libgtk-3.so';
procedure cairo_arc(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
begin
_f_ := static procedure(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,xc,yc,radius,angle1,angle2);
end
procedure cairo_translate(cr:pointer;tx:double;ty:double);
begin
_f_ := static procedure(cr:pointer;tx:double;ty:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,tx,ty);
end
procedure cairo_rotate(cr:pointer;angle:double);
begin
_f_ := static procedure(cr:pointer;angle:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,angle);
end
procedure cairo_scale(cr:pointer;sx:double;sy:double);
begin
_f_ := static procedure(cr:pointer;sx:double;sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_set_operator(c:pointer;op:integer);
begin
_f_ := static procedure(c:pointer;op:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,op);
end
function cairo_get_operator(c:pointer):integer;
begin
_f_ := static function(c:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_tolerance(c:pointer;tol:double);
begin
_f_ := static procedure(c:pointer;tol:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,tol);
end
function cairo_get_tolerance(c:pointer):double;
begin
_f_ := static function(c:pointer):double;cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_destroy(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_close_path(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_fill_rule(c:pointer;rul:integer);
begin
_f_ := static procedure(c:pointer;rul:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,rul);
end
procedure cairo_clip(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_clip_preserve(c:pointer); //µþ¼Ó²Ã¼ô
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_clip_extents(c:pointer;var x1:double;var y1:double;var x2:double;var y2:double);
begin
_f_ := static procedure(c:pointer;var x1:double;var y1:double;var x2:double;var y2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x1,y1,x2,y2);
end
function cairo_in_clip(c:pointer;x:double;y:double):integer;
begin
_f_ := static function(c:pointer;x:double;y:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(c,x,y);
end
procedure cairo_reset_clip(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_stroke(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_stroke_preserve(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_dash(c:pointer;dash:array of double;num_dash:integer;offset:double);
begin
_f_ := static procedure(c:pointer;dash:array of double;num_dash:integer;offset:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,dash,num_dash,offset);
end
procedure cairo_fill(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_fill_preserve(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_fill_extents(c:pointer;x1:double;y1:double;x2:double;y2:double);
begin
_f_ := static procedure(c:pointer;x1:double;y1:double;x2:double;y2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x1,y1,x2,y2);
end
procedure cairo_paint_with_alpha(c:pointer;alpah:double);
begin
_f_ := static procedure(c:pointer;alpah:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,alpah);
end
procedure cairo_paint(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
//////////////////////text//////// https://developer.gnome.org/cairo/stable/cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics
procedure cairo_show_text(c:pointer;t:string);
begin
_f_ := static procedure(c:pointer;t:string);cdecl;external get_cairo_func(functionname());
return ##_f_(c,t);
end
procedure cairo_select_font_face(cr:pointer;n:string;slat:integer;weight:integer);
begin
_f_ := static procedure(cr:pointer;n:string;slat:integer;weight:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,n,slat,weight);
end
procedure cairo_set_font_size(cr:pointer;sz:double);
begin
_f_ := static procedure(cr:pointer;sz:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sz);
end
procedure cairo_text_extents(cr:pointer;s:string;ext:pointer);
begin
_f_ := static procedure(cr:pointer;s:string;ext:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,s,ext);
end
procedure cairo_font_extents(cr:pointer;ext:pointer);
begin
_f_ := static procedure(cr:pointer;ext:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ext);
end
procedure cairo_get_font_options(cr:pointer;ft:pointer);
begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft);
end
procedure cairo_set_font_options(cr:pointer;ft:pointer);
begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft);
end
function cairo_font_options_create():pointer;
begin
_f_ := static function():pointer;cdecl;external get_cairo_func(functionname());
return ##_f_();
end
procedure cairo_font_options_destroy(op:pointer);
begin
_f_ := static procedure(op:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(op);
end
////////cairo surface//////2
{
CAIRO_FORMAT_INVALID = -1,
CAIRO_FORMAT_ARGB32 = 0,
CAIRO_FORMAT_RGB24 = 1,
CAIRO_FORMAT_A8 = 2,
CAIRO_FORMAT_A1 = 3,
CAIRO_FORMAT_RGB16_565 = 4,
CAIRO_FORMAT_RGB30 = 5
}
function cairo_image_surface_create(t:integer;w:integer;h:integer):pointer;
begin
_f_ := static function(t:integer;w:integer;h:integer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(t,w,h);
end
function cairo_image_surface_create_from_png(f:string):pointer;
begin
_f_ := static function(f:string):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(f);
end
function cairo_image_surface_get_width(sf:pointer):integer;
begin
_f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
function cairo_image_surface_get_height(sf:pointer):integer;
begin
_f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
procedure cairo_surface_destroy(sf:pointer);
begin
_f_ := static procedure(sf:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
procedure cairo_set_source_surface(cr:pointer;sf:pointer;x:double;y:double);
begin
_f_ := static procedure(cr:pointer;sf:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sf,x,y);
end
procedure cairo_pattern_set_extend(c:pointer;pe:integer);
begin
_f_ := static procedure(c:pointer;pe:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,pe);
end
function cairo_pattern_create_linear(x0:double;y0:double;x1:double;y1:double):pointer;
begin
_f_ := static function(x0:double;y0:double;x1:double;y1:double):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(x0,y0,x1,y1);
end
procedure cairo_pattern_add_color_stop_rgb(c:pointer;offset:double;r:double;g:double;b:double;a:double);
begin
_f_ := static procedure(c:pointer;offset:double;r:double;g:double;b:double;a:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,offset,r,g,b,a);
end
function api_init();
begin
end
protected
class function get_cairo_func(n); /////////////////////////»ñÈ¡cairo º¯ÊýÖ¸Õë
begin
return getdlsymaddress("libgtk-3.so.0",n);
end
end