package jp.wasabeef.fresco.processors.gpu;
/**
* Copyright (C) 2017 Wasabeef
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import android.content.Context;
import android.graphics.PointF;
import com.facebook.cache.common.CacheKey;
import com.facebook.cache.common.SimpleCacheKey;
import jp.co.cyberagent.android.gpuimage.GPUImageSwirlFilter;
/**
* Creates a swirl distortion on the image.
*/
public class SwirlFilterPostprocessor extends GPUFilterPostprocessor {
private float radius;
private float angle;
private PointF center;
public SwirlFilterPostprocessor(Context context) {
this(context, 0.5f, 1.0f, new PointF(0.5f, 0.5f));
}
/**
* @param radius from 0.0 to 1.0, default 0.5
* @param angle minimum 0.0, default 1.0
* @param center default (0.5, 0.5)
*/
public SwirlFilterPostprocessor(Context context, float radius, float angle, PointF center) {
super(context, new GPUImageSwirlFilter());
this.radius = radius;
this.angle = angle;
this.center = center;
GPUImageSwirlFilter filter = getFilter();
filter.setRadius(this.radius);
filter.setAngle(this.angle);
filter.setCenter(this.center);
}
@Override public CacheKey getPostprocessorCacheKey() {
return new SimpleCacheKey(
"radius=" + radius + ",angle=" + angle + ",center=" + center.toString());
}
}