diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/filters/ImageFilterGrad.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/filters/ImageFilterGrad.java | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterGrad.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterGrad.java deleted file mode 100644 index cbdfaa623..000000000 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterGrad.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * 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. - */ - -package com.android.gallery3d.filtershow.filters; - -import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.Matrix; - -import com.android.gallery3d.R; -import com.android.gallery3d.filtershow.pipeline.FilterEnvironment; - -import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.Matrix; -import android.support.v8.renderscript.Allocation; -import android.support.v8.renderscript.Element; -import android.support.v8.renderscript.RenderScript; -import android.support.v8.renderscript.Script.LaunchOptions; -import android.support.v8.renderscript.Type; -import android.util.Log; - -import com.android.gallery3d.R; -import com.android.gallery3d.filtershow.pipeline.FilterEnvironment; - -public class ImageFilterGrad extends ImageFilterRS { - private static final String LOGTAG = "ImageFilterGrad"; - private ScriptC_grad mScript; - private Bitmap mSourceBitmap; - private static final int RADIUS_SCALE_FACTOR = 160; - - private static final int STRIP_SIZE = 64; - - FilterGradRepresentation mParameters = new FilterGradRepresentation(); - private Bitmap mOverlayBitmap; - - public ImageFilterGrad() { - mName = "grad"; - } - - @Override - public FilterRepresentation getDefaultRepresentation() { - return new FilterGradRepresentation(); - } - - @Override - public void useRepresentation(FilterRepresentation representation) { - mParameters = (FilterGradRepresentation) representation; - } - - @Override - protected void resetAllocations() { - - } - - @Override - public void resetScripts() { - if (mScript != null) { - mScript.destroy(); - mScript = null; - } - } - @Override - protected void createFilter(android.content.res.Resources res, float scaleFactor, - int quality) { - createFilter(res, scaleFactor, quality, getInPixelsAllocation()); - } - - @Override - protected void createFilter(android.content.res.Resources res, float scaleFactor, - int quality, Allocation in) { - RenderScript rsCtx = getRenderScriptContext(); - - Type.Builder tb_float = new Type.Builder(rsCtx, Element.F32_4(rsCtx)); - tb_float.setX(in.getType().getX()); - tb_float.setY(in.getType().getY()); - mScript = new ScriptC_grad(rsCtx, res, R.raw.grad); - } - - - private Bitmap getSourceBitmap() { - assert (mSourceBitmap != null); - return mSourceBitmap; - } - - @Override - public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) { - if (SIMPLE_ICONS && FilterEnvironment.QUALITY_ICON == quality) { - return bitmap; - } - - mSourceBitmap = bitmap; - Bitmap ret = super.apply(bitmap, scaleFactor, quality); - mSourceBitmap = null; - - return ret; - } - - @Override - protected void bindScriptValues() { - int width = getInPixelsAllocation().getType().getX(); - int height = getInPixelsAllocation().getType().getY(); - mScript.set_inputWidth(width); - mScript.set_inputHeight(height); - } - - @Override - protected void runFilter() { - int[] x1 = mParameters.getXPos1(); - int[] y1 = mParameters.getYPos1(); - int[] x2 = mParameters.getXPos2(); - int[] y2 = mParameters.getYPos2(); - - int width = getInPixelsAllocation().getType().getX(); - int height = getInPixelsAllocation().getType().getY(); - Matrix m = getOriginalToScreenMatrix(width, height); - float[] coord = new float[2]; - for (int i = 0; i < x1.length; i++) { - coord[0] = x1[i]; - coord[1] = y1[i]; - m.mapPoints(coord); - x1[i] = (int) coord[0]; - y1[i] = (int) coord[1]; - coord[0] = x2[i]; - coord[1] = y2[i]; - m.mapPoints(coord); - x2[i] = (int) coord[0]; - y2[i] = (int) coord[1]; - } - - mScript.set_mask(mParameters.getMask()); - mScript.set_xPos1(x1); - mScript.set_yPos1(y1); - mScript.set_xPos2(x2); - mScript.set_yPos2(y2); - - mScript.set_brightness(mParameters.getBrightness()); - mScript.set_contrast(mParameters.getContrast()); - mScript.set_saturation(mParameters.getSaturation()); - - mScript.invoke_setupGradParams(); - runSelectiveAdjust( - getInPixelsAllocation(), getOutPixelsAllocation()); - - } - - private void runSelectiveAdjust(Allocation in, Allocation out) { - int width = in.getType().getX(); - int height = in.getType().getY(); - - LaunchOptions options = new LaunchOptions(); - int ty; - options.setX(0, width); - - for (ty = 0; ty < height; ty += STRIP_SIZE) { - int endy = ty + STRIP_SIZE; - if (endy > height) { - endy = height; - } - options.setY(ty, endy); - mScript.forEach_selectiveAdjust(in, out, options); - if (checkStop()) { - return; - } - } - } - - private boolean checkStop() { - RenderScript rsCtx = getRenderScriptContext(); - rsCtx.finish(); - if (getEnvironment().needsStop()) { - return true; - } - return false; - } -} - |