summaryrefslogtreecommitdiff
path: root/src/lib/efl/interfaces/efl_gfx_types.eot
blob: 99d86c18e24de275a19b6eaab79a7c5ff3ed8cd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
enum Efl.Gfx.Colorspace {
  argb8888 = 0, [[ARGB 32 bits per pixel, high-byte is Alpha, accessed one 32-bit word at a time.]]
  gry8 = 4,     [[8-bit gray image, or alpha only.]]
}

enum Efl.Gfx.Render_Op {
  blend = 0, [[Alpha blending onto destination (default); d = d*(1-sa) + s.]]
  copy  = 1, [[Copy source to destination; d = s.]]
  last
}

enum Efl.Gfx.Color_Type {
  bits8,     [[Color is encoded in the top 8 bits of the unsigned short as a unsigned char.]]
  bits16,    [[Color is encoded in the 16 bits as an unsigned short.]]
  last
}

struct Efl.Gfx.Color {
  [[Define an RGBA color.]]
  r: ushort; [[The red component.]]
  g: ushort; [[The green component.]]
  b: ushort; [[The blue component.]]
  a: ushort; [[The alpha component.]]

  type: Efl.Gfx.Color_Type; [[Defines whether the color is 8-bit or 16-bit encoded.]]
}

enum Efl.Gfx.Path.Command_Type {
  [[These values determine how the points are interpreted in a stream of points.
    @since 1.14
  ]]
  end = 0,   [[The end of stream , no more points to process.]]
  move_to,   [[The next point is the start point of a sub path.]]
  line_to,   [[The next point is used to draw a line from current point.]]
  cubic_to,  [[The next three point is used to draw a cubic bezier curve from current point.]]
  close,     [[Close the curent subpath by drawing a line between current point and the first point of current subpath.]]
  last       [[Not a valid command, but last one according to this version header.]]
}

enum Efl.Gfx.Cap {
  [[These values determine how the end of opened sub-paths are rendered in a
    stroke.
    $ref efl_gfx_shape_stroke_cap_set()
    @since 1.14
  ]]
  butt = 0,  [[The end of lines is rendered as a full stop on the last point itself.]]
  round,     [[The end of lines is rendered as a half-circle around the last point.]]
  square,    [[The end of lines is rendered as a square around the last point.]]
  last       [[End of enum value.]]
}

enum Efl.Gfx.Join
{
  [[These values determine how two joining lines are rendered in a stroker.
    $ref efl_gfx_shape_stroke_join_set()
    @since 1.14
  ]]
  miter = 0, [[Used to render rounded line joins. Circular arcs are used to join two lines smoothly.]]
  round, [[Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.]]
  bevel, [[Used to render mitered line joins. The intersection of the strokes is clipped at a line perpendicular to the bisector of the angle between the strokes, at the distance from the intersection of the segments equal to the product of the miter limit value and the border radius.  This prevents long spikes being created.]]
  last [[End of enum value]]
}

enum Efl.Gfx.Gradient.Spread
{
  [[Specifies how the area outside the gradient area should be filled.
    $ref efl_gfx_gradient_spread_set()
    @since 1.14
  ]]
  pad, [[The area is filled with the closest stop color. This is the default.]]
  reflect, [[The gradient is reflected outside the gradient area.]]
  repeat, [[The gradient is repeated outside the gradient area.]]
  last [[End of enum value]]
}

enum Efl.Gfx.Fill.Rule
{
  [[Type defining how an image content get filled.
    @since 1.14
  ]]
  winding = 0, [[Draw a horizontal line from the point to a location outside the shape. Determine whether the direction of the line at each intersection point is up or down. The winding number is determined by summing the direction of each intersection. If the number is non zero, the point is inside the shape. This mode is the default]]
  odd_even = 1,  [[Draw a horizontal line from the point to a location outside the shape, and count the number of intersections. If the number of intersections is an odd number, the point is inside the shape.]]
}

struct Efl.Gfx.Dash {
  [[Type describing dash.
    $ref efl_gfx_shape_stroke_dash_set()
    @since 1.14
  ]]
  length: double;  [[Dash drawing length.]]
  gap: double;     [[Distance bettwen two dashes.]]
}

struct Efl.Gfx.Gradient.Stop
{
  [[Type defining gradient stops.
    Describes the location and color of a transition point in a gradient.
    @since 1.14
  ]]
  offset: double; [[The location of the gradient stop within the gradient vector]]
  r: int; [[The component R color of the gradient stop]]
  g: int; [[The component G color of the gradient stop]]
  b: int; [[The component B color of the graident stop]]
  a: int; [[The component A color of the graident stop]]
}

struct Efl.Gfx.Stroke_Color
{
  [[Internal structure for @ref Efl.Gfx.Stroke.]]
  r: int;
  g: int;
  b: int;
  a: int;
}

struct Efl.Gfx.Stroke
{
  [[Type defining stroke information.
    Describes the properties to define the path stroke.
    @since 1.14
  ]]
  scale: double;
  width: double;
  centered: double;
  color: Efl.Gfx.Stroke_Color;
  dash: Efl.Gfx.Dash*;
  dash_length: uint;
  cap: Efl.Gfx.Cap;
  join: Efl.Gfx.Join;
}

struct Efl.Gfx.Shape.Public
{
   stroke: Efl.Gfx.Stroke;
}