summaryrefslogtreecommitdiff
path: root/src/lib/ector/ector_renderer.eo
blob: d3d959c06a0eeeb967b878e8c5460e487f110d6c (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
import eina_types;

enum Ector.Quality
{
   [[Quality values]]
   best, [[Best quality]]
   good, [[Good quality]]
   fast, [[Lower quality]]
   last, [[Sentinel value to indicate last enum field during iteration]]
}

abstract Ector.Renderer (Efl.Object)
{
   [[Ector renderer abstract interface]]

   eo_prefix: ector_renderer;
   methods {
      @property surface {
         [[Surface associated with this renderer]]
         set {
            [[Do not use.]]
         }
         get {
            [[Gets the surface associated with this renderer. Can not be set.]]
         }
         values {
            s: Ector.Surface; [[Associated surface]]
         }
      }
      @property transformation {
         [[Transformation property]]
         set {
         }
         get {
         }
         values {
            @cref m: Eina.Matrix3; [[Transformation matrix]]
         }
      }
      @property origin {
         [[Renderer origin]]
         set {
         }
         get {
         }
         values {
            x: double; [[X coordinate]]
            y: double; [[Y coordinate]]
         }
      }
      @property visibility {
         [[The given Ector renderer can be visible or invisible.]]
         set {
         }
         get {
         }
         values {
            v: bool; [[$true to make the object visible, $false otherwise]]
         }
      }
      @property color {
         [[Retrieves the general/main color of the given Ector renderer.

           Retrieves the main color's RGB component (and alpha channel)
           values, which range from 0 to 255. For the alpha channel,
           which defines the object's transparency level, 0 means totally
           transparent, while 255 means opaque. These color values are
           premultiplied by the alpha value.

           Use null pointers on the components you're not interested in,
           they'll be ignored by the function.
         ]]
         set {
         }
         get {
    }
    values {
            r: int; [[The red component of the given color.]]
            g: int; [[The green component of the given color.]]
            b: int; [[The blue component of the given color.]]
            a: int; [[The alpha component of the given color.]]
         }
      }
      @property mask {
         [[Rendering mask]]
         set {
         }
         get {
         }
         values {
            r: Ector.Renderer; [[Rendering mask]]
         }
      }
      @property quality {
         [[Quality of the renderer]]
         set {
         }
         get {
         }
         values {
            q: Ector.Quality; [[Quality of the renderer]]
         }
      }
      @property crc {
         [[Cyclic redundancy check]]
         get {
            return: uint; [[CRC value]]
         }
      }
      draw @pure_virtual {
         [[Actual draw operation]]
         return: bool; [[$true on success, $false otherwise]]
         params {
            @in op: Efl.Gfx.Render_Op; [[Renderer operation]]
            @in clips: array<ptr(Eina.Rect)>; [[Array of @Eina.Rect clip]]
            @in mul_col: uint; [[Premultiplied color]]
         }
      }
      prepare {
         [[Prepare for rendering]]
         return: bool; [[$true on success, $false otherwise]]
      }
      done @pure_virtual {
         [[Done with rendering]]
         return: bool; [[$true on success, $false otherwise]]
      }
   }
   implements {
      Efl.Object.destructor;
      Efl.Object.finalize;
   }
}