16749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni/* 26749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Copyright (C) 2012 The Android Open Source Project 36749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * 46749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Licensed under the Apache License, Version 2.0 (the "License"); 56749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * you may not use this file except in compliance with the License. 66749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * You may obtain a copy of the License at 76749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * 86749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * http://www.apache.org/licenses/LICENSE-2.0 96749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * 106749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * Unless required by applicable law or agreed to in writing, software 116749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * distributed under the License is distributed on an "AS IS" BASIS, 126749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * See the License for the specific language governing permissions and 146749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni * limitations under the License. 156749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni */ 166749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 176749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#pragma version(1) 186749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#pragma rs java_package_name(rs2spirv) 196749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#pragma rs_fp_relaxed 206749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 216749f541c20e86f5deb6fd421ed5849ef43c275cYang Nistatic float brightM = 0.f; 226749f541c20e86f5deb6fd421ed5849ef43c275cYang Nistatic float brightC = 0.f; 236749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 246749f541c20e86f5deb6fd421ed5849ef43c275cYang Nivoid setBright(float v) { 256749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni brightM = pow(2.f, v / 100.f); 266749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni brightC = 127.f - brightM * 127.f; 276749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni} 286749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 296749f541c20e86f5deb6fd421ed5849ef43c275cYang Niuchar4 __attribute__((kernel)) contrast(uchar4 in) { 306749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni float3 v = convert_float3(in.rgb) * brightM + brightC; 316749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni uchar4 o; 326749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni o.rgb = convert_uchar3(clamp(v, 0.f, 255.f)); 336749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni o.a = 0xff; 346749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni return o; 356749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni}