1/* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.rs.test; 18 19import android.content.Context; 20import android.content.res.Resources; 21import android.renderscript.*; 22import android.renderscript.ProgramRaster; 23import android.renderscript.ProgramRaster.CullMode; 24 25public class UT_program_raster extends UnitTest { 26 private Resources mRes; 27 28 ProgramRaster pointSpriteEnabled; 29 ProgramRaster cullMode; 30 31 protected UT_program_raster(RSTestCore rstc, Resources res, Context ctx) { 32 super(rstc, "ProgramRaster", ctx); 33 mRes = res; 34 } 35 36 private ProgramRaster.Builder getDefaultBuilder(RenderScript RS) { 37 ProgramRaster.Builder b = new ProgramRaster.Builder(RS); 38 b.setCullMode(CullMode.BACK); 39 b.setPointSpriteEnabled(false); 40 return b; 41 } 42 43 private void initializeGlobals(RenderScript RS, ScriptC_program_raster s) { 44 ProgramRaster.Builder b = getDefaultBuilder(RS); 45 pointSpriteEnabled = b.setPointSpriteEnabled(true).create(); 46 b = getDefaultBuilder(RS); 47 cullMode = b.setCullMode(CullMode.FRONT).create(); 48 49 s.set_pointSpriteEnabled(pointSpriteEnabled); 50 s.set_cullMode(cullMode); 51 } 52 53 private void testScriptSide(RenderScript pRS) { 54 ScriptC_program_raster s = new ScriptC_program_raster(pRS); 55 pRS.setMessageHandler(mRsMessage); 56 initializeGlobals(pRS, s); 57 s.invoke_program_raster_test(); 58 pRS.finish(); 59 waitForMessage(); 60 } 61 62 private void testJavaSide(RenderScript RS) { 63 _RS_ASSERT("pointSpriteEnabled.isPointSpriteEnabled() == true", 64 pointSpriteEnabled.isPointSpriteEnabled() == true); 65 _RS_ASSERT("pointSpriteEnabled.getCullMode() == ProgramRaster.CullMode.BACK", 66 pointSpriteEnabled.getCullMode() == ProgramRaster.CullMode.BACK); 67 68 _RS_ASSERT("cullMode.isPointSpriteEnabled() == false", 69 cullMode.isPointSpriteEnabled() == false); 70 _RS_ASSERT("cullMode.getCullMode() == ProgramRaster.CullMode.FRONT", 71 cullMode.getCullMode() == ProgramRaster.CullMode.FRONT); 72 } 73 74 public void run() { 75 RenderScript pRS = RenderScript.create(mCtx); 76 testScriptSide(pRS); 77 testJavaSide(pRS); 78 passTest(); 79 pRS.destroy(); 80 } 81} 82