summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_3d_texture.eo
blob: 39efb61e237eca5071aec1705aec9aeab131b188 (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
class Evas_3D_Texture (Evas_3D_Object, Evas.Common_Interface)
{
   legacy_prefix: null;
   data : Evas_3D_Texture_Data;
   properties {
      source_visible {
         set {
            /*
              Set the visibility flag of the source evas object of the given texture.

              Recommend to call evas_object_show() on the source object and controll the
              visibility using this function.

              By default, source object is visible.

              @see evas_3d_texture_source_set()

              @ingroup Evas_3D_Texture
             */
         }
         get {
            /*
              Get the visibility flag of the source evas object of the given texture.

              @see evas_3d_texture_source_visible_set()

              @ingroup Evas_3D_Texture
             */
         }
         values {
            bool visible; /*@ @c EINA_TRUE for visible, @c EINA_FALSE for invisible.*/
         }
      }
      atlas_enable {
         set {
            /*
              Set enable flag to generation texture unit with support atlas.

              Use this flag only in case not normalize texture coordinates.

              By default, is enabled.

              @ingroup Evas_3D_Texture
             */
         }
         get {
            /*
              Get enable flag of generation texture unit with support atlas.

              @ingroup Evas_3D_Texture
             */
         }
         values {
            bool use_atlas; /*@ @c EINA_TRUE for enable, @c EINA_FALSE for disable.*/
         }
      }
   }
   methods {
      data_set {
         /*
           Set the data of the given texture.

           @see evas_3d_texture_file_set()

           @ingroup Evas_3D_Texture
          */

         params {
            @in Evas_Colorspace color_format; /*@ Color format of the texture. */
            @in int w; /*@ Width of the data. */
            @in int h; /*@ Height of the data. */
            @in const(void)* data; /*@ Pointer to the data. */
         }
      }

      file_set {
         /*
           Set the data of the given texture from file.

           @ingroup Evas_3D_Texture
          */

         params {
            @in const(char)* file; /*@ Path to the image file. */
            @in const(char)* key; /*@ Key in the image file. */
         }
      }

      source_set {
         /*
           Set the data of the given texture from an evas object.

           Evas 3D support using existing evas object as a texture source. This feature
           make it possible using any exisiting evas object inside 3D scene.

           @see evas_3d_texture_source_visible_set

           @ingroup Evas_3D_Texture
          */

         params {
            @in Evas_Object *source; /*@ Source evas object to be used as the texture data. */
         }
      }

      color_format_get @const {
         /*
           Get the color format of the given texture.

           EVAS_3D_COLOR_FORMAT_RGBA will be returned if the texture has source object.
           Otherwise, the color format of the data will be returned.

           @see evas_3d_texture_data_set()
           @see evas_3d_texture_file_set()
           @see evas_3d_texture_source_set()

           @ingroup Evas_3D_Texture
          */
         return: Evas_Colorspace;
      }

      size_get @const {
         /*
           Get the size of the given texture.

           If the texture has source object, the size of the source object will be
           returned. Otherwise, the size of the data (or image file) will be returned.

           @see evas_3d_texture_data_set()
           @see evas_3d_texture_file_set()
           @see evas_3d_texture_source_set()

           @ingroup Evas_3D_Texture
          */
         params {
            @out int w; /*@ Pointer to receive the width of the texture size. */
            @out int h; /*@ Pointer to receive the height of the texture size. */
         }
      }

      wrap_set {
         /*
           Set the wrap mode of the given texture.
           If the texture coordinate exceed range [0.0, 1.0] the values are modified
           according to the wrap mode.

           Default wrap modes are both EVAS_3D_WRAP_MODE_CLAMP for s and t.

           @ingroup Evas_3D_Texture
          */
         params {
            @in Evas_3D_Wrap_Mode s; /*@ Wrap mode for S-axis. */
            @in Evas_3D_Wrap_Mode t; /*@ Wrap mode for T-axis. */
         }
      }

      wrap_get {
         /*
           Get the wrap mode of the given texture.

           @see evas_3d_texture_wrap_set()

           @ingroup Evas_3D_Texture
          */

         params {
            @out Evas_3D_Wrap_Mode s; /*@ Pointer to receive S-axis wrap mode. */
            @out Evas_3D_Wrap_Mode t; /*@ Pointer to receive T-axis wrap mode. */
         }
      }

      filter_set {
         /*
           Set the filter of the given texture.

           Default filters are both EVAS_3D_TEXTURE_FILTER_NEAREST for s and t.

           @ingroup Evas_3D_Texture
          */

         params {
            @in Evas_3D_Texture_Filter min; /*@ Minification filter used when down-scaling. */
            @in Evas_3D_Texture_Filter mag; /*@ Magnification filter used when up-scaling. */
         }
      }

      filter_get @const {
         /*
           Get the filter of the given texture.

           @param texture       The given texture.
           @param min           Pointer to receive the minification filter.
           @param mag           Pointer to receive the magnification filter.

           @see evas_3d_texture_filter_set()

           @ingroup Evas_3D_Texture
          */
         params {
            @out Evas_3D_Texture_Filter min; /*@ Pointer to receive the minification filter. */
            @out Evas_3D_Texture_Filter mag; /*@ Pointer to receive the magnification filter. */
         }
      }
   }

   implements {
      Eo.Base.constructor;
      Eo.Base.destructor;
      Evas_3D_Object.update_notify;
      Evas_3D_Object.change_notify;
   }

}