# # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # header: summary: Conversion Functions description: The functions below convert from a numerical vector type to another, or from one color representation to another. end: function: convert_#3#1 version: 9 attrib: const w: 2, 3, 4 t: u8, u16, u32, i8, i16, i32, f32 t: u8, u16, u32, i8, i16, i32, f32 ret: #3#1 arg: #2#1 v, compatible(#3) summary: Convert numerical vectors description: Converts a vector from one numerical type to another. The conversion are done entry per entry. E.g calling a = convert_short3(b); is equivalent to doing a.x = (short)b.x; a.y = (short)b.y; a.z = (short)b.z;. Converting floating point values to integer types truncates. Converting numbers too large to fit the destination type yields undefined results. For example, converting a float that contains 1.0e18 to a short is undefined. Use @clamp() to avoid this. end: function: convert_#3#1 version: 21 attrib: const w: 2, 3, 4 t: u64, i64, f64 t: u64, i64, f64 ret: #3#1 arg: #2#1 v, compatible(#3) end: function: convert_#3#1 version: 21 attrib: const w: 2, 3, 4 t: u64, i64, f64 t: u8, u16, u32, i8, i16, i32, f32 ret: #3#1 arg: #2#1 v, compatible(#3) end: function: convert_#3#1 version: 21 attrib: const w: 2, 3, 4 t: u8, u16, u32, i8, i16, i32, f32 t: u64, i64, f64 ret: #3#1 arg: #2#1 v, compatible(#3) end: function: convert_#3#1 version: 24 attrib: const w: 2, 3, 4 t: f16 t: u8, u16, u32, u64, i8, i16, i32, i64, f16, f32, f64 ret: #3#1 arg: #2#1 v, compatible(#3) end: function: convert_#3#1 version: 24 attrib: const w: 2, 3, 4 t: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 t: f16 ret: #3#1 arg: #2#1 v, compatible(#3) end: function: rsPackColorTo8888 attrib: const ret: uchar4 arg: float r, "Red component." arg: float g, "Green component." arg: float b, "Blue component." summary: Create a uchar4 RGBA from floats description: Packs three or four floating point RGBA values into a uchar4. The input values are typically between 0.0f and 1.0f inclusive. For input values outside of this range, the resulting outputs will be clamped to be between 0 and 255. As this clamping may be done after the input is multiplied by 255.f and converted to an integer, input numbers greater than INT_MAX/255.f or less than INT_MIN/255.f result in undefined behavior. If the alpha component is not specified, it is assumed to be 1.0, i.e. the result will have an alpha set to 255. test: none end: function: rsPackColorTo8888 attrib: const ret: uchar4 arg: float r arg: float g arg: float b arg: float a, "Alpha component." test: none end: function: rsPackColorTo8888 attrib: const ret: uchar4 arg: float3 color, "Vector of 3 or 4 floats containing the R, G, B, and A values." test: none end: function: rsPackColorTo8888 attrib: const ret: uchar4 arg: float4 color test: none end: function: rsUnpackColor8888 # NOTE: The = below indicates that the generator should not add "overloadable" by default. # We're doing this to stay backward compatible with the unusual declaration used when this # function was introduced. attrib: =const ret: float4 arg: uchar4 c summary: Create a float4 RGBA from uchar4 description: Unpacks a uchar4 color to float4. The resulting floats will be between 0.0 and 1.0 inclusive. test: none end: function: rsYuvToRGBA_#2#1 attrib: const w: 4 t: u8, f32 ret: #2#1 arg: uchar y, "Luminance component." arg: uchar u, "U chrominance component." arg: uchar v, "V chrominance component." summary: Convert a YUV value to RGBA description: Converts a color from a YUV representation to RGBA. We currently don't provide a function to do the reverse conversion. test: none end: