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_alloc extends UnitTest { 2441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private Resources mRes; 2541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 2641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines protected UT_alloc(RSTestCore rstc, Resources res, Context ctx) { 2741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines super(rstc, "Alloc", ctx); 2841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines mRes = res; 2941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 3041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 3141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines private void initializeGlobals(RenderScript RS, ScriptC_alloc s) { 3241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Type.Builder typeBuilder = new Type.Builder(RS, Element.I32(RS)); 3341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int X = 5; 3441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int Y = 7; 3541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines int Z = 0; 3641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_dimX(X); 3741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_dimY(Y); 3841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_dimZ(Z); 3941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder.setX(X).setY(Y); 4041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Allocation A = Allocation.createTyped(RS, typeBuilder.create()); 4141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.bind_a(A); 4241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 4341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder = new Type.Builder(RS, Element.I32(RS)); 4441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder.setX(X).setY(Y).setFaces(true); 4541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Allocation AFaces = Allocation.createTyped(RS, typeBuilder.create()); 4641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_aFaces(AFaces); 4741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder.setFaces(false).setMipmaps(true); 4841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Allocation ALOD = Allocation.createTyped(RS, typeBuilder.create()); 4941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_aLOD(ALOD); 5041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines typeBuilder.setFaces(true).setMipmaps(true); 5141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines Allocation AFacesLOD = Allocation.createTyped(RS, typeBuilder.create()); 5241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.set_aFacesLOD(AFacesLOD); 5341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 5441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines return; 5541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 5641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines 5741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines public void run() { 5841f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines RenderScript pRS = RenderScript.create(mCtx); 5941f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines ScriptC_alloc s = new ScriptC_alloc(pRS, mRes, R.raw.alloc); 6041f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.setMessageHandler(mRsMessage); 6141f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines initializeGlobals(pRS, s); 6241f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines s.invoke_alloc_test(); 6341f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.finish(); 6441f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines waitForMessage(); 6541f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines pRS.destroy(); 6641f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines } 6741f1e5edee2d2663ae46b64528894896ff96fa3dStephen Hines} 68