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

enum Ector.Quality
{
   [[Quality values]]
   best, [[Best quality]]
   good, [[Good quality]]
   fast, [[Lower quality]]
   last, [[Sentinel]]
}

abstract Ector.Renderer (Eo.Base)
{
   [[Ector renderer abstract interface]]

   eo_prefix: ector_renderer;
   legacy_prefix: null;
   methods {
      @property surface {
         [[Surface associated to this renderer]]
         set {
	    [[Do not use.]]
	 }
	 get {
	    [[Get the surface associated to this renderer. Can not be set.]]
	 }
	 values {
	    s: Ector.Surface *; [[Associated surface]]
	 }
      }
      @property transformation {
         set {
	 }
	 get {
	 }
	 values {
	    m: const(Eina.Matrix3) *;
	 }
      }
      @property origin {
         set {
	 }
	 get {
	 }
	 values {
	    x: double;
	    y: double;
	 }
      }
      @property visibility {
         [[The given Ector renderer visible or invisible.]]
         set {
	 }
	 get {
	 }
	 values {
	    v: bool; [[true if 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 {
         set {
	 }
	 get {
	 }
	 values {
	    r: Ector.Renderer *;
	 }
      }
      @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]]
	 }
      }
      bounds_get @virtual_pure {
         [[Retrieve the bounds of the renderer]]
	 params {
	    @out r: Eina.Rectangle; [[Bounds as @Eina.Rectangle]]
	 }
      }
      draw @virtual_pure {
         return: bool @warn_unused;
	 params {
	    @in op: Efl.Gfx.Render_Op;
	    @in clips: array<Eina.Rectangle *> *; [[array of @Eina.Rectangle clip]]
	    @in mul_col: uint;
	 }
      }
      prepare {
         return: bool @warn_unused;
	 params {
	 }
      }
      done @virtual_pure {
         return: bool @warn_unused;
      }
   }
   implements {
      Eo.Base.destructor;
      Eo.Base.finalize;
   }
}