From c49d82ef6555613ee2524cad7064a1aba65f3c2a Mon Sep 17 00:00:00 2001 From: liujianjun Date: Wed, 23 Oct 2024 14:43:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- funcext/tvclib/t_cairo_api.tsf | 636 +++++++++++++++++++++---- funcext/tvclib/t_gdiplusflat_api.tsf | 12 +- funcext/tvclib/t_img_op_api.tsf | 2 +- funcext/tvclib/utslmemo.tsf | 2 +- funcext/tvclib/utslvclauxiliary.tsf | 40 +- funcext/tvclib/utslvclcefinterface.tsf | 186 +++++++- 6 files changed, 769 insertions(+), 109 deletions(-) diff --git a/funcext/tvclib/t_cairo_api.tsf b/funcext/tvclib/t_cairo_api.tsf index 0a57db4..4c6a28c 100644 --- a/funcext/tvclib/t_cairo_api.tsf +++ b/funcext/tvclib/t_cairo_api.tsf @@ -3,17 +3,7 @@ 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()); @@ -29,16 +19,6 @@ type t_cairo_api = class() _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()); @@ -49,16 +29,6 @@ type t_cairo_api = class() _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()); @@ -100,26 +70,6 @@ type t_cairo_api = class() 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()); @@ -145,11 +95,6 @@ type t_cairo_api = class() _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()); @@ -222,11 +167,8 @@ type t_cairo_api = class() 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 + //slat CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_SLANT_ITALIC CAIRO_FONT_SLANT_OBLIQUE + //cairo_font_weight_t CAIRO_FONT_WEIGHT_NORMAL CAIRO_FONT_WEIGHT_BOLD 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()); @@ -237,26 +179,63 @@ type t_cairo_api = class() _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); + procedure cairo_set_font_matrix(cr:pointer;mx:pointer); begin - _f_ := static procedure(cr:pointer;s:string;ext:pointer);cdecl;external get_cairo_func(functionname()); - return ##_f_(cr,s,ext); + _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,mx); end - procedure cairo_font_extents(cr:pointer;ext:pointer); + procedure cairo_get_font_matrix(cr:pointer;mx: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); + _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,mx); 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 + 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_face(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_get_font_face(cr:pointer); + begin + _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); + end + procedure cairo_set_scaled_font(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_get_scaled_font(cr:pointer); + begin + _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); + end + 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_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_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 function cairo_font_options_create():pointer; begin _f_ := static function():pointer;cdecl;external get_cairo_func(functionname()); @@ -267,6 +246,11 @@ type t_cairo_api = class() _f_ := static procedure(op:pointer);cdecl;external get_cairo_func(functionname()); return ##_f_(op); end + function cairo_toy_font_face_get_family(fc:pointer):string; + begin + _f_ := static function(fc:pointer):string;cdecl;external get_cairo_func(functionname()); + return ##_f_(fc); + end ////////cairo surface//////2 { @@ -278,16 +262,27 @@ type t_cairo_api = class() CAIRO_FORMAT_RGB16_565 = 4, CAIRO_FORMAT_RGB30 = 5 } - function cairo_image_surface_create(t:integer;w:integer;h:integer):pointer; + ///////////////////////surface//////////////////////////////////////////////////////////////////// + function cairo_image_surface_create(fmt: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); + _f_ := static function(fmt:integer;w:integer;h:integer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(fmt,w,h); end - function cairo_image_surface_create_from_png(f:string):pointer; + function cairo_image_surface_create_for_data(data:string;fmt:integer;w:integer;h:integer;stride:integer):pointer; begin - _f_ := static function(f:string):pointer;cdecl;external get_cairo_func(functionname()); - return ##_f_(f); + _f_ := static function(data:string;fmt:integer;w:integer;h:integer;stride:integer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(data,fmt,w,h,stride); end + function cairo_image_surface_get_data(sf:pointer):string; + begin + _f_ := static function(sf:pointer):string;cdecl;external get_cairo_func(functionname()); + return ##_f_(sf); + end + function cairo_image_surface_get_format(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_width(sf:pointer):integer; begin _f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname()); @@ -298,6 +293,16 @@ type t_cairo_api = class() _f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname()); return ##_f_(sf); end + function cairo_image_surface_get_stride(sf:pointer):integer; + begin + _f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(sf); + 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 procedure cairo_surface_destroy(sf:pointer); begin _f_ := static procedure(sf:pointer);cdecl;external get_cairo_func(functionname()); @@ -308,22 +313,483 @@ type t_cairo_api = class() _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); + ///////////////path 相关///////////////////////////////////////////////////////////// + function cairo_copy_path(cr:pointer):pointer; begin - _f_ := static procedure(c:pointer;pe:integer);cdecl;external get_cairo_func(functionname()); - return ##_f_(c,pe); + _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); end + function cairo_copy_path_flat(cr:pointer):pointer; + begin + _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); + end + procedure cairo_path_destroy(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c); + end + procedure cairo_append_path(c:pointer;ph:integer); + begin + _f_ := static procedure(c:pointer;ph:integer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,ph); + end + function cairo_has_current_point(cr:pointer):integer; + begin + _f_ := static function(cr:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); + end + procedure cairo_get_current_point(c:pointer;var x:integer;var y:integer); + begin + _f_ := static procedure(c:pointer;var x:integer;var y:integer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,x,y); + end + procedure cairo_new_path(c:pointer);//Clears the current path. After this call there will be no path and no current point + begin + _f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c); + end + procedure cairo_new_sub_path(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_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_arc_negative(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_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 + 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_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_text_path(c:pointer;s:string); + begin + _f_ := static procedure(c:pointer;s:string);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,s); + end + procedure cairo_rel_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 + function cairo_rel_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 + function cairo_rel_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 + procedure cairo_path_extents(cr:pointer;x1:double;y1:double;x2:double;y2:double); + begin + _f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,x1,y1,x2,y2); + end + (* + typedef struct + cairo_status_t status; + cairo_path_data_t *data; + int num_data; + cairo_path_t; + *) + ////////////////pattern//////////////////////////////////////// + procedure cairo_pattern_add_color_stop_rgb(c:pointer;offset:double;r:double;g:double;b:double); + begin + _f_ := static procedure(c:pointer;offset:double;r:double;g:double;b:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,offset,r,g,b); + end + procedure cairo_pattern_add_color_stop_rgba(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 cairo_pattern_get_color_stop_count(pt:pointer;var ct:integer):integer; + begin + _f_ := static function(pt:pointer;var ct:integer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,ct); + end + function cairo_pattern_get_color_stop_rgba(cpt:pointer;idx:integer;var offset:double;var r:double;var g:double;var b:double;var a:double):integer; + begin + _f_ := static function(cpt:pointer;idx:integer;var offset:double;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(cpt,idx,offset,r,g,b,a); + end + function cairo_pattern_create_rgb(r:double;g:double;b:double):pointer; + begin + _f_ := static function(r:double;g:double;b:double):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(r,g,b); + end + function cairo_pattern_create_rgba(r:double;g:double;b:double;a:double):pointer; + begin + _f_ := static function(r:double;g:double;b:double;a:double):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(r,g,b,a); + end + function cairo_pattern_get_rgba(pt:pointer;var r:double;var g:double;var b:double;var a:double):integer; + begin + _f_ := static function(pt:pointer;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,r,g,b,a); + end + function cairo_pattern_create_for_surface(sf:pointer):pointer; + begin + _f_ := static function(sf:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(sf); + end + function cairo_pattern_get_surface(pt:pointer;var sf:pointer):integer; + begin + _f_ := static function(pt:pointer;var sf:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,sf); + 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); + function cairo_pattern_get_linear_points(pt:pointer;var x0:double;var y0:double;var x1:double;var y1:double):integer; 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); + _f_ := static function(pt:pointer;var x0:double;var y0:double;var x1:double;var y1:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,x0,y0,x1,y1); + end + function cairo_pattern_create_radial(x0:double;y0:double;rd0:double;x1:double;y1:double;rd1:double):pointer; + begin + _f_ := static function(x0:double;y0:double;rd0:double;x1:double;y1:double;rd1:double):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(x0,y0,rd0,x1,y1,rd1); + end + function cairo_pattern_get_radial_circles(pt:pointer;var x0:double;var y0:double;var rd0:double;var x1:double;var y1:double;var rd1:double):integer; + begin + _f_ := static function(pt:pointer;var x0:double;var y0:double;var rd0:double;var x1:double;var y1:double;var rd1:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,x0,y0,rd0,x1,y1,rd1); + end + function cairo_pattern_create_mesh():pointer; + begin + _f_ := static function():pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(); + end + procedure cairo_mesh_pattern_begin_patch(pt:pointer); + begin + _f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + procedure cairo_mesh_pattern_end_patch(pt:pointer); + begin + _f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + procedure cairo_mesh_pattern_move_to(pt:pointer;x:double;y:double); + begin + _f_ := static procedure(pt:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,x,y); end - function api_init(); + procedure cairo_mesh_pattern_line_to(pt:pointer;x:double;y:double); + begin + _f_ := static procedure(pt:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,x,y); + end + procedure cairo_mesh_pattern_curve_to(pt:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double); + begin + _f_ := static procedure(pt:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,x1,y1,x2,y2,x3,y3); + end + procedure cairo_mesh_pattern_set_control_point(pt:pointer;point_num:integer;x1:double;y1:double); + begin + _f_ := static procedure(pt:pointer;point_num:integer;x1:double;y1:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,point_num,x1,y1); + end + procedure cairo_mesh_pattern_set_corner_color_rgb(pt:pointer;point_num:integer;r:double;g:double;b:double); + begin + _f_ := static procedure(pt:pointer;point_num:integer;r:double;g:double;b:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,point_num,r,g,b); + end + procedure cairo_mesh_pattern_set_corner_color_rgba(pt:pointer;point_num:integer;r:double;g:double;b:double;a:double); + begin + _f_ := static procedure(pt:pointer;point_num:integer;r:double;g:double;b:double;a:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,point_num,r,g,b,a); + end + function cairo_mesh_pattern_get_patch_count(pt:pointer;var ct:integer):integer; + begin + _f_ := static function(pt:pointer;var ct:integer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,ct); + end + function cairo_mesh_pattern_get_path(pt:pointer;patch_num:integer):pointer; + begin + _f_ := static function(pt:pointer;patch_num:integer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,patch_num); + end + function cairo_mesh_pattern_get_control_point(pt:pointer;patch_num:integer;point_num:integer;var x:double;var y:double):integer; + begin + _f_ := static function(pt:pointer;patch_num:integer;point_num:integer;var x:double;var y:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,patch_num,point_num,x,y); + end + function cairo_mesh_pattern_get_corner_color_rgba(pt:pointer;patch_num:integer;point_num:integer;var r:double;var g:double;var b:double;var a:double):integer; + begin + _f_ := static function(pt:pointer;patch_num:integer;point_num:integer;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,patch_num,point_num,r,g,b,a); + end + function cairo_pattern_reference(pt:pointer):pointer; + begin + _f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + procedure cairo_pattern_destroy(pt:pointer); + begin + _f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + function cairo_pattern_status(pt:pointer):integer; + begin + _f_ := static function(pt:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + 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_get_extend(pt:pointer):pointer; + begin + _f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + procedure cairo_pattern_set_filter(c:pointer;pe:pointer); + begin + _f_ := static procedure(c:pointer;pe:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,pe); + end + function cairo_pattern_get_filter(pt:pointer):pointer; + begin + _f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + procedure cairo_pattern_set_matrix(c:pointer;mx:pointer); + begin + _f_ := static procedure(c:pointer;mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,mx); + end + procedure cairo_pattern_get_matrix(c:pointer;var mx:pointer); + begin + _f_ := static procedure(c:pointer;var mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(c,var mx); + end + function cairo_pattern_get_type(pt:pointer):pointer; + begin + _f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + function cairo_pattern_get_reference_count(pt:pointer):integer; + begin + _f_ := static function(pt:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + function cairo_pattern_set_user_data(pt:pointer;key:string;data:pointer;des:pointer):integer; + begin + _f_ := static function(pt:pointer;key:string;data:pointer;des:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,key,data,des); + end + function cairo_pattern_get_user_data(pt:pointer;key:string):pointer; + begin + _f_ := static function(pt:pointer;key:string):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,key); + end + procedure cairo_pattern_set_dither(pt:pointer;dither:pointer); + begin + _f_ := static procedure(pt:pointer;dither:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(pt,dither); + end + function cairo_pattern_get_dither(pt:pointer):pointer; + begin + _f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(pt); + end + ///////////////////region/////////////////////////// + function cairo_region_create():pointer; + begin + _f_ := static function():pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(); + end + function cairo_region_create_rectangle(rec:pointer):pointer; + begin + _f_ := static function(rec:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rec); + end + function cairo_region_create_rectangles(rec:pointer;ct:integer):pointer; + begin + _f_ := static function(rec:pointer;ct:integer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rec,ct); + end + function cairo_region_copy(rg:pointer):pointer; + begin + _f_ := static function(rg:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + function cairo_region_reference(rg:pointer):pointer; + begin + _f_ := static function(rg:pointer):pointer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + procedure cairo_region_destroy(rg:pointer); + begin + _f_ := static procedure(rg:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + function cairo_region_status(rg:pointer):integer; + begin + _f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + procedure cairo_region_get_extents(rg:pointer;exts:pointer); + begin + _f_ := static procedure(rg:pointer;exts:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,exts); + end + function cairo_region_num_rectangles(rg:pointer):integer; + begin + _f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + procedure cairo_region_get_rectangle(rg:pointer;nth:integer;rectangle:pointer); + begin + _f_ := static procedure(rg:pointer;nth:integer;rectangle:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,nth,rectangle); + end + function cairo_region_is_empty(rg:pointer):integer; + begin + _f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg); + end + function cairo_region_contains_point(rg:pointer;x:integer;y:integer):integer; + begin + _f_ := static function(rg:pointer;x:integer;y:integer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,x,y); + end + function cairo_region_equal(rg:pointer;rg2:pointer):integer; + begin + _f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rg2); + end + function cairo_region_translate(rg:pointer;x:integer;y:integer):integer; + begin + _f_ := static function(rg:pointer;x:integer;y:integer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,x,y); + end + function cairo_region_intersect(rg:pointer;rg2:pointer):integer; + begin + _f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rg2); + end + function cairo_region_intersect_rectangle(rg:pointer;rectangle:pointer):integer; + begin + _f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rectangle); + end + function cairo_region_subtract(rg:pointer;rg2:pointer):integer; + begin + _f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rg2); + end + function cairo_region_subtract_rectangle(rg:pointer;rectangle:pointer):integer; + begin + _f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rectangle); + end + function cairo_region_union(rg:pointer;rg2:pointer):integer; + begin + _f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rg2); + end + function cairo_region_union_rectangle(rg:pointer;rectangle:pointer):integer; + begin + _f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rectangle); + end + function cairo_region_xor(rg:pointer;rg2:pointer):integer; + begin + _f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rg2); + end + function cairo_region_xor_rectangle(rg:pointer;rectangle:pointer):integer; + begin + _f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname()); + return ##_f_(rg,rectangle); + end + ///////////////Transformations//////////////////////////////// + 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_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_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_transform(cr:pointer;mx:pointer); + begin + _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,mx); + end + procedure cairo_set_matrix(cr:pointer;mx:pointer); + begin + _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,mx); + end + procedure cairo_identity_matrix(cr:pointer); + begin + _f_ := static procedure(cr:pointer);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr); + end + procedure cairo_user_to_device(cr:pointer;var sx:double;var sy:double); + begin + _f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,sx,sy); + end + procedure cairo_user_to_device_distance(cr:pointer;var sx:double;var sy:double); + begin + _f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,sx,sy); + end + procedure cairo_device_to_user(cr:pointer;var sx:double;var sy:double); + begin + _f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,sx,sy); + end + procedure cairo_device_to_user_distance(cr:pointer;var sx:double;var sy:double); + begin + _f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname()); + return ##_f_(cr,sx,sy); + end + function api_init(); //初始化 begin end protected diff --git a/funcext/tvclib/t_gdiplusflat_api.tsf b/funcext/tvclib/t_gdiplusflat_api.tsf index 451a197..1a21f3c 100644 --- a/funcext/tvclib/t_gdiplusflat_api.tsf +++ b/funcext/tvclib/t_gdiplusflat_api.tsf @@ -565,12 +565,12 @@ type t_gdiplusflat_api=class() //gdiplus Function GdipIsVisiblePointI(graphics:pointer;x:integer;y:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisiblePointI"; Function GdipIsVisibleRect(graphics:pointer;x:single;y:single;width:single;height:single;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRect"; Function GdipIsVisibleRectI(graphics:pointer;x:integer;y:integer;width:integer;height:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRectI"; - Function GdipSaveGraphics(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipSaveGraphics"; - Function GdipRestoreGraphics(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipRestoreGraphics"; - Function GdipBeginContainer(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer"; - Function GdipBeginContainerI(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainerI"; - Function GdipBeginContainer2(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer2"; - Function GdipEndContainer(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipEndContainer"; + Function GdipSaveGraphics(graphics:pointer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipSaveGraphics"; + Function GdipRestoreGraphics(graphics:pointer;state:integer):integer;stdcall;external "gdiplus.dll" name "GdipRestoreGraphics"; + Function GdipBeginContainer(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer"; + Function GdipBeginContainerI(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainerI"; + Function GdipBeginContainer2(graphics:pointer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer2"; + Function GdipEndContainer(graphics:pointer;state:integer):integer;stdcall;external "gdiplus.dll" name "GdipEndContainer"; Function GdipGetMetafileHeaderFromWmf(hWmf:pointer;wmfPlaceableFileHeader:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromWmf"; Function GdipGetMetafileHeaderFromEmf(hEmf:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromEmf"; Function GdipGetMetafileHeaderFromFile(filename:string;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromFile"; diff --git a/funcext/tvclib/t_img_op_api.tsf b/funcext/tvclib/t_img_op_api.tsf index 3333bda..45d2941 100644 --- a/funcext/tvclib/t_img_op_api.tsf +++ b/funcext/tvclib/t_img_op_api.tsf @@ -1,6 +1,6 @@ type t_img_op_api=class({$ifdef linux}t_cairo_api{$else}t_gdiplusflat_api{$endif}) {** - @explan(说明)gdi+ 的c接口函数 %% + @explan(说明) 封装gdi+处理图片问题 %% **} function create(); begin diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index 3c4f4f9..861c164 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -2177,7 +2177,7 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // c := 1; end else begin - c := Column2StrPos(r,Integer((x-FGutter.Width)/fCharWidth+0.1)+FLeftChar); + c := Column2StrPos(r,Integer((x-FGutter.Width)/fCharWidth+0.4)+FLeftChar); end return array(r,max(1,c)); end diff --git a/funcext/tvclib/utslvclauxiliary.tsf b/funcext/tvclib/utslvclauxiliary.tsf index 7a63e0d..866c64c 100644 --- a/funcext/tvclib/utslvclauxiliary.tsf +++ b/funcext/tvclib/utslvclauxiliary.tsf @@ -708,7 +708,7 @@ type TFpList=class(tarray1dlk) return len(); end end -type tmy_map = class() // map 对象 +type tmy_map = class() //map对象 function create(); begin clear(); @@ -721,15 +721,7 @@ type tmy_map = class() // map end function operator[1](idx,v);//设置数据 begin - k := get_true_key(idx); - fchanged := true; - if ifnil(v) then - begin - reindex(fkvs,array(k:v)); - end else - begin - fkvs[k] := array(idx,v); - end + set_key_val(idx,v); end function operator length(); begin @@ -796,11 +788,33 @@ type tmy_map = class() // map begin nv := flg?true:false; if nv<>fignorecase then - begin - fchanged := true; - fignorecase := nv; + begin + reset := not fignorecase ; + fignorecase := nv; + if reset then + begin + fchanged := true; + tp := fkvs; + fkvs := array(); + for i,v in tp do + begin + set_key_val(v[0],v[1]); + end + end end end + function set_key_val(idx,v); + begin + k := get_true_key(idx); + fchanged := true; + if ifnil(v) then + begin + reindex(fkvs,array(k:v)); + end else + begin + fkvs[k] := array(idx,v); + end + end function formatkvs2(); //格式化 begin if fchanged then diff --git a/funcext/tvclib/utslvclcefinterface.tsf b/funcext/tvclib/utslvclcefinterface.tsf index 93348e3..9ecd897 100644 --- a/funcext/tvclib/utslvclcefinterface.tsf +++ b/funcext/tvclib/utslvclcefinterface.tsf @@ -1,7 +1,7 @@ unit utslvclcefinterface; interface uses cstructurelib; -function cef_version_info(entry:integer); +function cef_version_info(entry:integer); function cef_object_get(ptr,cls); function cef_object_del(ptr); function cef_dictionary_value_create(); @@ -1462,6 +1462,77 @@ type cef_download_handler_t=class(cef_handler_base) cef_object_get(callback,class(cef_download_item_callback_t))); end end +type cef_urlrequest_t=class(cef_contain_base) + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("get_request","intptr",0), //(self) _cef_request_t + ("get_client","intptr",0), //(self) _cef_urlrequest_client_t + ("get_request_status","intptr",0), //(self) int + ("get_request_error","intptr",0), //(self) int + ("get_response","intptr",0), //(self) cef_response_t + ("cancel","intptr",0) //(self) void + ); + end + public + function create(ptr) + begin + inherited; + end +end +type cef_urlrequest_client_t=class(cef_contain_base) + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("on_request_complete","intptr",0), //(self,cef_urlrequest_t) + ("on_upload_progress","intptr",0), //(self,cef_urlrequest_t,int64,int64) + ("on_download_progress","intptr",0), //(self,cef_urlrequest_t,int64,int64) + ("on_download_data","intptr",0), //(self,cef_urlrequest_t,void*data,size_t) + ("get_response","get_auth_credentials",0) //(self,int ,cefstring,int,cefstring,cefsgtring,cef_auth_callback_t) cef_response_t + ); + end + public + function create(ptr) + begin + inherited; + end +end +type cef_auth_callback_t=class(cef_contain_base) + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("cont","intptr",0), + ("cancel","intptr",0) + ); + end + public + function create(ptr) + begin + inherited; + end + function cont(uname,pswd); + begin + ptr := _getvalue_(functionname()); + f := procedure(sf:pointer;uname:string;pswd:string);cdecl;external ptr; + u := new cef_string_t(); + u.str := uname; + p := new cef_string_t(); + p.str := pswd; + return ##f(_getptr_(),u._getptr_(),p._getptr_()); + end + function cancel(); + begin + ptr := _getvalue_(functionname()); + f := procedure(sf:pointer);cdecl;external ptr; + return ##f(_getptr_()); + end +end type cef_before_download_callback_t=class(cef_contain_base) private function structdescribe();override; @@ -3718,7 +3789,90 @@ type cef_request_t=class(cef_contain_base) //cef_request_capi.h //property get_transition_type index "get_transition_type" read _getvalue_ write _setvalue_; //property get_identifier index "get_identifier" read _getvalue_ write _setvalue_; end - +type cef_request_context_handler_t=class(cef_contain_base) + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("on_request_context_initialized","intptr",0), + ("get_resource_request_handler","intptr",0) + ); + end + public + function create(ptr) + begin + inherited ; + end + property on_request_context_initialized index "on_request_context_initialized" read getcallpropertybyindex write setcallpropertybyindex; + procedure on_request_context_initialized_i(s:pointer;request_context:pointer );stdcall; + begin + c := getcallback(functionname()); + if c then + call(c,self(true),cef_object_get(request_context,class(cef_request_context_t))); + end + property get_resource_request_handler index "get_resource_request_handler" read getcallpropertybyindex write setcallpropertybyindex; + function get_resource_request_handler_i(s:pointer;b:pointer;f:pointer;r:pointer; + is_navigation:integer;is_download:integer; + request_initiator:pointer;var disable_default_handling:integer ):pointer;stdcall; + begin + return 0; + c := getcallback(functionname()); + if c then + call(c,self(true),cef_object_get(b,class(cef_browser_t)),cef_object_get(f,class(cef_frame_t)), + cef_object_get(r,class(cef_request_t)) + ,is_navigation + ,is_download + ,new cef_string_t(request_initiator) + ,disable_default_handling + ); + end +end +type cef_resource_request_handler_t=class(cef_contain_base) + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("get_cookie_access_filter","intptr",0), + ("get_resource_request_handler","intptr",0) + ); + end + public + function create(ptr) + begin + inherited ; + end + /// Called on the IO thread before a resource request is loaded. The |browser| + /// and |frame| values represent the source of the request, and may be NULL + /// for requests originating from service workers or cef_urlrequest_t. To + /// optionally filter cookies for the request return a + /// cef_cookie_access_filter_t object. The |request| object cannot not be + /// modified in this callback. + property on_request_context_initialized index "on_request_context_initialized" read getcallpropertybyindex write setcallpropertybyindex; + procedure on_request_context_initialized_i(s:pointer;request_context:pointer );stdcall; + begin + c := getcallback(functionname()); + if c then + call(c,self(true),cef_object_get(request_context,class(cef_request_context_t))); + end + property get_resource_request_handler index "get_resource_request_handler" read getcallpropertybyindex write setcallpropertybyindex; + function get_resource_request_handler_i(s:pointer;b:pointer;f:pointer;r:pointer; + is_navigation:integer;is_download:integer; + request_initiator:pointer;var disable_default_handling:integer ):pointer;stdcall; + begin + return 0; + c := getcallback(functionname()); + if c then + call(c,self(true),cef_object_get(b,class(cef_browser_t)),cef_object_get(f,class(cef_frame_t)), + cef_object_get(r,class(cef_request_t)) + ,is_navigation + ,is_download + ,new cef_string_t(request_initiator) + ,disable_default_handling + ); + end +end type cef_request_handler_t=class(cef_handler_base) private function structdescribe();override; @@ -5826,8 +5980,16 @@ type cef_frame_t=class(cef_contain_base) ##f(_getptr_(),visit._getptr_()); return 1; end - //property load_request index "load_request" read _getvalue_ write _setvalue_; //property load_url index "load_url" read _getvalue_ write _setvalue_; + function load_request(r); + begin + if r is class(cef_request_t) then + begin + ptr := _getvalue_("load_request"); + f:= procedure(s:pointer;r:pointer);stdcall; external ptr; + //return ##f(_getptr_(),r._getptr_()); + end + end function load_url(url); begin if ifstring(url) then @@ -6479,6 +6641,24 @@ begin g_cef_objects_[sptr] := obj; end end +/// Create a new URL request that is not associated with a specific browser or +/// frame. Use cef_frame_t::CreateURLRequest instead if you want the request to +/// have this association, in which case it may be handled differently (see +/// documentation on that function). A request created with this function may +/// only originate from the browser process, and will behave as follows: +/// - It may be intercepted by the client via CefResourceRequestHandler or +/// CefSchemeHandlerFactory. +/// - POST data may only contain only a single element of type PDE_TYPE_FILE +/// or PDE_TYPE_BYTES. +/// - If |request_context| is empty the global request context will be used. +/// +/// The |request| object will be marked as read-only after calling this +/// function. +function cef_urlrequest_create(r,c,rct):pointer; +begin + _f_ := static function(r:pointer;c:pointer;rct:pointer):pointer;stdcall;external getceffunction(functionname()); + return ##_f_(r,c,rct); +end /// /// Returns the task runner for the current thread. Only CEF threads will have /// task runners. An NULL reference will be returned if this function is called