1648a1c137663ef7207684d0d7009dd5518942111Stephen Hines/* 2648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Copyright (C) 2013 The Android Open Source Project 3648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 4648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 5648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * you may not use this file except in compliance with the License. 6648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * You may obtain a copy of the License at 7648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 8648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 9648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 10648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Unless required by applicable law or agreed to in writing, software 11648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 12648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * See the License for the specific language governing permissions and 14648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * limitations under the License. 15648a1c137663ef7207684d0d7009dd5518942111Stephen Hines */ 16648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 17648a1c137663ef7207684d0d7009dd5518942111Stephen Hinespackage com.android.rs.test_compatlegacy; 18648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 19648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.content.Context; 20648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.content.res.Resources; 21648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.support.v8.renderscript.*; 22648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 23648a1c137663ef7207684d0d7009dd5518942111Stephen Hinespublic class UT_sampler extends UnitTest { 24648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private Resources mRes; 25648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 26648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler minification; 27648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler magnification; 28648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler wrapS; 29648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler wrapT; 30648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler anisotropy; 31648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 32648a1c137663ef7207684d0d7009dd5518942111Stephen Hines protected UT_sampler(RSTestCore rstc, Resources res, Context ctx) { 33648a1c137663ef7207684d0d7009dd5518942111Stephen Hines super(rstc, "Sampler", ctx); 34648a1c137663ef7207684d0d7009dd5518942111Stephen Hines mRes = res; 35648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 36648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 37648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private Sampler.Builder getDefaultBuilder(RenderScript RS) { 38648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler.Builder b = new Sampler.Builder(RS); 39648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setMinification(Sampler.Value.NEAREST); 40648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setMagnification(Sampler.Value.NEAREST); 41648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setWrapS(Sampler.Value.CLAMP); 42648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setWrapT(Sampler.Value.CLAMP); 43648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setAnisotropy(1.0f); 44648a1c137663ef7207684d0d7009dd5518942111Stephen Hines return b; 45648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 46648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 47648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private void initializeGlobals(RenderScript RS, ScriptC_sampler s) { 48648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Sampler.Builder b = getDefaultBuilder(RS); 49648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); 50648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification = b.create(); 51648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 52648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b = getDefaultBuilder(RS); 53648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setMagnification(Sampler.Value.LINEAR); 54648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification = b.create(); 55648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 56648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b = getDefaultBuilder(RS); 57648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setWrapS(Sampler.Value.WRAP); 58648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS = b.create(); 59648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 60648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b = getDefaultBuilder(RS); 61648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setWrapT(Sampler.Value.WRAP); 62648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT = b.create(); 63648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 64648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b = getDefaultBuilder(RS); 65648a1c137663ef7207684d0d7009dd5518942111Stephen Hines b.setAnisotropy(8.0f); 66648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy = b.create(); 67648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 68648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.set_minification(minification); 69648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.set_magnification(magnification); 70648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.set_wrapS(wrapS); 71648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.set_wrapT(wrapT); 72648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.set_anisotropy(anisotropy); 73648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 74648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 75648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private void testScriptSide(RenderScript pRS) { 76648a1c137663ef7207684d0d7009dd5518942111Stephen Hines ScriptC_sampler s = new ScriptC_sampler(pRS); 77648a1c137663ef7207684d0d7009dd5518942111Stephen Hines pRS.setMessageHandler(mRsMessage); 78648a1c137663ef7207684d0d7009dd5518942111Stephen Hines initializeGlobals(pRS, s); 79648a1c137663ef7207684d0d7009dd5518942111Stephen Hines s.invoke_sampler_test(); 80648a1c137663ef7207684d0d7009dd5518942111Stephen Hines pRS.finish(); 81648a1c137663ef7207684d0d7009dd5518942111Stephen Hines waitForMessage(); 82648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 83648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 84648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private void testJavaSide(RenderScript RS) { 85648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("minification.getMagnification() == Sampler.Value.NEAREST", 86648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification.getMagnification() == Sampler.Value.NEAREST); 87648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR", 88648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR); 89648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("minification.getWrapS() == Sampler.Value.CLAMP", 90648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification.getWrapS() == Sampler.Value.CLAMP); 91648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("minification.getWrapT() == Sampler.Value.CLAMP", 92648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification.getWrapT() == Sampler.Value.CLAMP); 93648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("minification.getAnisotropy() == 1.0f", 94648a1c137663ef7207684d0d7009dd5518942111Stephen Hines minification.getAnisotropy() == 1.0f); 95648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 96648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("magnification.getMagnification() == Sampler.Value.LINEAR", 97648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification.getMagnification() == Sampler.Value.LINEAR); 98648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("magnification.getMinification() == Sampler.Value.NEAREST", 99648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification.getMinification() == Sampler.Value.NEAREST); 100648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("magnification.getWrapS() == Sampler.Value.CLAMP", 101648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification.getWrapS() == Sampler.Value.CLAMP); 102648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("magnification.getWrapT() == Sampler.Value.CLAMP", 103648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification.getWrapT() == Sampler.Value.CLAMP); 104648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("magnification.getAnisotropy() == 1.0f", 105648a1c137663ef7207684d0d7009dd5518942111Stephen Hines magnification.getAnisotropy() == 1.0f); 106648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 107648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapS.getMagnification() == Sampler.Value.NEAREST", 108648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS.getMagnification() == Sampler.Value.NEAREST); 109648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapS.getMinification() == Sampler.Value.NEAREST", 110648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS.getMinification() == Sampler.Value.NEAREST); 111648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapS.getWrapS() == Sampler.Value.WRAP", 112648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS.getWrapS() == Sampler.Value.WRAP); 113648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapS.getWrapT() == Sampler.Value.CLAMP", 114648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS.getWrapT() == Sampler.Value.CLAMP); 115648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapS.getAnisotropy() == 1.0f", 116648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapS.getAnisotropy() == 1.0f); 117648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 118648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapT.getMagnification() == Sampler.Value.NEAREST", 119648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT.getMagnification() == Sampler.Value.NEAREST); 120648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapT.getMinification() == Sampler.Value.NEAREST", 121648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT.getMinification() == Sampler.Value.NEAREST); 122648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapT.getWrapS() == Sampler.Value.CLAMP", 123648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT.getWrapS() == Sampler.Value.CLAMP); 124648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapT.getWrapT() == Sampler.Value.WRAP", 125648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT.getWrapT() == Sampler.Value.WRAP); 126648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("wrapT.getAnisotropy() == 1.0f", 127648a1c137663ef7207684d0d7009dd5518942111Stephen Hines wrapT.getAnisotropy() == 1.0f); 128648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 129648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("anisotropy.getMagnification() == Sampler.Value.NEAREST", 130648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy.getMagnification() == Sampler.Value.NEAREST); 131648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("anisotropy.getMinification() == Sampler.Value.NEAREST", 132648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy.getMinification() == Sampler.Value.NEAREST); 133648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("anisotropy.getWrapS() == Sampler.Value.CLAMP", 134648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy.getWrapS() == Sampler.Value.CLAMP); 135648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("anisotropy.getWrapT() == Sampler.Value.CLAMP", 136648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy.getWrapT() == Sampler.Value.CLAMP); 137648a1c137663ef7207684d0d7009dd5518942111Stephen Hines _RS_ASSERT("anisotropy.getAnisotropy() == 1.0f", 138648a1c137663ef7207684d0d7009dd5518942111Stephen Hines anisotropy.getAnisotropy() == 8.0f); 139648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 140648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 141648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void run() { 142648a1c137663ef7207684d0d7009dd5518942111Stephen Hines RenderScript pRS = RenderScript.create(mCtx); 143648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testScriptSide(pRS); 144648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testJavaSide(pRS); 145648a1c137663ef7207684d0d7009dd5518942111Stephen Hines passTest(); 146648a1c137663ef7207684d0d7009dd5518942111Stephen Hines pRS.destroy(); 147648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 148648a1c137663ef7207684d0d7009dd5518942111Stephen Hines} 149