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