blob: dfeac813cf8024ee572c30219e958cb5bd598b27 [file] [log] [blame]
Jason Sams0835d422009-08-04 17:58:23 -07001/*
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 void destroy() {
55 mRS.nSamplerDestroy(mID);
56 mID = 0;
57 }
58
59 public static class Builder {
60 RenderScript mRS;
61 Value mMin;
62 Value mMag;
63 Value mWrapS;
64 Value mWrapT;
65 Value mWrapR;
66
67 public Builder(RenderScript rs) {
68 mRS = rs;
69 mMin = Value.NEAREST;
70 mMag = Value.NEAREST;
71 mWrapS = Value.WRAP;
72 mWrapT = Value.WRAP;
73 mWrapR = Value.WRAP;
74 }
75
76 public void setMin(Value v) {
77 mMin = v;
78 }
79
80 public void setMag(Value v) {
81 mMag = v;
82 }
83
84 public void setWrapS(Value v) {
85 mWrapS = v;
86 }
87
88 public void setWrapT(Value v) {
89 mWrapT = v;
90 }
91
92 public void setWrapR(Value v) {
93 mWrapR = v;
94 }
95
96 static synchronized Sampler internalCreate(RenderScript rs, Builder b) {
97 rs.nSamplerBegin();
98 rs.nSamplerSet(0, b.mMin.mID);
99 rs.nSamplerSet(1, b.mMag.mID);
100 rs.nSamplerSet(2, b.mWrapS.mID);
101 rs.nSamplerSet(3, b.mWrapT.mID);
102 rs.nSamplerSet(4, b.mWrapR.mID);
103 int id = rs.nSamplerCreate();
104 return new Sampler(id, rs);
105 }
106
107 public Sampler create() {
108 return internalCreate(mRS, this);
109 }
110 }
111
112}
113