1d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet/* 2d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Copyright (C) 2010 The Android Open Source Project 3d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 4d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 5d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * you may not use this file except in compliance with the License. 6d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * You may obtain a copy of the License at 7d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 8d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 9d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 10d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software 11d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 12d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * See the License for the specific language governing permissions and 14d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * limitations under the License. 15d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet */ 16d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 17d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohetpackage android.graphics; 18d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 19d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohetimport com.android.layoutlib.bridge.impl.DelegateManager; 209a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohetimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 21d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 22d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet/** 23d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Delegate implementing the native methods of android.graphics.EmbossMaskFilter 24d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 25d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Through the layoutlib_create tool, the original native methods of EmbossMaskFilter have 26d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * been replaced by calls to methods of the same name in this delegate class. 27d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 28d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * This class behaves like the original native implementation, but in Java, keeping previously 29d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * native data into its own objects and mapping them to int that are sent back and forth between 30d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * it and the original EmbossMaskFilter class. 31d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 32d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * Because this extends {@link MaskFilter_Delegate}, there's no need to use a 33d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * {@link DelegateManager}, as all the Shader classes will be added to the manager 34d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * owned by {@link MaskFilter_Delegate}. 35d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 36d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * @see MaskFilter_Delegate 37d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet * 38d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet */ 39d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohetpublic class EmbossMaskFilter_Delegate extends MaskFilter_Delegate { 40d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 41d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet // ---- delegate data ---- 42d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 43d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet // ---- Public Helper methods ---- 44d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 45d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet @Override 46d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet public boolean isSupported() { 47d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet return false; 48d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet } 49d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 50d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet @Override 51d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet public String getSupportMessage() { 52d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet return "Emboss Mask Filters are not supported."; 53d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet } 54d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 55d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet // ---- native methods ---- 56d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 579a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 58d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet /*package*/ static int nativeConstructor(float[] direction, float ambient, 59d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet float specular, float blurRadius) { 60d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet EmbossMaskFilter_Delegate newDelegate = new EmbossMaskFilter_Delegate(); 61cc4977d0fdaf657907912fd6cc2f9426dc8d2e36Xavier Ducrohet return sManager.addNewDelegate(newDelegate); 62d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet } 63d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet 64d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet // ---- Private delegate/helper methods ---- 65d43909c7503e11eb335a452d296a10804bb01fd6Xavier Ducrohet} 66