13aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk/* 23aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * Copyright (C) 2011 The Android Open Source Project 33aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * 43aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * Licensed under the Apache License, Version 2.0 (the "License"); 53aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * you may not use this file except in compliance with the License. 63aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * You may obtain a copy of the License at 73aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * 83aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * http://www.apache.org/licenses/LICENSE-2.0 93aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * 103aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * Unless required by applicable law or agreed to in writing, software 113aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * distributed under the License is distributed on an "AS IS" BASIS, 123aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * See the License for the specific language governing permissions and 143aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk * limitations under the License. 153aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk */ 163aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 173aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukpackage com.android.rs.test; 183aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 193aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukimport android.content.Context; 203aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukimport android.content.res.Resources; 213aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukimport android.renderscript.*; 223aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukimport android.renderscript.Mesh.*; 233aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 243aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchoukpublic class UT_mesh extends UnitTest { 253aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk private Resources mRes; 263aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 273aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Mesh mesh; 283aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 293aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk protected UT_mesh(RSTestCore rstc, Resources res, Context ctx) { 303aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk super(rstc, "Mesh", ctx); 313aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mRes = res; 323aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk } 333aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 343aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk private void initializeGlobals(RenderScript RS, ScriptC_mesh s) { 353aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Allocation vAlloc0 = Allocation.createSized(RS, Element.F32(RS), 10); 363aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Allocation vAlloc1 = Allocation.createSized(RS, Element.F32_2(RS), 10); 373aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 383aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Allocation iAlloc0 = Allocation.createSized(RS, Element.I16(RS), 10); 393aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Allocation iAlloc2 = Allocation.createSized(RS, Element.I16(RS), 10); 403aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 413aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk Mesh.AllocationBuilder mBuilder = new Mesh.AllocationBuilder(RS); 423aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mBuilder.addVertexAllocation(vAlloc0); 433aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mBuilder.addVertexAllocation(vAlloc1); 443aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 453aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mBuilder.addIndexSetAllocation(iAlloc0, Primitive.POINT); 463aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mBuilder.addIndexSetType(Primitive.LINE); 473aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk mBuilder.addIndexSetAllocation(iAlloc2, Primitive.TRIANGLE); 483aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 493aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.set_mesh(mBuilder.create()); 503aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.set_vertexAlloc0(vAlloc0); 513aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.set_vertexAlloc1(vAlloc1); 523aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.set_indexAlloc0(iAlloc0); 533aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.set_indexAlloc2(iAlloc2); 543aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk } 553aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 563aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk private void testScriptSide(RenderScript pRS) { 5758b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines ScriptC_mesh s = new ScriptC_mesh(pRS); 583aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk pRS.setMessageHandler(mRsMessage); 593aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk initializeGlobals(pRS, s); 603aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk s.invoke_mesh_test(); 613aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk pRS.finish(); 623aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk waitForMessage(); 633aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk } 643aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 653aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk private void testJavaSide(RenderScript RS) { 663aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk } 673aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk 683aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk public void run() { 693aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk RenderScript pRS = RenderScript.create(mCtx); 703aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk testScriptSide(pRS); 713aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk testJavaSide(pRS); 72a9431e1018edf307216d800b36d23e37ddfa5128Stephen Hines passTest(); 733aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk pRS.destroy(); 743aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk } 753aac0abe7965ce9e2078c7d5796805d83e39df7cAlex Sakhartchouk} 76