This call draws a filled area, for example a complex polygon.
Decl.: void v_fillarea( WORD handle, WORD count, WORD *xyarr ); Call: v_fillarea( handle, count, xyarr ); Variable Arguments Meaning Input: contrl[0] 9 v_fillarea contrl[1] n entries in ptsin contrl[3] 0 entries in intin contrl[6] handle ptsin[0..2n-1] xyarr[0..2n-1] coordinates Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
This call draws a filled polygon with bezier curves.
Decl.: void v_bez_fill( WORD handle, WORD count, WORD *xyarr, UBYTE *bezarr, WORD *extent, WORD *totpts, WORD *totmoves ); Call: v_bez_fill( handle, count, xyarr, bezarr, extent, totpts, totmoves ); Variable Arguments Meaning Input: contrl[0] 9 v_bez_fill contrl[1] n entries in ptsin contrl[3] (n+1)/2 entries in intin contrl[5] 13 signalisiert v_bez_fill contrl[6] handle ptsin[0..2n-1] xyarr[0..2n-1] Koordinaten intin[0..(n+1)/2-1] bezarr[0..n-1] Punkttypen Output: contrl[2] 2 entries in ptsout contrl[4] 6 entries in intout intout[0] totpts number of points in the resulting polygon intout[1] totmoves number of moves in the polygon intout[2..5] reserved ptsout[0..3] extent[0..3] coordinates of the bounding box Meaning of the point-type flags: bit 0: first point in a 4-point bezier curve (two anchor points and two direction points). The last point of a bezier segment can be the first point of the next bezier curve (or it can be a jump point). bit 1: jump point - this point and the previous one will not be connected. Bit 2-7 are reserved. If bit 0 is 0, v_bez_fill() works like v_fillarea() and fills the area limited by a line between two points.
Note: The binding for this function has to swap the bytes in intin because unfortunately this function is compatible with PC-GEM. => bezarr[0] is the low byte of intin[0] bezarr[1] is the high byte of intin[0]...
This function draws a filled rectangle. In contrast to "FILLED RECTANGLE" a border is drawn.
Decl.: void v_bar( WORD handle, WORD *rect ); Call: v_bar( handle, rect ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 2 entries in ptsin contrl[3] 0 entries in intin contrl[5] 1 v_bar contrl[6] handle ptsin[0..3] rect[0..3] coordinates of the rectangle Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
This function draws a filled arc, whose start and end angle can be set in tenths of degrees from 0 to 3600.
Decl.: void v_pieslice( WORD handle, WORD x, WORD y, WORD radius, WORD begang, WORD endang ); Call: v_pieslice( handle, x, y, radius, begang, endang ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 4 entries in ptsin contrl[3] 2 entries in intin contrl[5] 3 v_pieslice contrl[6] handle intin[0] begang start angle intin[1] endang end angle ptsin[0] x ptsin[1] y ptsin[6] radius radius Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
This call draws a filled circle.
Decl.: void v_circle( WORD handle, WORD x, WORD y, WORD radius ); Call: v_circle( handle, x, y, radius ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 3 entries in ptsin contrl[3] 0 entries in intin contrl[5] 4 v_circle contrl[6] handle ptsin[0] x ptsin[1] y ptsin[4] radius radius Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
...
Decl.: void v_ellipse( WORD handle, WORD x, WORD y, WORD x_radius, WORD y_radius ); Call: v_ellipse( handle, x, y, x_radius, y_radius ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 2 entries in ptsin contrl[3] 0 entries in intin contrl[5] 5 v_ellipse contrl[6] handle ptsin[0] x ptsin[1] y ptsin[2] x_radius horizontal radius ptsin[3] y_radius vertical radius Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
"ELLIPTICAL PIE" draws a filled elliptical arc, whose start and end angle can be selected in tenths of degrees from 0 to 3600.
Decl.: void v_ellpie( WORD handle, WORD x, WORD y, WORD x_radius, WORD y_radius, WORD begang, WORD endang ); Call: v_ellpie( handle, x, y, x_radius, y_radius, begang, endang ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 2 entries in ptsin contrl[3] 2 entries in intin contrl[5] 7 v_ellpie contrl[6] handle intin[0] begang start angle intin[1] endang end angle ptsin[0] x ptsin[1] y ptsin[2] x_radius horizontal radius ptsin[3] y_radius vertical radius Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
A filled rectangle with rounded corners is drawn by this function.
Decl.: void v_rfbox( WORD handle, WORD *rect ); Call: v_rfbox( handle, rect ); Variable Arguments Meaning Input: contrl[0] 11 GDP contrl[1] 2 entries in ptsin contrl[3] 0 entries in intin contrl[5] 9 v_rfbox contrl[6] handle ptsin[0..3] rect[0..3] Koordinaten Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
This function selects the fill type for filled graphic objects. If the requested type is invalid, type 0 (hollow) will be selected.
Decl.: WORD vsf_interior( WORD handle, WORD interior ); Call: set_interior = vsf_interior( handle, interior ); Variable Arguments Meaning Input: contrl[0] 23 vsf_interior contrl[1] 0 entries in ptsin contrl[3] 1 entries in intin contrl[6] handle intin[0] interior requested fill type Output: contrl[2] 0 entries in ptsout contrl[4] 1 entries in intout intout[0] set_interior selected fill type Meaning of interior: 0: hollow 1: solid 2: pattern 3: hatch 4: user-defined style
This call sets the style index which is corresponding to the type.
Decl.: WORD vsf_style( WORD handle, WORD style_index ); Call: set_style = vsf_style( handle, style_index ); Variable Arguments Meaning Input: contrl[0] 24 vsf_style contrl[1] 0 entries in ptsin contrl[3] 1 entries in intin contrl[6] handle intin[0] style_index requested index Output: contrl[2] 0 entries in ptsout contrl[4] 1 entries in intout intout[0] set_sytle selected index
...sets the color index for filled areas. If the index is invalid, color index 1 will be selected. If you use a colored pattern (see vsf_udpat) the color index will be ignored; you should set it to 1.
Decl.: WORD vsf_color( WORD handle, WORD color_index ); Call: set_color = vsf_color( handle, color_index ); Variable Arguments Meaning Input: contrl[0] 25 vsf_color contrl[1] 0 entries in ptsin contrl[3] 1 entries in intin contrl[6] handle intin[0] color_index requested fill color Output: contrl[2] 0 entries in ptsout contrl[4] 1 entries in intout intout[0] set_color realized color
This function reports back the current attributes for filled objects.
Decl.: void vqf_attributes( WORD handle, WORD *attrib ); Call: vqf_attributes( handle, attrib ); Variable Arguments Meaning Input: contrl[0] 37 vqm_attributes contrl[1] 0 entries in ptsin contrl[3] 0 entries in intin contrl[6] handle Output: contrl[2] 0 entries in ptsout contrl[4] 5 entries in intout intout[0] attrib[0] fill type intout[1] attrib[1] fill color intout[2] attrib[2] fill style index intout[3] attrib[3] writing mode intout[4] attrib[4] perimeter flag
This call fills an area which is limited by another color or the edges of the display. Use this function on the screen only!
Decl.: void v_contourfill( WORD handle, WORD x, WORD y, WORD color_index ); Call: v_contourfill( handle, x, y, color_index );
Variable Arguments Meaning Input: contrl[0] 103 v_contourfill contrl[1] 1 entries in ptsin contrl[3] 1 entries in intin contrl[6] handle intin[0] color_index color index ptsin[0] x ptsin[1] y Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
This function turns the outline of a filled area (rectangle, polygone, ellipse, ...) on or off.
Decl.: WORD vsf_perimeter( WORD handle, WORD flag ); Call: set_perimeter = vsf_perimter( handle, flag ); Variable Arguments Meaning Input: contrl[0] 104 vsf_perimeter contrl[1] 0 entries in ptsin contrl[3] 1 entries in intin contrl[6] handle intin[0] flag perimeter flag Output: contrl[2] 0 entries in ptsout contrl[4] 1 entries in intout intout[0] set_perimeter perimeter flag Meaning of flag: 0: invisible 1: visible
"SET USER-DEFINED FILL PATTERN" is the function which allows you to set a user-defined 16*16 pixel pattern. Patterns with multiple colors have to be stored in standard format and must have the same number of planes as the device. Exception: If the device is a Hicolor or Truecolor device (direct color mapping) you always pass a pattern width 32-bit pixels (xrgb).
Decl.: void vsf_udpat( WORD handle, WORD *pattern, WORD planes ); Call: vsf_udpat( handle, pattern, planes ); Variable Arguments Meaning Input: contrl[0] 112 vsf_udpat contrl[1] 0 entries in ptsin contrl[3] 16n entries in intin (planes * 16) contrl[6] handle intin[0..16n-1] pattern[0..16n-1] planes Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout
Note: If you use a pattern with multiple colors you should select color index 1 and writing mode 1.
"FILLED RECTANGLE" draw a filled rectangle (without outline).
Decl.: void vr_recfl( WORD handle, WORD *rect ); Call: vr_recfl( handle, rect ); Variable Arguments Meaning Input: contrl[0] 114 vr_recfl contrl[1] 2 entries in ptsin contrl[3] 0 entries in intin contrl[6] handle ptsin[0..3] rect[0..3] coordinates Output: contrl[2] 0 entries in ptsout contrl[4] 0 entries in intout