Sampler.java revision 771bebb94054d06f97284379c93a2620613513c3
1/* 2 * Copyright (C) 2008 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 android.renderscript; 18 19 20import java.io.IOException; 21import java.io.InputStream; 22 23import android.content.res.Resources; 24import android.os.Bundle; 25import android.util.Config; 26import android.util.Log; 27 28import android.graphics.Bitmap; 29import android.graphics.BitmapFactory; 30 31/** 32 * @hide 33 * 34 **/ 35public class Sampler extends BaseObj { 36 public enum Value { 37 NEAREST (0), 38 LINEAR (1), 39 LINEAR_MIP_LINEAR (2), 40 WRAP (3), 41 CLAMP (4); 42 43 int mID; 44 Value(int id) { 45 mID = id; 46 } 47 } 48 49 Sampler(int id, RenderScript rs) { 50 super(rs); 51 mID = id; 52 } 53 54 public static class Builder { 55 RenderScript mRS; 56 Value mMin; 57 Value mMag; 58 Value mWrapS; 59 Value mWrapT; 60 Value mWrapR; 61 62 public Builder(RenderScript rs) { 63 mRS = rs; 64 mMin = Value.NEAREST; 65 mMag = Value.NEAREST; 66 mWrapS = Value.WRAP; 67 mWrapT = Value.WRAP; 68 mWrapR = Value.WRAP; 69 } 70 71 public void setMin(Value v) { 72 mMin = v; 73 } 74 75 public void setMag(Value v) { 76 mMag = v; 77 } 78 79 public void setWrapS(Value v) { 80 mWrapS = v; 81 } 82 83 public void setWrapT(Value v) { 84 mWrapT = v; 85 } 86 87 public void setWrapR(Value v) { 88 mWrapR = v; 89 } 90 91 static synchronized Sampler internalCreate(RenderScript rs, Builder b) { 92 rs.nSamplerBegin(); 93 rs.nSamplerSet(0, b.mMin.mID); 94 rs.nSamplerSet(1, b.mMag.mID); 95 rs.nSamplerSet(2, b.mWrapS.mID); 96 rs.nSamplerSet(3, b.mWrapT.mID); 97 rs.nSamplerSet(4, b.mWrapR.mID); 98 int id = rs.nSamplerCreate(); 99 return new Sampler(id, rs); 100 } 101 102 public Sampler create() { 103 mRS.validate(); 104 return internalCreate(mRS, this); 105 } 106 } 107 108} 109 110