1/* 2 * Copyright (C) 2013 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_compatlegacy; 18 19import android.content.Context; 20import android.content.res.Resources; 21import android.support.v8.renderscript.*; 22 23public class UT_sampler extends UnitTest { 24 private Resources mRes; 25 26 Sampler minification; 27 Sampler magnification; 28 Sampler wrapS; 29 Sampler wrapT; 30 Sampler anisotropy; 31 32 protected UT_sampler(RSTestCore rstc, Resources res, Context ctx) { 33 super(rstc, "Sampler", ctx); 34 mRes = res; 35 } 36 37 private Sampler.Builder getDefaultBuilder(RenderScript RS) { 38 Sampler.Builder b = new Sampler.Builder(RS); 39 b.setMinification(Sampler.Value.NEAREST); 40 b.setMagnification(Sampler.Value.NEAREST); 41 b.setWrapS(Sampler.Value.CLAMP); 42 b.setWrapT(Sampler.Value.CLAMP); 43 b.setAnisotropy(1.0f); 44 return b; 45 } 46 47 private void initializeGlobals(RenderScript RS, ScriptC_sampler s) { 48 Sampler.Builder b = getDefaultBuilder(RS); 49 b.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); 50 minification = b.create(); 51 52 b = getDefaultBuilder(RS); 53 b.setMagnification(Sampler.Value.LINEAR); 54 magnification = b.create(); 55 56 b = getDefaultBuilder(RS); 57 b.setWrapS(Sampler.Value.WRAP); 58 wrapS = b.create(); 59 60 b = getDefaultBuilder(RS); 61 b.setWrapT(Sampler.Value.WRAP); 62 wrapT = b.create(); 63 64 b = getDefaultBuilder(RS); 65 b.setAnisotropy(8.0f); 66 anisotropy = b.create(); 67 68 s.set_minification(minification); 69 s.set_magnification(magnification); 70 s.set_wrapS(wrapS); 71 s.set_wrapT(wrapT); 72 s.set_anisotropy(anisotropy); 73 } 74 75 private void testScriptSide(RenderScript pRS) { 76 ScriptC_sampler s = new ScriptC_sampler(pRS); 77 pRS.setMessageHandler(mRsMessage); 78 initializeGlobals(pRS, s); 79 s.invoke_sampler_test(); 80 pRS.finish(); 81 waitForMessage(); 82 } 83 84 private void testJavaSide(RenderScript RS) { 85 _RS_ASSERT("minification.getMagnification() == Sampler.Value.NEAREST", 86 minification.getMagnification() == Sampler.Value.NEAREST); 87 _RS_ASSERT("minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR", 88 minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR); 89 _RS_ASSERT("minification.getWrapS() == Sampler.Value.CLAMP", 90 minification.getWrapS() == Sampler.Value.CLAMP); 91 _RS_ASSERT("minification.getWrapT() == Sampler.Value.CLAMP", 92 minification.getWrapT() == Sampler.Value.CLAMP); 93 _RS_ASSERT("minification.getAnisotropy() == 1.0f", 94 minification.getAnisotropy() == 1.0f); 95 96 _RS_ASSERT("magnification.getMagnification() == Sampler.Value.LINEAR", 97 magnification.getMagnification() == Sampler.Value.LINEAR); 98 _RS_ASSERT("magnification.getMinification() == Sampler.Value.NEAREST", 99 magnification.getMinification() == Sampler.Value.NEAREST); 100 _RS_ASSERT("magnification.getWrapS() == Sampler.Value.CLAMP", 101 magnification.getWrapS() == Sampler.Value.CLAMP); 102 _RS_ASSERT("magnification.getWrapT() == Sampler.Value.CLAMP", 103 magnification.getWrapT() == Sampler.Value.CLAMP); 104 _RS_ASSERT("magnification.getAnisotropy() == 1.0f", 105 magnification.getAnisotropy() == 1.0f); 106 107 _RS_ASSERT("wrapS.getMagnification() == Sampler.Value.NEAREST", 108 wrapS.getMagnification() == Sampler.Value.NEAREST); 109 _RS_ASSERT("wrapS.getMinification() == Sampler.Value.NEAREST", 110 wrapS.getMinification() == Sampler.Value.NEAREST); 111 _RS_ASSERT("wrapS.getWrapS() == Sampler.Value.WRAP", 112 wrapS.getWrapS() == Sampler.Value.WRAP); 113 _RS_ASSERT("wrapS.getWrapT() == Sampler.Value.CLAMP", 114 wrapS.getWrapT() == Sampler.Value.CLAMP); 115 _RS_ASSERT("wrapS.getAnisotropy() == 1.0f", 116 wrapS.getAnisotropy() == 1.0f); 117 118 _RS_ASSERT("wrapT.getMagnification() == Sampler.Value.NEAREST", 119 wrapT.getMagnification() == Sampler.Value.NEAREST); 120 _RS_ASSERT("wrapT.getMinification() == Sampler.Value.NEAREST", 121 wrapT.getMinification() == Sampler.Value.NEAREST); 122 _RS_ASSERT("wrapT.getWrapS() == Sampler.Value.CLAMP", 123 wrapT.getWrapS() == Sampler.Value.CLAMP); 124 _RS_ASSERT("wrapT.getWrapT() == Sampler.Value.WRAP", 125 wrapT.getWrapT() == Sampler.Value.WRAP); 126 _RS_ASSERT("wrapT.getAnisotropy() == 1.0f", 127 wrapT.getAnisotropy() == 1.0f); 128 129 _RS_ASSERT("anisotropy.getMagnification() == Sampler.Value.NEAREST", 130 anisotropy.getMagnification() == Sampler.Value.NEAREST); 131 _RS_ASSERT("anisotropy.getMinification() == Sampler.Value.NEAREST", 132 anisotropy.getMinification() == Sampler.Value.NEAREST); 133 _RS_ASSERT("anisotropy.getWrapS() == Sampler.Value.CLAMP", 134 anisotropy.getWrapS() == Sampler.Value.CLAMP); 135 _RS_ASSERT("anisotropy.getWrapT() == Sampler.Value.CLAMP", 136 anisotropy.getWrapT() == Sampler.Value.CLAMP); 137 _RS_ASSERT("anisotropy.getAnisotropy() == 1.0f", 138 anisotropy.getAnisotropy() == 8.0f); 139 } 140 141 public void run() { 142 RenderScript pRS = RenderScript.create(mCtx); 143 testScriptSide(pRS); 144 testJavaSide(pRS); 145 passTest(); 146 pRS.destroy(); 147 } 148} 149