1be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
2be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Copyright (C) 2015 The Android Open Source Project
3be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
4be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Licensed under the Apache License, Version 2.0 (the "License");
5be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * you may not use this file except in compliance with the License.
6be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * You may obtain a copy of the License at
7be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
8be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *      http://www.apache.org/licenses/LICENSE-2.0
9be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
10be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Unless required by applicable law or agreed to in writing, software
11be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * distributed under the License is distributed on an "AS IS" BASIS,
12be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See the License for the specific language governing permissions and
14be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * limitations under the License.
15be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
16be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
174a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet// Don't edit this file!  It is auto-generated by frameworks/rs/api/generate.sh.
18be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
19be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
2020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rs_convert.rsh: Conversion Functions
21be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
2201c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * The functions below convert from a numerical vector type to another, of from one color
2301c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * representation to another.
24be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
254a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet
26be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#ifndef RENDERSCRIPT_RS_CONVERT_RSH
27be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define RENDERSCRIPT_RS_CONVERT_RSH
28be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
29be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
3020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * convert: Convert numerical vectors
31be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
3201c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * Converts a vector from one numerical type to another.  The conversion are done entry per entry.
33be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
3401c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * E.g calling a = convert_short3(b); is equivalent to doing
3520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * a.x = (short)b.x; a.y = (short)b.y; a.z = (short)b.z;.
36be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
3720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Converting floating point values to integer types truncates.
3820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
3920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Converting numbers too large to fit the destination type yields undefined results.
40be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, converting a float that contains 1.0e18 to a short is undefined.
41be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Use clamp() to avoid this.
42be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
43be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
44be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(float2 v);
45be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
46be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
47be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(float3 v);
48be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
49be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
50be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(float4 v);
51be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
52be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
53be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(char2 v);
54be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
55be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
56be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(char3 v);
57be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
58be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
59be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(char4 v);
60be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
61be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
62be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(uchar2 v);
63be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
64be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
65be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(uchar3 v);
66be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
67be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
68be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(uchar4 v);
69be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
70be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
71be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(short2 v);
72be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
73be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
74be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(short3 v);
75be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
76be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
77be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(short4 v);
78be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
79be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
80be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(ushort2 v);
81be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
82be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
83be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(ushort3 v);
84be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
85be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
86be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(ushort4 v);
87be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
88be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
89be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(int2 v);
90be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
91be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
92be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(int3 v);
93be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
94be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
95be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(int4 v);
96be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
97be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
98be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(uint2 v);
99be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(uint3 v);
102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(uint4 v);
105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(float2 v);
108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(float3 v);
111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(float4 v);
114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(char2 v);
117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(char3 v);
120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(char4 v);
123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(uchar2 v);
126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(uchar3 v);
129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(uchar4 v);
132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(short2 v);
135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(short3 v);
138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(short4 v);
141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(ushort2 v);
144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(ushort3 v);
147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(ushort4 v);
150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(int2 v);
153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(int3 v);
156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(int4 v);
159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(uint2 v);
162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(uint3 v);
165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(uint4 v);
168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(float2 v);
171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(float3 v);
174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(float4 v);
177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(char2 v);
180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(char3 v);
183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(char4 v);
186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(uchar2 v);
189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(uchar3 v);
192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(uchar4 v);
195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(short2 v);
198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(short3 v);
201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(short4 v);
204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(ushort2 v);
207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(ushort3 v);
210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(ushort4 v);
213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(int2 v);
216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(int3 v);
219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
221be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(int4 v);
222be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
223be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
224be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(uint2 v);
225be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
226be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
227be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(uint3 v);
228be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
229be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
230be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(uint4 v);
231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(float2 v);
234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(float3 v);
237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(float4 v);
240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(char2 v);
243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(char3 v);
246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(char4 v);
249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(uchar2 v);
252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
254be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(uchar3 v);
255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
257be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(uchar4 v);
258be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
260be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(short2 v);
261be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
262be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
263be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(short3 v);
264be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
265be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
266be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(short4 v);
267be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
268be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(ushort2 v);
270be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
271be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(ushort3 v);
273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(ushort4 v);
276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(int2 v);
279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(int3 v);
282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(int4 v);
285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(uint2 v);
288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(uint3 v);
291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(uint4 v);
294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
295be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
296be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(float2 v);
297be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
298be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
299be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(float3 v);
300be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
301be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
302be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(float4 v);
303be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
304be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(char2 v);
306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
307be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(char3 v);
309be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
310be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
311be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(char4 v);
312be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(uchar2 v);
315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(uchar3 v);
318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(uchar4 v);
321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(short2 v);
324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(short3 v);
327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(short4 v);
330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(ushort2 v);
333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(ushort3 v);
336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
337be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
338be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(ushort4 v);
339be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
340be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
341be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(int2 v);
342be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
343be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
344be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(int3 v);
345be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
346be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
347be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(int4 v);
348be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
349be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
350be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(uint2 v);
351be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(uint3 v);
354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(uint4 v);
357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(float2 v);
360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(float3 v);
363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(float4 v);
366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(char2 v);
369be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
370be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
371be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(char3 v);
372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(char4 v);
375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
376be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
377be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(uchar2 v);
378be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
379be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
380be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(uchar3 v);
381be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
382be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(uchar4 v);
384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(short2 v);
387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(short3 v);
390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(short4 v);
393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(ushort2 v);
396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(ushort3 v);
399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(ushort4 v);
402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
404be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(int2 v);
405be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
406be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
407be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(int3 v);
408be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
409be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
410be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(int4 v);
411be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
412be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
413be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(uint2 v);
414be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
415be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
416be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(uint3 v);
417be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
418be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
419be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(uint4 v);
420be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
421be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
422be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(float2 v);
423be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(float3 v);
426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(float4 v);
429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(char2 v);
432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(char3 v);
435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(char4 v);
438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(uchar2 v);
441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(uchar3 v);
444be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
445be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
446be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(uchar4 v);
447be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
448be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
449be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(short2 v);
450be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
451be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
452be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(short3 v);
453be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
454be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
455be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(short4 v);
456be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
457be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
458be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(ushort2 v);
459be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
460be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
461be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(ushort3 v);
462be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
463be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
464be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(ushort4 v);
465be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
466be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
467be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(int2 v);
468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(int3 v);
471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
473be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(int4 v);
474be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(uint2 v);
477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(uint3 v);
480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(uint4 v);
483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
484be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
485be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
486be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(double2 v);
487be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
488be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
489be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
490be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
491be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(double3 v);
492be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
493be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
494be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
495be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
496be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(double4 v);
497be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
498be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
499be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
500be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
501be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(long2 v);
502be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
503be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
504be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
505be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
506be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(long3 v);
507be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
509be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
510be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(long4 v);
512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
513be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
514be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(ulong2 v);
517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(ulong3 v);
522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
523be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
524be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
525be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
526be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(ulong4 v);
527be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
528be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
529be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
530be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
531be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(double2 v);
532be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
533be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
534be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
535be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
536be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(double3 v);
537be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
538be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
539be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
540be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
541be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(double4 v);
542be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
543be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
544be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
545be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
546be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(long2 v);
547be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
548be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
549be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
550be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
551be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(long3 v);
552be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
553be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
554be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
555be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(long4 v);
557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
559be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
560be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(ulong2 v);
562be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
563be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
564be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
565be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
566be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(ulong3 v);
567be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
568be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
569be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
570be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
571be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(ulong4 v);
572be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
573be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
574be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
575be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
576be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(double2 v);
577be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
578be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
579be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
580be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
581be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(double3 v);
582be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
583be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
584be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
585be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
586be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(double4 v);
587be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
588be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
589be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
590be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
591be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(long2 v);
592be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
593be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
594be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
595be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
596be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(long3 v);
597be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
598be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
599be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
600be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
601be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(long4 v);
602be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
603be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
604be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
605be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
606be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(ulong2 v);
607be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
608be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
609be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
610be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
611be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(ulong3 v);
612be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
613be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
614be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
615be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
616be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(ulong4 v);
617be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
618be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
619be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
620be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
621be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(double2 v);
622be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
623be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
624be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
625be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
626be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(double3 v);
627be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
628be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
629be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
631be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(double4 v);
632be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
633be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
634be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
635be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
636be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(long2 v);
637be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
638be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
639be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
640be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
641be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(long3 v);
642be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
643be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
644be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
645be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
646be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(long4 v);
647be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
648be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
649be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
650be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))
651be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float2(ulong2 v);
652be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
653be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
654be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
655be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))
656be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float3(ulong3 v);
657be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
658be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
659be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
660be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
661be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_float4(ulong4 v);
662be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
663be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
664be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
665be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
666be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(double2 v);
667be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
668be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
669be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
670be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
671be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(double3 v);
672be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
673be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
674be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
675be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
676be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(double4 v);
677be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
678be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
679be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
680be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
681be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(long2 v);
682be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
683be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
684be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
685be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
686be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(long3 v);
687be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
688be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
689be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
690be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
691be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(long4 v);
692be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
693be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
694be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
695be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))
696be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char2(ulong2 v);
697be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
698be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
699be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
700be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))
701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char3(ulong3 v);
702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
704be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
705be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))
706be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_char4(ulong4 v);
707be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
708be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
709be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
710be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
711be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(double2 v);
712be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
713be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
714be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
715be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
716be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(double3 v);
717be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
718be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
719be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
720be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
721be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(double4 v);
722be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
723be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
724be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
725be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
726be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(long2 v);
727be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
728be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
729be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
730be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
731be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(long3 v);
732be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
733be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
734be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
735be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
736be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(long4 v);
737be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
738be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
739be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
740be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))
741be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar2(ulong2 v);
742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
743be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
744be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
745be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))
746be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar3(ulong3 v);
747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uchar4(ulong4 v);
752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
753be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
754be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
755be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
756be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(double2 v);
757be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
758be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
759be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
760be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
761be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(double3 v);
762be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
763be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
764be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
765be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
766be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(double4 v);
767be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
768be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
769be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
770be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
771be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(long2 v);
772be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
776be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(long3 v);
777be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
778be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
779be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
780be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(long4 v);
782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))
786be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short2(ulong2 v);
787be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
788be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
789be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
790be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))
791be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short3(ulong3 v);
792be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
793be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
794be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
795be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))
796be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_short4(ulong4 v);
797be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
798be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
799be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
800be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
801be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(double2 v);
802be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
803be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
804be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
805be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(double3 v);
807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(double4 v);
812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(long2 v);
817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(long3 v);
822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
823be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
824be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
825be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
826be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(long4 v);
827be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
828be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
829be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
830be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))
831be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort2(ulong2 v);
832be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
833be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
834be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
835be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))
836be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort3(ulong3 v);
837be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
838be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
839be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
840be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))
841be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ushort4(ulong4 v);
842be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
843be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(double2 v);
847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(double3 v);
852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
853be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
854be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
855be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
856be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(double4 v);
857be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
858be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
859be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
860be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
861be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(long2 v);
862be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
863be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
864be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
865be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
866be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(long3 v);
867be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
868be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
869be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
870be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
871be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(long4 v);
872be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
873be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
874be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
875be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))
876be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int2(ulong2 v);
877be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
878be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
879be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
880be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))
881be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int3(ulong3 v);
882be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
883be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
884be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
885be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))
886be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_int4(ulong4 v);
887be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
889be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
890be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
891be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(double2 v);
892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(double3 v);
897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
900be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
901be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(double4 v);
902be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
903be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
904be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
905be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
906be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(long2 v);
907be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
908be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
909be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
910be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
911be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(long3 v);
912be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
913be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
914be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
915be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
916be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(long4 v);
917be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
918be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
919be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))
921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint2(ulong2 v);
922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
923be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
924be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
925be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))
926be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint3(ulong3 v);
927be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))
931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_uint4(ulong4 v);
932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
933be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(float2 v);
937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
939be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
941be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(float3 v);
942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(float4 v);
947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
949be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
951be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(char2 v);
952be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
953be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
954be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
955be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
956be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(char3 v);
957be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
958be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
959be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
960be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
961be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(char4 v);
962be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
963be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
964be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
965be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
966be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(uchar2 v);
967be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
968be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
969be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
970be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
971be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(uchar3 v);
972be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
973be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
974be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
975be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
976be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(uchar4 v);
977be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
978be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
979be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
980be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
981be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(short2 v);
982be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
983be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
985be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
986be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(short3 v);
987be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
988be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
989be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
990be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
991be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(short4 v);
992be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
993be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
994be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
995be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
996be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(ushort2 v);
997be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
998be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
999be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1000be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
1001be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(ushort3 v);
1002be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1003be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1004be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1005be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
1006be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(ushort4 v);
1007be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1008be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1009be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1010be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
1011be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(int2 v);
1012be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1013be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1014be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1015be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
1016be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(int3 v);
1017be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1018be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1019be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1020be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
1021be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(int4 v);
1022be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1023be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1024be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double2 __attribute__((const, overloadable))
1026be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double2(uint2 v);
1027be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double3 __attribute__((const, overloadable))
1031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double3(uint3 v);
1032be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1033be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1034be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1035be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern double4 __attribute__((const, overloadable))
1036be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_double4(uint4 v);
1037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1041be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(float2 v);
1042be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1043be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1044be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1045be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1046be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(float3 v);
1047be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1048be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1049be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1050be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1051be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(float4 v);
1052be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1053be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1054be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1055be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1056be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(char2 v);
1057be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1058be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1059be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1060be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1061be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(char3 v);
1062be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1063be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1064be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1065be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1066be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(char4 v);
1067be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1068be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1069be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1070be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1071be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(uchar2 v);
1072be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1073be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1074be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1075be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1076be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(uchar3 v);
1077be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1078be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1079be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1080be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1081be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(uchar4 v);
1082be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1083be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(short2 v);
1087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(short3 v);
1092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(short4 v);
1097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(ushort2 v);
1102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(ushort3 v);
1107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(ushort4 v);
1112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(int2 v);
1117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(int3 v);
1122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(int4 v);
1127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))
1131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long2(uint2 v);
1132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))
1136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long3(uint3 v);
1137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))
1141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_long4(uint4 v);
1142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(float2 v);
1147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(float3 v);
1152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(float4 v);
1157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(char2 v);
1162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(char3 v);
1167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(char4 v);
1172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(uchar2 v);
1177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(uchar3 v);
1182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(uchar4 v);
1187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(short2 v);
1192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(short3 v);
1197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(short4 v);
1202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(ushort2 v);
1207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(ushort3 v);
1212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(ushort4 v);
1217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1221be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(int2 v);
1222be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1223be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1224be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1225be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1226be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(int3 v);
1227be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1228be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1229be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1230be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(int4 v);
1232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))
1236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong2(uint2 v);
1237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))
1241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong3(uint3 v);
1242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21))
1245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))
1246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    convert_ulong4(uint4 v);
1247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif
1248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
125020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rsPackColorTo8888: Create a uchar4 RGBA from floats
125120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
1252496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * Packs three or four floating point RGBA values into a uchar4.
1253496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet *
1254496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * The input values are typically between 0.0 and 1.0 inclusive.  For input values outside
1255496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * of this range, the resulting outputs will be clamped to be between 0 and 255.  As this
1256496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * clamping may be done after the input is multiplied by 255.f and converted to an integer,
1257496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * input numbers greater than INT_MAX/255.f or less than INT_MIN/255.f can result in
1258496d0f8f3ce1b12d7d76bae2ecf6fe15a8b3811fJean-Luc Brouillet * undefined behavior.
1259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet *
126001c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * If the alpha component is not specified, it is assumed to be 1.0, i.e. the result will
126101c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * have an alpha set to 255.
126220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
126320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Parameters:
126420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *   r: Red component.
126520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *   g: Green component.
126620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *   b: Blue component.
126720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *   a: Alpha component.
126820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *   color: Vector of 3 or 4 floats containing the R, G, B, and A values.
1269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
1270be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
1271be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsPackColorTo8888(float r, float g, float b);
1272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
1274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsPackColorTo8888(float r, float g, float b, float a);
1275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
1277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsPackColorTo8888(float3 color);
1278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
1280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsPackColorTo8888(float4 color);
1281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
128320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rsUnpackColor8888: Create a float4 RGBA from uchar4
128420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
128501c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet * Unpacks a uchar4 color to float4.  The resulting floats will be between 0.0 and 1.0 inclusive.
1286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
1287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const))
1288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsUnpackColor8888(uchar4 c);
1289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/*
129120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rsYuvToRGBA: Convert a YUV value to RGBA
129220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
129320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Converts a color from a YUV representation to RGBA.
129420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
129520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * We currently don't provide a function to do the reverse conversion.
129620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet *
129720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Parameters:
129801c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet *   y: Luminance component.
129901c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet *   u: U chrominance component.
130001c19c30a73d4a3ad42ad5630ad790db01a853ccJean-Luc Brouillet *   v: V chrominance component.
1301be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */
1302be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))
1303be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsYuvToRGBA_float4(uchar y, uchar u, uchar v);
1304be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))
1306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet    rsYuvToRGBA_uchar4(uchar y, uchar u, uchar v);
1307be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet
1308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif // RENDERSCRIPT_RS_CONVERT_RSH
1309