141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines/* 241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Copyright (C) 2011 The Android Open Source Project 341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * you may not use this file except in compliance with the License. 641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * You may obtain a copy of the License at 741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * http://www.apache.org/licenses/LICENSE-2.0 941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * 1041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * Unless required by applicable law or agreed to in writing, software 1141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 1241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * See the License for the specific language governing permissions and 1441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines * limitations under the License. 1541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines */ 1641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 1741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinespackage com.android.rs.test_v14; 1841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 1941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.content.Context; 2041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.content.res.Resources; 2141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinesimport android.renderscript.*; 2241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 2341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hinespublic class UT_foreach extends UnitTest { 2441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private Resources mRes; 2541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private Allocation A; 2641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 2741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines protected UT_foreach(RSTestCore rstc, Resources res, Context ctx) { 2841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines super(rstc, "ForEach", ctx); 2941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines mRes = res; 3041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 3141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 3241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private void initializeGlobals(RenderScript RS, ScriptC_foreach s) { 3341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Type.Builder typeBuilder = new Type.Builder(RS, Element.I32(RS)); 3441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int X = 5; 3541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int Y = 7; 3641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_dimX(X); 3741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_dimY(Y); 3841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder.setX(X).setY(Y); 3941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines A = Allocation.createTyped(RS, typeBuilder.create()); 4041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.bind_a(A); 4141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 4241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return; 4341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 4441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 4541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines public void run() { 4641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines RenderScript pRS = RenderScript.create(mCtx); 4741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines ScriptC_foreach s = new ScriptC_foreach(pRS, mRes, R.raw.foreach); 4841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.setMessageHandler(mRsMessage); 4941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines initializeGlobals(pRS, s); 5041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.forEach_root(A); 5141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.invoke_foreach_test(); 5241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.finish(); 5341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines waitForMessage(); 5441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.destroy(); 5541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 5641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines} 57