1721a5a24e2278f4012109865d62b98190b3185afJason Sams/* 2721a5a24e2278f4012109865d62b98190b3185afJason Sams * Copyright (C) 2014 The Android Open Source Project 3721a5a24e2278f4012109865d62b98190b3185afJason Sams * 4721a5a24e2278f4012109865d62b98190b3185afJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5721a5a24e2278f4012109865d62b98190b3185afJason Sams * you may not use this file except in compliance with the License. 6721a5a24e2278f4012109865d62b98190b3185afJason Sams * You may obtain a copy of the License at 7721a5a24e2278f4012109865d62b98190b3185afJason Sams * 8721a5a24e2278f4012109865d62b98190b3185afJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9721a5a24e2278f4012109865d62b98190b3185afJason Sams * 10721a5a24e2278f4012109865d62b98190b3185afJason Sams * Unless required by applicable law or agreed to in writing, software 11721a5a24e2278f4012109865d62b98190b3185afJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12721a5a24e2278f4012109865d62b98190b3185afJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13721a5a24e2278f4012109865d62b98190b3185afJason Sams * See the License for the specific language governing permissions and 14721a5a24e2278f4012109865d62b98190b3185afJason Sams * limitations under the License. 15721a5a24e2278f4012109865d62b98190b3185afJason Sams */ 16721a5a24e2278f4012109865d62b98190b3185afJason Sams 17721a5a24e2278f4012109865d62b98190b3185afJason Samspackage com.android.rs.imagejb; 18721a5a24e2278f4012109865d62b98190b3185afJason Sams 19721a5a24e2278f4012109865d62b98190b3185afJason Samsimport java.lang.Math; 20721a5a24e2278f4012109865d62b98190b3185afJason Sams 21721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.Allocation; 22721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.Element; 23721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.RenderScript; 24721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.Script; 25721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.ScriptC; 26721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.Type; 27721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.renderscript.Short4; 28721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.util.Log; 29721a5a24e2278f4012109865d62b98190b3185afJason Sams 30721a5a24e2278f4012109865d62b98190b3185afJason Samspublic class Posterize extends TestBase { 31721a5a24e2278f4012109865d62b98190b3185afJason Sams private ScriptC_posterize mScript; 32721a5a24e2278f4012109865d62b98190b3185afJason Sams boolean mUseInvokes; 33721a5a24e2278f4012109865d62b98190b3185afJason Sams 34721a5a24e2278f4012109865d62b98190b3185afJason Sams Posterize(boolean useInvoke) { 35721a5a24e2278f4012109865d62b98190b3185afJason Sams mUseInvokes = useInvoke; 36721a5a24e2278f4012109865d62b98190b3185afJason Sams } 37721a5a24e2278f4012109865d62b98190b3185afJason Sams 38721a5a24e2278f4012109865d62b98190b3185afJason Sams public void createTest(android.content.res.Resources res) { 39721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript = new ScriptC_posterize(mRS); 40721a5a24e2278f4012109865d62b98190b3185afJason Sams } 41721a5a24e2278f4012109865d62b98190b3185afJason Sams 42721a5a24e2278f4012109865d62b98190b3185afJason Sams void setParams(float intensHigh, float intensLow, int r, int g, int b) { 43721a5a24e2278f4012109865d62b98190b3185afJason Sams if (mUseInvokes) { 44721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.invoke_setParams(intensHigh, intensLow, 45721a5a24e2278f4012109865d62b98190b3185afJason Sams (short)r, (short)g, (short)b); 46721a5a24e2278f4012109865d62b98190b3185afJason Sams } else { 47721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.set_intensityLow(intensLow); 48721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.set_intensityHigh(intensHigh); 49721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.set_color(new Short4((short)r, (short)g, (short)b, (short)255)); 50721a5a24e2278f4012109865d62b98190b3185afJason Sams } 51721a5a24e2278f4012109865d62b98190b3185afJason Sams } 52721a5a24e2278f4012109865d62b98190b3185afJason Sams 53721a5a24e2278f4012109865d62b98190b3185afJason Sams public void runTest() { 54721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.set_inputImage(mInPixelsAllocation); 55721a5a24e2278f4012109865d62b98190b3185afJason Sams setParams(.2f, 0.f, 255, 0, 0); 56721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation); 57721a5a24e2278f4012109865d62b98190b3185afJason Sams setParams(.4f, 0.2f, 0, 255, 0); 58721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 59721a5a24e2278f4012109865d62b98190b3185afJason Sams setParams(.6f, 0.4f, 0, 0, 255); 60721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 61721a5a24e2278f4012109865d62b98190b3185afJason Sams setParams(.8f, 0.6f, 255, 255, 0); 62721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 63721a5a24e2278f4012109865d62b98190b3185afJason Sams setParams(1.0f, 0.8f, 0, 255, 255); 64721a5a24e2278f4012109865d62b98190b3185afJason Sams mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 65721a5a24e2278f4012109865d62b98190b3185afJason Sams } 66721a5a24e2278f4012109865d62b98190b3185afJason Sams 67721a5a24e2278f4012109865d62b98190b3185afJason Sams} 68