1/* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.rs.imagejb; 18 19import java.lang.Math; 20 21import android.renderscript.Allocation; 22import android.renderscript.Element; 23import android.renderscript.RenderScript; 24import android.renderscript.Script; 25import android.renderscript.ScriptC; 26import android.renderscript.Type; 27import android.renderscript.Short4; 28import android.util.Log; 29 30public class Posterize extends TestBase { 31 private ScriptC_posterize mScript; 32 boolean mUseInvokes; 33 34 Posterize(boolean useInvoke) { 35 mUseInvokes = useInvoke; 36 } 37 38 public void createTest(android.content.res.Resources res) { 39 mScript = new ScriptC_posterize(mRS); 40 } 41 42 void setParams(float intensHigh, float intensLow, int r, int g, int b) { 43 if (mUseInvokes) { 44 mScript.invoke_setParams(intensHigh, intensLow, 45 (short)r, (short)g, (short)b); 46 } else { 47 mScript.set_intensityLow(intensLow); 48 mScript.set_intensityHigh(intensHigh); 49 mScript.set_color(new Short4((short)r, (short)g, (short)b, (short)255)); 50 } 51 } 52 53 public void runTest() { 54 mScript.set_inputImage(mInPixelsAllocation); 55 setParams(.2f, 0.f, 255, 0, 0); 56 mScript.forEach_root(mInPixelsAllocation, mOutPixelsAllocation); 57 setParams(.4f, 0.2f, 0, 255, 0); 58 mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 59 setParams(.6f, 0.4f, 0, 0, 255); 60 mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 61 setParams(.8f, 0.6f, 255, 255, 0); 62 mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 63 setParams(1.0f, 0.8f, 0, 255, 255); 64 mScript.forEach_root(mOutPixelsAllocation, mOutPixelsAllocation); 65 } 66 67} 68