10e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed/*
20e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * Copyright (C) 2006 The Android Open Source Project
30e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed *
40e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * Licensed under the Apache License, Version 2.0 (the "License");
50e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * you may not use this file except in compliance with the License.
60e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * You may obtain a copy of the License at
70e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed *
80e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed *      http://www.apache.org/licenses/LICENSE-2.0
90e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed *
100e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * Unless required by applicable law or agreed to in writing, software
110e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * distributed under the License is distributed on an "AS IS" BASIS,
120e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * See the License for the specific language governing permissions and
140e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * limitations under the License.
150e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed */
160e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
170e1e62301112a51d9b91ac4ac31c406d726f93abMike Reedpackage android.graphics;
180e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
190e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed/**
200e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed * @hide
210e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed */
220e1e62301112a51d9b91ac4ac31c406d726f93abMike Reedpublic class TableMaskFilter extends MaskFilter {
230e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
240e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    public TableMaskFilter(byte[] table) {
250e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        if (table.length < 256) {
260e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed            throw new RuntimeException("table.length must be >= 256");
270e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        }
280e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        native_instance = nativeNewTable(table);
290e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    }
300e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
3136bef0bf30d6bae48cf3837df351075ca4fce654Ashok Bhat    private TableMaskFilter(long ni) {
320e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        native_instance = ni;
330e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    }
340e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
350e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    public static TableMaskFilter CreateClipTable(int min, int max) {
360e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        return new TableMaskFilter(nativeNewClip(min, max));
370e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    }
380e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
390e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    public static TableMaskFilter CreateGammaTable(float gamma) {
400e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed        return new TableMaskFilter(nativeNewGamma(gamma));
410e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed    }
420e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed
4336bef0bf30d6bae48cf3837df351075ca4fce654Ashok Bhat    private static native long nativeNewTable(byte[] table);
4436bef0bf30d6bae48cf3837df351075ca4fce654Ashok Bhat    private static native long nativeNewClip(int min, int max);
4536bef0bf30d6bae48cf3837df351075ca4fce654Ashok Bhat    private static native long nativeNewGamma(float gamma);
460e1e62301112a51d9b91ac4ac31c406d726f93abMike Reed}
47