/*
* Copyright (C) 2013 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.
*/
package com.android.rs.image;
import java.lang.Math;
import android.renderscript.*;
import android.util.Log;
public class Histogram extends TestBase {
private ScriptC_histogram mScript;
private ScriptIntrinsicHistogram mHist;
private Allocation mSum;
private Allocation mSums;
public void createTest(android.content.res.Resources res) {
mScript = new ScriptC_histogram(mRS);
mHist = ScriptIntrinsicHistogram.create(mRS, Element.U8_4(mRS));
int w = mInPixelsAllocation.getType().getX();
int h = mInPixelsAllocation.getType().getY();
int step = 8;
int steps = (h + step - 1) / step;
mScript.set_gWidth(w);
mScript.set_gHeight(h);
mScript.set_gStep(step);
mScript.set_gSteps(steps);
Type.Builder tb = new Type.Builder(mRS, Element.I32(mRS));
tb.setX(256).setY(steps);
Type t = tb.create();
mSums = Allocation.createTyped(mRS, t);
mSum = Allocation.createSized(mRS, Element.I32(mRS), 256);
mScript.set_gSums(mSums);
mScript.set_gSum(mSum);
mScript.set_gSrc(mInPixelsAllocation);
mScript.set_gDest(mOutPixelsAllocation);
mScript.forEach_clear(mOutPixelsAllocation);
}
public void runTest() {
Script.LaunchOptions lo = new Script.LaunchOptions();
lo.setX(0, 1);
//mScript.forEach_pass1(mSums, lo);
//mScript.forEach_pass2(mSum);
mHist.setOutput(mSum);
mHist.forEach_Dot(mInPixelsAllocation);
mScript.invoke_rescale();
lo.setX(0, 1024);
mScript.forEach_draw(mOutPixelsAllocation, lo);
}
}