• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17// Don't edit this file!  It is auto-generated by frameworks/rs/api/generate.sh.
18
19/*
20 * rs_allocation_create.rsh: Allocation Creation Functions
21 *
22 * The functions below can be used to create Allocations from a Script.
23 *
24 * These functions can be called directly or indirectly from an invokable
25 * function.  If some control-flow path can result in a call to these functions
26 * from a RenderScript kernel function, a compiler error will be generated.
27 */
28
29#ifndef RENDERSCRIPT_RS_ALLOCATION_CREATE_RSH
30#define RENDERSCRIPT_RS_ALLOCATION_CREATE_RSH
31
32/*
33 * rsCreateElement: Creates an rs_element object of the specified data type
34 *
35 *  Creates an rs_element object of the specified data type.  The data kind of
36 *  the Element will be set to RS_KIND_USER and vector_width will be set to 1,
37 *  indicating non-vector.
38 *
39 * Parameters:
40 *   data_type: Data type of the Element
41 */
42#if (defined(RS_VERSION) && (RS_VERSION >= 24))
43extern rs_element __attribute__((overloadable))
44    rsCreateElement(rs_data_type data_type);
45#endif
46
47/*
48 * rsCreateVectorElement: Creates an rs_element object of the specified data type and vector width
49 *
50 *  Creates an rs_element object of the specified data type and vector width.
51 *  Value of vector_width must be 2, 3 or 4.  The data kind of the Element will
52 *  be set to RS_KIND_USER.
53 *
54 * Parameters:
55 *   data_type: Data type of the Element
56 *   vector_width: Vector width (either 2, 3, or 4)
57 */
58#if (defined(RS_VERSION) && (RS_VERSION >= 24))
59extern rs_element __attribute__((overloadable))
60    rsCreateVectorElement(rs_data_type data_type, uint32_t vector_width);
61#endif
62
63/*
64 * rsCreatePixelElement: Creates an rs_element object of the specified data type and data kind
65 *
66 *  Creates an rs_element object of the specified data type and data kind.  The
67 *  vector_width of the Element will be set to 1, indicating non-vector.
68 *
69 * Parameters:
70 *   data_type: Data type of the Element
71 *   data_kind: Data kind of the Element
72 */
73#if (defined(RS_VERSION) && (RS_VERSION >= 24))
74extern rs_element __attribute__((overloadable))
75    rsCreatePixelElement(rs_data_type data_type, rs_data_kind data_kind);
76#endif
77
78/*
79 * rsCreateType: Creates an rs_type object with the specified Element and shape attributes
80 *
81 *  Creates an rs_type object with the specified Element and shape attributes.
82 *
83 *  dimX specifies the size of the X dimension.
84 *
85 *  dimY, if present and non-zero, indicates that the Y dimension is present and
86 *  indicates its size.
87 *
88 *  dimZ, if present and non-zero, indicates that the Z dimension is present and
89 *  indicates its size.
90 *
91 *  mipmaps indicates the presence of level of detail (LOD).
92 *
93 *  faces indicates the  presence of cubemap faces.
94 *
95 *  yuv_format indicates the associated YUV format (or RS_YUV_NONE).
96 *
97 * Parameters:
98 *   element: Element to be associated with the Type
99 *   dimX: Size along the X dimension
100 *   dimY: Size along the Y dimension
101 *   dimZ: Size along the Z dimension
102 *   mipmaps: Flag indicating if the Type has a mipmap chain
103 *   faces: Flag indicating if the Type is a cubemap
104 *   yuv_format: YUV layout for the Type
105 */
106#if (defined(RS_VERSION) && (RS_VERSION >= 24))
107extern rs_type __attribute__((overloadable))
108    rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ, bool mipmaps,
109                 bool faces, rs_yuv_format yuv_format);
110#endif
111
112#if (defined(RS_VERSION) && (RS_VERSION >= 24))
113extern rs_type __attribute__((overloadable))
114    rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY, uint32_t dimZ);
115#endif
116
117#if (defined(RS_VERSION) && (RS_VERSION >= 24))
118extern rs_type __attribute__((overloadable))
119    rsCreateType(rs_element element, uint32_t dimX, uint32_t dimY);
120#endif
121
122#if (defined(RS_VERSION) && (RS_VERSION >= 24))
123extern rs_type __attribute__((overloadable))
124    rsCreateType(rs_element element, uint32_t dimX);
125#endif
126
127/*
128 * rsCreateAllocation: Create an rs_allocation object of given Type.
129 *
130 *  Creates an rs_allocation object of the given Type and usage.
131 *
132 *  RS_ALLOCATION_USAGE_SCRIPT and RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE are the
133 *  only supported usage flags for Allocations created from within a RenderScript
134 *  Script.
135 *
136 *  You can also use rsCreateAllocation_ wrapper functions to directly
137 *  create Allocations of scalar and vector numerical types without creating
138 *  intermediate rs_element or rs_type objects.
139 *
140 *  E.g. rsCreateAllocation_int4() returns an Allocation of int4 data type of
141 *  specified dimensions.
142 *
143 * Parameters:
144 *   type: Type of the Allocation
145 *   usage: Usage flag for the allocation
146 */
147#if (defined(RS_VERSION) && (RS_VERSION >= 24))
148extern rs_allocation __attribute__((overloadable))
149    rsCreateAllocation(rs_type type, uint32_t usage);
150#endif
151
152#if (defined(RS_VERSION) && (RS_VERSION >= 24))
153extern rs_allocation __attribute__((overloadable))
154    rsCreateAllocation(rs_type type);
155#endif
156
157#if (defined(RS_VERSION) && (RS_VERSION >= 24))
158static inline rs_allocation __attribute__((overloadable))
159    rsCreateAllocation_half(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
160     rs_element e = rsCreateElement(RS_TYPE_FLOAT_16);
161     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
162     return rsCreateAllocation(t);
163}
164#endif
165
166#if (defined(RS_VERSION) && (RS_VERSION >= 24))
167static inline rs_allocation __attribute__((overloadable))
168    rsCreateAllocation_float(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
169     rs_element e = rsCreateElement(RS_TYPE_FLOAT_32);
170     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
171     return rsCreateAllocation(t);
172}
173#endif
174
175#if (defined(RS_VERSION) && (RS_VERSION >= 24))
176static inline rs_allocation __attribute__((overloadable))
177    rsCreateAllocation_double(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
178     rs_element e = rsCreateElement(RS_TYPE_FLOAT_64);
179     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
180     return rsCreateAllocation(t);
181}
182#endif
183
184#if (defined(RS_VERSION) && (RS_VERSION >= 24))
185static inline rs_allocation __attribute__((overloadable))
186    rsCreateAllocation_char(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
187     rs_element e = rsCreateElement(RS_TYPE_SIGNED_8);
188     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
189     return rsCreateAllocation(t);
190}
191#endif
192
193#if (defined(RS_VERSION) && (RS_VERSION >= 24))
194static inline rs_allocation __attribute__((overloadable))
195    rsCreateAllocation_uchar(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
196     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_8);
197     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
198     return rsCreateAllocation(t);
199}
200#endif
201
202#if (defined(RS_VERSION) && (RS_VERSION >= 24))
203static inline rs_allocation __attribute__((overloadable))
204    rsCreateAllocation_short(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
205     rs_element e = rsCreateElement(RS_TYPE_SIGNED_16);
206     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
207     return rsCreateAllocation(t);
208}
209#endif
210
211#if (defined(RS_VERSION) && (RS_VERSION >= 24))
212static inline rs_allocation __attribute__((overloadable))
213    rsCreateAllocation_ushort(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
214     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_16);
215     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
216     return rsCreateAllocation(t);
217}
218#endif
219
220#if (defined(RS_VERSION) && (RS_VERSION >= 24))
221static inline rs_allocation __attribute__((overloadable))
222    rsCreateAllocation_int(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
223     rs_element e = rsCreateElement(RS_TYPE_SIGNED_32);
224     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
225     return rsCreateAllocation(t);
226}
227#endif
228
229#if (defined(RS_VERSION) && (RS_VERSION >= 24))
230static inline rs_allocation __attribute__((overloadable))
231    rsCreateAllocation_uint(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
232     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_32);
233     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
234     return rsCreateAllocation(t);
235}
236#endif
237
238#if (defined(RS_VERSION) && (RS_VERSION >= 24))
239static inline rs_allocation __attribute__((overloadable))
240    rsCreateAllocation_long(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
241     rs_element e = rsCreateElement(RS_TYPE_SIGNED_64);
242     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
243     return rsCreateAllocation(t);
244}
245#endif
246
247#if (defined(RS_VERSION) && (RS_VERSION >= 24))
248static inline rs_allocation __attribute__((overloadable))
249    rsCreateAllocation_ulong(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
250     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_64);
251     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
252     return rsCreateAllocation(t);
253}
254#endif
255
256#if (defined(RS_VERSION) && (RS_VERSION >= 24))
257static inline rs_allocation __attribute__((overloadable))
258    rsCreateAllocation_half2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
259     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 2);
260     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
261     return rsCreateAllocation(t);
262}
263#endif
264
265#if (defined(RS_VERSION) && (RS_VERSION >= 24))
266static inline rs_allocation __attribute__((overloadable))
267    rsCreateAllocation_half3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
268     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 3);
269     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
270     return rsCreateAllocation(t);
271}
272#endif
273
274#if (defined(RS_VERSION) && (RS_VERSION >= 24))
275static inline rs_allocation __attribute__((overloadable))
276    rsCreateAllocation_half4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
277     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 4);
278     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
279     return rsCreateAllocation(t);
280}
281#endif
282
283#if (defined(RS_VERSION) && (RS_VERSION >= 24))
284static inline rs_allocation __attribute__((overloadable))
285    rsCreateAllocation_float2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
286     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 2);
287     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
288     return rsCreateAllocation(t);
289}
290#endif
291
292#if (defined(RS_VERSION) && (RS_VERSION >= 24))
293static inline rs_allocation __attribute__((overloadable))
294    rsCreateAllocation_float3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
295     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 3);
296     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
297     return rsCreateAllocation(t);
298}
299#endif
300
301#if (defined(RS_VERSION) && (RS_VERSION >= 24))
302static inline rs_allocation __attribute__((overloadable))
303    rsCreateAllocation_float4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
304     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 4);
305     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
306     return rsCreateAllocation(t);
307}
308#endif
309
310#if (defined(RS_VERSION) && (RS_VERSION >= 24))
311static inline rs_allocation __attribute__((overloadable))
312    rsCreateAllocation_double2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
313     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 2);
314     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
315     return rsCreateAllocation(t);
316}
317#endif
318
319#if (defined(RS_VERSION) && (RS_VERSION >= 24))
320static inline rs_allocation __attribute__((overloadable))
321    rsCreateAllocation_double3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
322     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 3);
323     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
324     return rsCreateAllocation(t);
325}
326#endif
327
328#if (defined(RS_VERSION) && (RS_VERSION >= 24))
329static inline rs_allocation __attribute__((overloadable))
330    rsCreateAllocation_double4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
331     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 4);
332     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
333     return rsCreateAllocation(t);
334}
335#endif
336
337#if (defined(RS_VERSION) && (RS_VERSION >= 24))
338static inline rs_allocation __attribute__((overloadable))
339    rsCreateAllocation_char2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
340     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 2);
341     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
342     return rsCreateAllocation(t);
343}
344#endif
345
346#if (defined(RS_VERSION) && (RS_VERSION >= 24))
347static inline rs_allocation __attribute__((overloadable))
348    rsCreateAllocation_char3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
349     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 3);
350     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
351     return rsCreateAllocation(t);
352}
353#endif
354
355#if (defined(RS_VERSION) && (RS_VERSION >= 24))
356static inline rs_allocation __attribute__((overloadable))
357    rsCreateAllocation_char4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
358     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 4);
359     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
360     return rsCreateAllocation(t);
361}
362#endif
363
364#if (defined(RS_VERSION) && (RS_VERSION >= 24))
365static inline rs_allocation __attribute__((overloadable))
366    rsCreateAllocation_uchar2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
367     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 2);
368     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
369     return rsCreateAllocation(t);
370}
371#endif
372
373#if (defined(RS_VERSION) && (RS_VERSION >= 24))
374static inline rs_allocation __attribute__((overloadable))
375    rsCreateAllocation_uchar3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
376     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 3);
377     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
378     return rsCreateAllocation(t);
379}
380#endif
381
382#if (defined(RS_VERSION) && (RS_VERSION >= 24))
383static inline rs_allocation __attribute__((overloadable))
384    rsCreateAllocation_uchar4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
385     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 4);
386     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
387     return rsCreateAllocation(t);
388}
389#endif
390
391#if (defined(RS_VERSION) && (RS_VERSION >= 24))
392static inline rs_allocation __attribute__((overloadable))
393    rsCreateAllocation_short2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
394     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 2);
395     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
396     return rsCreateAllocation(t);
397}
398#endif
399
400#if (defined(RS_VERSION) && (RS_VERSION >= 24))
401static inline rs_allocation __attribute__((overloadable))
402    rsCreateAllocation_short3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
403     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 3);
404     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
405     return rsCreateAllocation(t);
406}
407#endif
408
409#if (defined(RS_VERSION) && (RS_VERSION >= 24))
410static inline rs_allocation __attribute__((overloadable))
411    rsCreateAllocation_short4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
412     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 4);
413     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
414     return rsCreateAllocation(t);
415}
416#endif
417
418#if (defined(RS_VERSION) && (RS_VERSION >= 24))
419static inline rs_allocation __attribute__((overloadable))
420    rsCreateAllocation_ushort2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
421     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 2);
422     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
423     return rsCreateAllocation(t);
424}
425#endif
426
427#if (defined(RS_VERSION) && (RS_VERSION >= 24))
428static inline rs_allocation __attribute__((overloadable))
429    rsCreateAllocation_ushort3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
430     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 3);
431     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
432     return rsCreateAllocation(t);
433}
434#endif
435
436#if (defined(RS_VERSION) && (RS_VERSION >= 24))
437static inline rs_allocation __attribute__((overloadable))
438    rsCreateAllocation_ushort4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
439     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 4);
440     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
441     return rsCreateAllocation(t);
442}
443#endif
444
445#if (defined(RS_VERSION) && (RS_VERSION >= 24))
446static inline rs_allocation __attribute__((overloadable))
447    rsCreateAllocation_int2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
448     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 2);
449     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
450     return rsCreateAllocation(t);
451}
452#endif
453
454#if (defined(RS_VERSION) && (RS_VERSION >= 24))
455static inline rs_allocation __attribute__((overloadable))
456    rsCreateAllocation_int3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
457     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 3);
458     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
459     return rsCreateAllocation(t);
460}
461#endif
462
463#if (defined(RS_VERSION) && (RS_VERSION >= 24))
464static inline rs_allocation __attribute__((overloadable))
465    rsCreateAllocation_int4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
466     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 4);
467     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
468     return rsCreateAllocation(t);
469}
470#endif
471
472#if (defined(RS_VERSION) && (RS_VERSION >= 24))
473static inline rs_allocation __attribute__((overloadable))
474    rsCreateAllocation_uint2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
475     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 2);
476     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
477     return rsCreateAllocation(t);
478}
479#endif
480
481#if (defined(RS_VERSION) && (RS_VERSION >= 24))
482static inline rs_allocation __attribute__((overloadable))
483    rsCreateAllocation_uint3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
484     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 3);
485     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
486     return rsCreateAllocation(t);
487}
488#endif
489
490#if (defined(RS_VERSION) && (RS_VERSION >= 24))
491static inline rs_allocation __attribute__((overloadable))
492    rsCreateAllocation_uint4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
493     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 4);
494     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
495     return rsCreateAllocation(t);
496}
497#endif
498
499#if (defined(RS_VERSION) && (RS_VERSION >= 24))
500static inline rs_allocation __attribute__((overloadable))
501    rsCreateAllocation_long2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
502     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 2);
503     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
504     return rsCreateAllocation(t);
505}
506#endif
507
508#if (defined(RS_VERSION) && (RS_VERSION >= 24))
509static inline rs_allocation __attribute__((overloadable))
510    rsCreateAllocation_long3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
511     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 3);
512     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
513     return rsCreateAllocation(t);
514}
515#endif
516
517#if (defined(RS_VERSION) && (RS_VERSION >= 24))
518static inline rs_allocation __attribute__((overloadable))
519    rsCreateAllocation_long4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
520     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 4);
521     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
522     return rsCreateAllocation(t);
523}
524#endif
525
526#if (defined(RS_VERSION) && (RS_VERSION >= 24))
527static inline rs_allocation __attribute__((overloadable))
528    rsCreateAllocation_ulong2(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
529     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 2);
530     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
531     return rsCreateAllocation(t);
532}
533#endif
534
535#if (defined(RS_VERSION) && (RS_VERSION >= 24))
536static inline rs_allocation __attribute__((overloadable))
537    rsCreateAllocation_ulong3(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
538     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 3);
539     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
540     return rsCreateAllocation(t);
541}
542#endif
543
544#if (defined(RS_VERSION) && (RS_VERSION >= 24))
545static inline rs_allocation __attribute__((overloadable))
546    rsCreateAllocation_ulong4(uint32_t dimX, uint32_t dimY, uint32_t dimZ) {
547     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 4);
548     rs_type t = rsCreateType(e, dimX, dimY, dimZ);
549     return rsCreateAllocation(t);
550}
551#endif
552
553#if (defined(RS_VERSION) && (RS_VERSION >= 24))
554static inline rs_allocation __attribute__((overloadable))
555    rsCreateAllocation_half(uint32_t dimX, uint32_t dimY) {
556     rs_element e = rsCreateElement(RS_TYPE_FLOAT_16);
557     rs_type t = rsCreateType(e, dimX, dimY);
558     return rsCreateAllocation(t);
559}
560#endif
561
562#if (defined(RS_VERSION) && (RS_VERSION >= 24))
563static inline rs_allocation __attribute__((overloadable))
564    rsCreateAllocation_float(uint32_t dimX, uint32_t dimY) {
565     rs_element e = rsCreateElement(RS_TYPE_FLOAT_32);
566     rs_type t = rsCreateType(e, dimX, dimY);
567     return rsCreateAllocation(t);
568}
569#endif
570
571#if (defined(RS_VERSION) && (RS_VERSION >= 24))
572static inline rs_allocation __attribute__((overloadable))
573    rsCreateAllocation_double(uint32_t dimX, uint32_t dimY) {
574     rs_element e = rsCreateElement(RS_TYPE_FLOAT_64);
575     rs_type t = rsCreateType(e, dimX, dimY);
576     return rsCreateAllocation(t);
577}
578#endif
579
580#if (defined(RS_VERSION) && (RS_VERSION >= 24))
581static inline rs_allocation __attribute__((overloadable))
582    rsCreateAllocation_char(uint32_t dimX, uint32_t dimY) {
583     rs_element e = rsCreateElement(RS_TYPE_SIGNED_8);
584     rs_type t = rsCreateType(e, dimX, dimY);
585     return rsCreateAllocation(t);
586}
587#endif
588
589#if (defined(RS_VERSION) && (RS_VERSION >= 24))
590static inline rs_allocation __attribute__((overloadable))
591    rsCreateAllocation_uchar(uint32_t dimX, uint32_t dimY) {
592     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_8);
593     rs_type t = rsCreateType(e, dimX, dimY);
594     return rsCreateAllocation(t);
595}
596#endif
597
598#if (defined(RS_VERSION) && (RS_VERSION >= 24))
599static inline rs_allocation __attribute__((overloadable))
600    rsCreateAllocation_short(uint32_t dimX, uint32_t dimY) {
601     rs_element e = rsCreateElement(RS_TYPE_SIGNED_16);
602     rs_type t = rsCreateType(e, dimX, dimY);
603     return rsCreateAllocation(t);
604}
605#endif
606
607#if (defined(RS_VERSION) && (RS_VERSION >= 24))
608static inline rs_allocation __attribute__((overloadable))
609    rsCreateAllocation_ushort(uint32_t dimX, uint32_t dimY) {
610     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_16);
611     rs_type t = rsCreateType(e, dimX, dimY);
612     return rsCreateAllocation(t);
613}
614#endif
615
616#if (defined(RS_VERSION) && (RS_VERSION >= 24))
617static inline rs_allocation __attribute__((overloadable))
618    rsCreateAllocation_int(uint32_t dimX, uint32_t dimY) {
619     rs_element e = rsCreateElement(RS_TYPE_SIGNED_32);
620     rs_type t = rsCreateType(e, dimX, dimY);
621     return rsCreateAllocation(t);
622}
623#endif
624
625#if (defined(RS_VERSION) && (RS_VERSION >= 24))
626static inline rs_allocation __attribute__((overloadable))
627    rsCreateAllocation_uint(uint32_t dimX, uint32_t dimY) {
628     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_32);
629     rs_type t = rsCreateType(e, dimX, dimY);
630     return rsCreateAllocation(t);
631}
632#endif
633
634#if (defined(RS_VERSION) && (RS_VERSION >= 24))
635static inline rs_allocation __attribute__((overloadable))
636    rsCreateAllocation_long(uint32_t dimX, uint32_t dimY) {
637     rs_element e = rsCreateElement(RS_TYPE_SIGNED_64);
638     rs_type t = rsCreateType(e, dimX, dimY);
639     return rsCreateAllocation(t);
640}
641#endif
642
643#if (defined(RS_VERSION) && (RS_VERSION >= 24))
644static inline rs_allocation __attribute__((overloadable))
645    rsCreateAllocation_ulong(uint32_t dimX, uint32_t dimY) {
646     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_64);
647     rs_type t = rsCreateType(e, dimX, dimY);
648     return rsCreateAllocation(t);
649}
650#endif
651
652#if (defined(RS_VERSION) && (RS_VERSION >= 24))
653static inline rs_allocation __attribute__((overloadable))
654    rsCreateAllocation_half2(uint32_t dimX, uint32_t dimY) {
655     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 2);
656     rs_type t = rsCreateType(e, dimX, dimY);
657     return rsCreateAllocation(t);
658}
659#endif
660
661#if (defined(RS_VERSION) && (RS_VERSION >= 24))
662static inline rs_allocation __attribute__((overloadable))
663    rsCreateAllocation_half3(uint32_t dimX, uint32_t dimY) {
664     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 3);
665     rs_type t = rsCreateType(e, dimX, dimY);
666     return rsCreateAllocation(t);
667}
668#endif
669
670#if (defined(RS_VERSION) && (RS_VERSION >= 24))
671static inline rs_allocation __attribute__((overloadable))
672    rsCreateAllocation_half4(uint32_t dimX, uint32_t dimY) {
673     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 4);
674     rs_type t = rsCreateType(e, dimX, dimY);
675     return rsCreateAllocation(t);
676}
677#endif
678
679#if (defined(RS_VERSION) && (RS_VERSION >= 24))
680static inline rs_allocation __attribute__((overloadable))
681    rsCreateAllocation_float2(uint32_t dimX, uint32_t dimY) {
682     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 2);
683     rs_type t = rsCreateType(e, dimX, dimY);
684     return rsCreateAllocation(t);
685}
686#endif
687
688#if (defined(RS_VERSION) && (RS_VERSION >= 24))
689static inline rs_allocation __attribute__((overloadable))
690    rsCreateAllocation_float3(uint32_t dimX, uint32_t dimY) {
691     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 3);
692     rs_type t = rsCreateType(e, dimX, dimY);
693     return rsCreateAllocation(t);
694}
695#endif
696
697#if (defined(RS_VERSION) && (RS_VERSION >= 24))
698static inline rs_allocation __attribute__((overloadable))
699    rsCreateAllocation_float4(uint32_t dimX, uint32_t dimY) {
700     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 4);
701     rs_type t = rsCreateType(e, dimX, dimY);
702     return rsCreateAllocation(t);
703}
704#endif
705
706#if (defined(RS_VERSION) && (RS_VERSION >= 24))
707static inline rs_allocation __attribute__((overloadable))
708    rsCreateAllocation_double2(uint32_t dimX, uint32_t dimY) {
709     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 2);
710     rs_type t = rsCreateType(e, dimX, dimY);
711     return rsCreateAllocation(t);
712}
713#endif
714
715#if (defined(RS_VERSION) && (RS_VERSION >= 24))
716static inline rs_allocation __attribute__((overloadable))
717    rsCreateAllocation_double3(uint32_t dimX, uint32_t dimY) {
718     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 3);
719     rs_type t = rsCreateType(e, dimX, dimY);
720     return rsCreateAllocation(t);
721}
722#endif
723
724#if (defined(RS_VERSION) && (RS_VERSION >= 24))
725static inline rs_allocation __attribute__((overloadable))
726    rsCreateAllocation_double4(uint32_t dimX, uint32_t dimY) {
727     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 4);
728     rs_type t = rsCreateType(e, dimX, dimY);
729     return rsCreateAllocation(t);
730}
731#endif
732
733#if (defined(RS_VERSION) && (RS_VERSION >= 24))
734static inline rs_allocation __attribute__((overloadable))
735    rsCreateAllocation_char2(uint32_t dimX, uint32_t dimY) {
736     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 2);
737     rs_type t = rsCreateType(e, dimX, dimY);
738     return rsCreateAllocation(t);
739}
740#endif
741
742#if (defined(RS_VERSION) && (RS_VERSION >= 24))
743static inline rs_allocation __attribute__((overloadable))
744    rsCreateAllocation_char3(uint32_t dimX, uint32_t dimY) {
745     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 3);
746     rs_type t = rsCreateType(e, dimX, dimY);
747     return rsCreateAllocation(t);
748}
749#endif
750
751#if (defined(RS_VERSION) && (RS_VERSION >= 24))
752static inline rs_allocation __attribute__((overloadable))
753    rsCreateAllocation_char4(uint32_t dimX, uint32_t dimY) {
754     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 4);
755     rs_type t = rsCreateType(e, dimX, dimY);
756     return rsCreateAllocation(t);
757}
758#endif
759
760#if (defined(RS_VERSION) && (RS_VERSION >= 24))
761static inline rs_allocation __attribute__((overloadable))
762    rsCreateAllocation_uchar2(uint32_t dimX, uint32_t dimY) {
763     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 2);
764     rs_type t = rsCreateType(e, dimX, dimY);
765     return rsCreateAllocation(t);
766}
767#endif
768
769#if (defined(RS_VERSION) && (RS_VERSION >= 24))
770static inline rs_allocation __attribute__((overloadable))
771    rsCreateAllocation_uchar3(uint32_t dimX, uint32_t dimY) {
772     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 3);
773     rs_type t = rsCreateType(e, dimX, dimY);
774     return rsCreateAllocation(t);
775}
776#endif
777
778#if (defined(RS_VERSION) && (RS_VERSION >= 24))
779static inline rs_allocation __attribute__((overloadable))
780    rsCreateAllocation_uchar4(uint32_t dimX, uint32_t dimY) {
781     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 4);
782     rs_type t = rsCreateType(e, dimX, dimY);
783     return rsCreateAllocation(t);
784}
785#endif
786
787#if (defined(RS_VERSION) && (RS_VERSION >= 24))
788static inline rs_allocation __attribute__((overloadable))
789    rsCreateAllocation_short2(uint32_t dimX, uint32_t dimY) {
790     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 2);
791     rs_type t = rsCreateType(e, dimX, dimY);
792     return rsCreateAllocation(t);
793}
794#endif
795
796#if (defined(RS_VERSION) && (RS_VERSION >= 24))
797static inline rs_allocation __attribute__((overloadable))
798    rsCreateAllocation_short3(uint32_t dimX, uint32_t dimY) {
799     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 3);
800     rs_type t = rsCreateType(e, dimX, dimY);
801     return rsCreateAllocation(t);
802}
803#endif
804
805#if (defined(RS_VERSION) && (RS_VERSION >= 24))
806static inline rs_allocation __attribute__((overloadable))
807    rsCreateAllocation_short4(uint32_t dimX, uint32_t dimY) {
808     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 4);
809     rs_type t = rsCreateType(e, dimX, dimY);
810     return rsCreateAllocation(t);
811}
812#endif
813
814#if (defined(RS_VERSION) && (RS_VERSION >= 24))
815static inline rs_allocation __attribute__((overloadable))
816    rsCreateAllocation_ushort2(uint32_t dimX, uint32_t dimY) {
817     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 2);
818     rs_type t = rsCreateType(e, dimX, dimY);
819     return rsCreateAllocation(t);
820}
821#endif
822
823#if (defined(RS_VERSION) && (RS_VERSION >= 24))
824static inline rs_allocation __attribute__((overloadable))
825    rsCreateAllocation_ushort3(uint32_t dimX, uint32_t dimY) {
826     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 3);
827     rs_type t = rsCreateType(e, dimX, dimY);
828     return rsCreateAllocation(t);
829}
830#endif
831
832#if (defined(RS_VERSION) && (RS_VERSION >= 24))
833static inline rs_allocation __attribute__((overloadable))
834    rsCreateAllocation_ushort4(uint32_t dimX, uint32_t dimY) {
835     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 4);
836     rs_type t = rsCreateType(e, dimX, dimY);
837     return rsCreateAllocation(t);
838}
839#endif
840
841#if (defined(RS_VERSION) && (RS_VERSION >= 24))
842static inline rs_allocation __attribute__((overloadable))
843    rsCreateAllocation_int2(uint32_t dimX, uint32_t dimY) {
844     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 2);
845     rs_type t = rsCreateType(e, dimX, dimY);
846     return rsCreateAllocation(t);
847}
848#endif
849
850#if (defined(RS_VERSION) && (RS_VERSION >= 24))
851static inline rs_allocation __attribute__((overloadable))
852    rsCreateAllocation_int3(uint32_t dimX, uint32_t dimY) {
853     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 3);
854     rs_type t = rsCreateType(e, dimX, dimY);
855     return rsCreateAllocation(t);
856}
857#endif
858
859#if (defined(RS_VERSION) && (RS_VERSION >= 24))
860static inline rs_allocation __attribute__((overloadable))
861    rsCreateAllocation_int4(uint32_t dimX, uint32_t dimY) {
862     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 4);
863     rs_type t = rsCreateType(e, dimX, dimY);
864     return rsCreateAllocation(t);
865}
866#endif
867
868#if (defined(RS_VERSION) && (RS_VERSION >= 24))
869static inline rs_allocation __attribute__((overloadable))
870    rsCreateAllocation_uint2(uint32_t dimX, uint32_t dimY) {
871     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 2);
872     rs_type t = rsCreateType(e, dimX, dimY);
873     return rsCreateAllocation(t);
874}
875#endif
876
877#if (defined(RS_VERSION) && (RS_VERSION >= 24))
878static inline rs_allocation __attribute__((overloadable))
879    rsCreateAllocation_uint3(uint32_t dimX, uint32_t dimY) {
880     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 3);
881     rs_type t = rsCreateType(e, dimX, dimY);
882     return rsCreateAllocation(t);
883}
884#endif
885
886#if (defined(RS_VERSION) && (RS_VERSION >= 24))
887static inline rs_allocation __attribute__((overloadable))
888    rsCreateAllocation_uint4(uint32_t dimX, uint32_t dimY) {
889     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 4);
890     rs_type t = rsCreateType(e, dimX, dimY);
891     return rsCreateAllocation(t);
892}
893#endif
894
895#if (defined(RS_VERSION) && (RS_VERSION >= 24))
896static inline rs_allocation __attribute__((overloadable))
897    rsCreateAllocation_long2(uint32_t dimX, uint32_t dimY) {
898     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 2);
899     rs_type t = rsCreateType(e, dimX, dimY);
900     return rsCreateAllocation(t);
901}
902#endif
903
904#if (defined(RS_VERSION) && (RS_VERSION >= 24))
905static inline rs_allocation __attribute__((overloadable))
906    rsCreateAllocation_long3(uint32_t dimX, uint32_t dimY) {
907     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 3);
908     rs_type t = rsCreateType(e, dimX, dimY);
909     return rsCreateAllocation(t);
910}
911#endif
912
913#if (defined(RS_VERSION) && (RS_VERSION >= 24))
914static inline rs_allocation __attribute__((overloadable))
915    rsCreateAllocation_long4(uint32_t dimX, uint32_t dimY) {
916     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 4);
917     rs_type t = rsCreateType(e, dimX, dimY);
918     return rsCreateAllocation(t);
919}
920#endif
921
922#if (defined(RS_VERSION) && (RS_VERSION >= 24))
923static inline rs_allocation __attribute__((overloadable))
924    rsCreateAllocation_ulong2(uint32_t dimX, uint32_t dimY) {
925     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 2);
926     rs_type t = rsCreateType(e, dimX, dimY);
927     return rsCreateAllocation(t);
928}
929#endif
930
931#if (defined(RS_VERSION) && (RS_VERSION >= 24))
932static inline rs_allocation __attribute__((overloadable))
933    rsCreateAllocation_ulong3(uint32_t dimX, uint32_t dimY) {
934     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 3);
935     rs_type t = rsCreateType(e, dimX, dimY);
936     return rsCreateAllocation(t);
937}
938#endif
939
940#if (defined(RS_VERSION) && (RS_VERSION >= 24))
941static inline rs_allocation __attribute__((overloadable))
942    rsCreateAllocation_ulong4(uint32_t dimX, uint32_t dimY) {
943     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 4);
944     rs_type t = rsCreateType(e, dimX, dimY);
945     return rsCreateAllocation(t);
946}
947#endif
948
949#if (defined(RS_VERSION) && (RS_VERSION >= 24))
950static inline rs_allocation __attribute__((overloadable))
951    rsCreateAllocation_half(uint32_t dimX) {
952     rs_element e = rsCreateElement(RS_TYPE_FLOAT_16);
953     rs_type t = rsCreateType(e, dimX);
954     return rsCreateAllocation(t);
955}
956#endif
957
958#if (defined(RS_VERSION) && (RS_VERSION >= 24))
959static inline rs_allocation __attribute__((overloadable))
960    rsCreateAllocation_float(uint32_t dimX) {
961     rs_element e = rsCreateElement(RS_TYPE_FLOAT_32);
962     rs_type t = rsCreateType(e, dimX);
963     return rsCreateAllocation(t);
964}
965#endif
966
967#if (defined(RS_VERSION) && (RS_VERSION >= 24))
968static inline rs_allocation __attribute__((overloadable))
969    rsCreateAllocation_double(uint32_t dimX) {
970     rs_element e = rsCreateElement(RS_TYPE_FLOAT_64);
971     rs_type t = rsCreateType(e, dimX);
972     return rsCreateAllocation(t);
973}
974#endif
975
976#if (defined(RS_VERSION) && (RS_VERSION >= 24))
977static inline rs_allocation __attribute__((overloadable))
978    rsCreateAllocation_char(uint32_t dimX) {
979     rs_element e = rsCreateElement(RS_TYPE_SIGNED_8);
980     rs_type t = rsCreateType(e, dimX);
981     return rsCreateAllocation(t);
982}
983#endif
984
985#if (defined(RS_VERSION) && (RS_VERSION >= 24))
986static inline rs_allocation __attribute__((overloadable))
987    rsCreateAllocation_uchar(uint32_t dimX) {
988     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_8);
989     rs_type t = rsCreateType(e, dimX);
990     return rsCreateAllocation(t);
991}
992#endif
993
994#if (defined(RS_VERSION) && (RS_VERSION >= 24))
995static inline rs_allocation __attribute__((overloadable))
996    rsCreateAllocation_short(uint32_t dimX) {
997     rs_element e = rsCreateElement(RS_TYPE_SIGNED_16);
998     rs_type t = rsCreateType(e, dimX);
999     return rsCreateAllocation(t);
1000}
1001#endif
1002
1003#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1004static inline rs_allocation __attribute__((overloadable))
1005    rsCreateAllocation_ushort(uint32_t dimX) {
1006     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_16);
1007     rs_type t = rsCreateType(e, dimX);
1008     return rsCreateAllocation(t);
1009}
1010#endif
1011
1012#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1013static inline rs_allocation __attribute__((overloadable))
1014    rsCreateAllocation_int(uint32_t dimX) {
1015     rs_element e = rsCreateElement(RS_TYPE_SIGNED_32);
1016     rs_type t = rsCreateType(e, dimX);
1017     return rsCreateAllocation(t);
1018}
1019#endif
1020
1021#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1022static inline rs_allocation __attribute__((overloadable))
1023    rsCreateAllocation_uint(uint32_t dimX) {
1024     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_32);
1025     rs_type t = rsCreateType(e, dimX);
1026     return rsCreateAllocation(t);
1027}
1028#endif
1029
1030#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1031static inline rs_allocation __attribute__((overloadable))
1032    rsCreateAllocation_long(uint32_t dimX) {
1033     rs_element e = rsCreateElement(RS_TYPE_SIGNED_64);
1034     rs_type t = rsCreateType(e, dimX);
1035     return rsCreateAllocation(t);
1036}
1037#endif
1038
1039#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1040static inline rs_allocation __attribute__((overloadable))
1041    rsCreateAllocation_ulong(uint32_t dimX) {
1042     rs_element e = rsCreateElement(RS_TYPE_UNSIGNED_64);
1043     rs_type t = rsCreateType(e, dimX);
1044     return rsCreateAllocation(t);
1045}
1046#endif
1047
1048#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1049static inline rs_allocation __attribute__((overloadable))
1050    rsCreateAllocation_half2(uint32_t dimX) {
1051     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 2);
1052     rs_type t = rsCreateType(e, dimX);
1053     return rsCreateAllocation(t);
1054}
1055#endif
1056
1057#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1058static inline rs_allocation __attribute__((overloadable))
1059    rsCreateAllocation_half3(uint32_t dimX) {
1060     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 3);
1061     rs_type t = rsCreateType(e, dimX);
1062     return rsCreateAllocation(t);
1063}
1064#endif
1065
1066#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1067static inline rs_allocation __attribute__((overloadable))
1068    rsCreateAllocation_half4(uint32_t dimX) {
1069     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_16, 4);
1070     rs_type t = rsCreateType(e, dimX);
1071     return rsCreateAllocation(t);
1072}
1073#endif
1074
1075#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1076static inline rs_allocation __attribute__((overloadable))
1077    rsCreateAllocation_float2(uint32_t dimX) {
1078     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 2);
1079     rs_type t = rsCreateType(e, dimX);
1080     return rsCreateAllocation(t);
1081}
1082#endif
1083
1084#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1085static inline rs_allocation __attribute__((overloadable))
1086    rsCreateAllocation_float3(uint32_t dimX) {
1087     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 3);
1088     rs_type t = rsCreateType(e, dimX);
1089     return rsCreateAllocation(t);
1090}
1091#endif
1092
1093#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1094static inline rs_allocation __attribute__((overloadable))
1095    rsCreateAllocation_float4(uint32_t dimX) {
1096     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_32, 4);
1097     rs_type t = rsCreateType(e, dimX);
1098     return rsCreateAllocation(t);
1099}
1100#endif
1101
1102#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1103static inline rs_allocation __attribute__((overloadable))
1104    rsCreateAllocation_double2(uint32_t dimX) {
1105     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 2);
1106     rs_type t = rsCreateType(e, dimX);
1107     return rsCreateAllocation(t);
1108}
1109#endif
1110
1111#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1112static inline rs_allocation __attribute__((overloadable))
1113    rsCreateAllocation_double3(uint32_t dimX) {
1114     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 3);
1115     rs_type t = rsCreateType(e, dimX);
1116     return rsCreateAllocation(t);
1117}
1118#endif
1119
1120#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1121static inline rs_allocation __attribute__((overloadable))
1122    rsCreateAllocation_double4(uint32_t dimX) {
1123     rs_element e = rsCreateVectorElement(RS_TYPE_FLOAT_64, 4);
1124     rs_type t = rsCreateType(e, dimX);
1125     return rsCreateAllocation(t);
1126}
1127#endif
1128
1129#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1130static inline rs_allocation __attribute__((overloadable))
1131    rsCreateAllocation_char2(uint32_t dimX) {
1132     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 2);
1133     rs_type t = rsCreateType(e, dimX);
1134     return rsCreateAllocation(t);
1135}
1136#endif
1137
1138#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1139static inline rs_allocation __attribute__((overloadable))
1140    rsCreateAllocation_char3(uint32_t dimX) {
1141     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 3);
1142     rs_type t = rsCreateType(e, dimX);
1143     return rsCreateAllocation(t);
1144}
1145#endif
1146
1147#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1148static inline rs_allocation __attribute__((overloadable))
1149    rsCreateAllocation_char4(uint32_t dimX) {
1150     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_8, 4);
1151     rs_type t = rsCreateType(e, dimX);
1152     return rsCreateAllocation(t);
1153}
1154#endif
1155
1156#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1157static inline rs_allocation __attribute__((overloadable))
1158    rsCreateAllocation_uchar2(uint32_t dimX) {
1159     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 2);
1160     rs_type t = rsCreateType(e, dimX);
1161     return rsCreateAllocation(t);
1162}
1163#endif
1164
1165#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1166static inline rs_allocation __attribute__((overloadable))
1167    rsCreateAllocation_uchar3(uint32_t dimX) {
1168     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 3);
1169     rs_type t = rsCreateType(e, dimX);
1170     return rsCreateAllocation(t);
1171}
1172#endif
1173
1174#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1175static inline rs_allocation __attribute__((overloadable))
1176    rsCreateAllocation_uchar4(uint32_t dimX) {
1177     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_8, 4);
1178     rs_type t = rsCreateType(e, dimX);
1179     return rsCreateAllocation(t);
1180}
1181#endif
1182
1183#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1184static inline rs_allocation __attribute__((overloadable))
1185    rsCreateAllocation_short2(uint32_t dimX) {
1186     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 2);
1187     rs_type t = rsCreateType(e, dimX);
1188     return rsCreateAllocation(t);
1189}
1190#endif
1191
1192#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1193static inline rs_allocation __attribute__((overloadable))
1194    rsCreateAllocation_short3(uint32_t dimX) {
1195     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 3);
1196     rs_type t = rsCreateType(e, dimX);
1197     return rsCreateAllocation(t);
1198}
1199#endif
1200
1201#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1202static inline rs_allocation __attribute__((overloadable))
1203    rsCreateAllocation_short4(uint32_t dimX) {
1204     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_16, 4);
1205     rs_type t = rsCreateType(e, dimX);
1206     return rsCreateAllocation(t);
1207}
1208#endif
1209
1210#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1211static inline rs_allocation __attribute__((overloadable))
1212    rsCreateAllocation_ushort2(uint32_t dimX) {
1213     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 2);
1214     rs_type t = rsCreateType(e, dimX);
1215     return rsCreateAllocation(t);
1216}
1217#endif
1218
1219#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1220static inline rs_allocation __attribute__((overloadable))
1221    rsCreateAllocation_ushort3(uint32_t dimX) {
1222     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 3);
1223     rs_type t = rsCreateType(e, dimX);
1224     return rsCreateAllocation(t);
1225}
1226#endif
1227
1228#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1229static inline rs_allocation __attribute__((overloadable))
1230    rsCreateAllocation_ushort4(uint32_t dimX) {
1231     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_16, 4);
1232     rs_type t = rsCreateType(e, dimX);
1233     return rsCreateAllocation(t);
1234}
1235#endif
1236
1237#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1238static inline rs_allocation __attribute__((overloadable))
1239    rsCreateAllocation_int2(uint32_t dimX) {
1240     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 2);
1241     rs_type t = rsCreateType(e, dimX);
1242     return rsCreateAllocation(t);
1243}
1244#endif
1245
1246#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1247static inline rs_allocation __attribute__((overloadable))
1248    rsCreateAllocation_int3(uint32_t dimX) {
1249     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 3);
1250     rs_type t = rsCreateType(e, dimX);
1251     return rsCreateAllocation(t);
1252}
1253#endif
1254
1255#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1256static inline rs_allocation __attribute__((overloadable))
1257    rsCreateAllocation_int4(uint32_t dimX) {
1258     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_32, 4);
1259     rs_type t = rsCreateType(e, dimX);
1260     return rsCreateAllocation(t);
1261}
1262#endif
1263
1264#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1265static inline rs_allocation __attribute__((overloadable))
1266    rsCreateAllocation_uint2(uint32_t dimX) {
1267     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 2);
1268     rs_type t = rsCreateType(e, dimX);
1269     return rsCreateAllocation(t);
1270}
1271#endif
1272
1273#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1274static inline rs_allocation __attribute__((overloadable))
1275    rsCreateAllocation_uint3(uint32_t dimX) {
1276     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 3);
1277     rs_type t = rsCreateType(e, dimX);
1278     return rsCreateAllocation(t);
1279}
1280#endif
1281
1282#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1283static inline rs_allocation __attribute__((overloadable))
1284    rsCreateAllocation_uint4(uint32_t dimX) {
1285     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_32, 4);
1286     rs_type t = rsCreateType(e, dimX);
1287     return rsCreateAllocation(t);
1288}
1289#endif
1290
1291#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1292static inline rs_allocation __attribute__((overloadable))
1293    rsCreateAllocation_long2(uint32_t dimX) {
1294     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 2);
1295     rs_type t = rsCreateType(e, dimX);
1296     return rsCreateAllocation(t);
1297}
1298#endif
1299
1300#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1301static inline rs_allocation __attribute__((overloadable))
1302    rsCreateAllocation_long3(uint32_t dimX) {
1303     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 3);
1304     rs_type t = rsCreateType(e, dimX);
1305     return rsCreateAllocation(t);
1306}
1307#endif
1308
1309#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1310static inline rs_allocation __attribute__((overloadable))
1311    rsCreateAllocation_long4(uint32_t dimX) {
1312     rs_element e = rsCreateVectorElement(RS_TYPE_SIGNED_64, 4);
1313     rs_type t = rsCreateType(e, dimX);
1314     return rsCreateAllocation(t);
1315}
1316#endif
1317
1318#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1319static inline rs_allocation __attribute__((overloadable))
1320    rsCreateAllocation_ulong2(uint32_t dimX) {
1321     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 2);
1322     rs_type t = rsCreateType(e, dimX);
1323     return rsCreateAllocation(t);
1324}
1325#endif
1326
1327#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1328static inline rs_allocation __attribute__((overloadable))
1329    rsCreateAllocation_ulong3(uint32_t dimX) {
1330     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 3);
1331     rs_type t = rsCreateType(e, dimX);
1332     return rsCreateAllocation(t);
1333}
1334#endif
1335
1336#if (defined(RS_VERSION) && (RS_VERSION >= 24))
1337static inline rs_allocation __attribute__((overloadable))
1338    rsCreateAllocation_ulong4(uint32_t dimX) {
1339     rs_element e = rsCreateVectorElement(RS_TYPE_UNSIGNED_64, 4);
1340     rs_type t = rsCreateType(e, dimX);
1341     return rsCreateAllocation(t);
1342}
1343#endif
1344
1345#endif // RENDERSCRIPT_RS_ALLOCATION_CREATE_RSH
1346