1dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines/* 2dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * Copyright (C) 2011 The Android Open Source Project 3dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * 4dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 5dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * you may not use this file except in compliance with the License. 6dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * You may obtain a copy of the License at 7dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * 8dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 9dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * 10dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * Unless required by applicable law or agreed to in writing, software 11dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 12dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * See the License for the specific language governing permissions and 14dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines * limitations under the License. 15dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines */ 16dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 17dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hinespackage com.android.rs.test_v16; 18dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 19dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hinesimport android.content.Context; 20dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hinesimport android.content.res.Resources; 21dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hinesimport android.renderscript.*; 22dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 23dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hinespublic class UT_alloc extends UnitTest { 24dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines private Resources mRes; 25dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 26dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines protected UT_alloc(RSTestCore rstc, Resources res, Context ctx) { 27dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines super(rstc, "Alloc", ctx); 28dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines mRes = res; 29dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines } 30dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 31dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines private void initializeGlobals(RenderScript RS, ScriptC_alloc s) { 32dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines Type.Builder typeBuilder = new Type.Builder(RS, Element.I32(RS)); 33dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines int X = 5; 34dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines int Y = 7; 35dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines int Z = 0; 36dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_dimX(X); 37dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_dimY(Y); 38dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_dimZ(Z); 39dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines typeBuilder.setX(X).setY(Y); 40dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines Allocation A = Allocation.createTyped(RS, typeBuilder.create()); 41dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.bind_a(A); 42dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_aRaw(A); 43dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 44dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines typeBuilder = new Type.Builder(RS, Element.I32(RS)); 45dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines typeBuilder.setX(X).setY(Y).setFaces(true); 46dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines Allocation AFaces = Allocation.createTyped(RS, typeBuilder.create()); 47dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_aFaces(AFaces); 48dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines typeBuilder.setFaces(false).setMipmaps(true); 49dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines Allocation ALOD = Allocation.createTyped(RS, typeBuilder.create()); 50dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_aLOD(ALOD); 51dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines typeBuilder.setFaces(true).setMipmaps(true); 52dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines Allocation AFacesLOD = Allocation.createTyped(RS, typeBuilder.create()); 53dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.set_aFacesLOD(AFacesLOD); 54dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 55dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines return; 56dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines } 57dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines 58dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines public void run() { 59dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines RenderScript pRS = RenderScript.create(mCtx); 60dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines ScriptC_alloc s = new ScriptC_alloc(pRS); 61dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines pRS.setMessageHandler(mRsMessage); 62dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines initializeGlobals(pRS, s); 63dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.forEach_root(s.get_aRaw()); 64dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines s.invoke_alloc_test(); 65dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines pRS.finish(); 66dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines waitForMessage(); 67dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines pRS.destroy(); 68dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines } 69dbfa0bfd5516270482ebb9eff483ea058dfa19a9Stephen Hines} 70