rs_convert.spec revision be2163801c33d6849ae580d42b919b8803d55095
1be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet# 2be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet# Copyright (C) 2014 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 17be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletheader: 18be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletsummary: Conversion functions 19be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletdescription: 20be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet TODO Add desc. 21be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 22be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 23be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: convert_#3#1 24be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletversion: 9 25be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 26be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletw: 2, 3, 4 27be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u8, u16, u32, i8, i16, i32, f32 28be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u8, u16, u32, i8, i16, i32, f32 29be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: #3#1 30be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: #2#1 v, compatible(#3) 31be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletsummary: Converts numerical vectors 32be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletdescription: 33be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Component wise conversion from a numerical type to another. 34be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 35be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Conversions of floating point values to integer will truncate. 36be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 37be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Conversions of numbers too large to fit the destination type yield undefined results. 38be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet For example, converting a float that contains 1.0e18 to a short is undefined. 39be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Use @clamp() to avoid this. 40be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 41be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 42be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: convert_#3#1 43be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletversion: 21 44be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 45be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletw: 2, 3, 4 46be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u64, i64, f64 47be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u64, i64, f64 48be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: #3#1 49be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: #2#1 v, compatible(#3) 50be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 51be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 52be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: convert_#3#1 53be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletversion: 21 54be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 55be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletw: 2, 3, 4 56be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u64, i64, f64 57be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u8, u16, u32, i8, i16, i32, f32 58be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: #3#1 59be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: #2#1 v, compatible(#3) 60be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 61be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 62be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: convert_#3#1 63be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletversion: 21 64be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 65be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletw: 2, 3, 4 66be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u8, u16, u32, i8, i16, i32, f32 67be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u64, i64, f64 68be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: #3#1 69be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: #2#1 v, compatible(#3) 70be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 71be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 72be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsPackColorTo8888 73be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 74be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: uchar4 75be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float r 76be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float g 77be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float b 78be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletsummary: 79be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletdescription: 80be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Pack floating point (0-1) RGB values into a uchar4. 81be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 82be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet For the float3 variant and the variant that only specifies r, g, b, 83be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet the alpha component is set to 255 (1.0). 84be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 85be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 86be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 87be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsPackColorTo8888 88be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 89be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: uchar4 90be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float r 91be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float g 92be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float b 93be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float a 94be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 95be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 96be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 97be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsPackColorTo8888 98be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 99be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: uchar4 100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float3 color 101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsPackColorTo8888 105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: uchar4 107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: float4 color 108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsUnpackColor8888 112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: =const 113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: float4 114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: uchar4 c 115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletsummary: 116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletdescription: 117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Unpack a uchar4 color to float4. The resulting float range will be (0-1). 118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletfunction: rsYuvToRGBA_#2#1 122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletattrib: const 123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletw: 4 124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillett: u8, f32 125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletret: #2#1 126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: uchar y 127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: uchar u 128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletarg: uchar v 129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletsummary: 130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletdescription: 131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet Convert from YUV to RGBA. 132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillettest: none 133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletend: 134