1ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunkpackage com.android.gallery3d.filtershow.filters;
2ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk
3ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunkimport android.graphics.Bitmap;
4ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk
5ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunkimport com.android.gallery3d.R;
64b1e6fbdf437b7a25fb3eb18a2ed43c9ab4eccc8John Hofordimport com.android.gallery3d.filtershow.editors.ImageOnlyEditor;
7ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk
8ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunkpublic class ImageFilterNegative extends ImageFilter {
9afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford    private static final String SERIALIZATION_NAME = "NEGATIVE";
10ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk    public ImageFilterNegative() {
11ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk        mName = "Negative";
12ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk    }
13ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk
1471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public FilterRepresentation getDefaultRepresentation() {
1571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        FilterRepresentation representation = new FilterDirectRepresentation("Negative");
16afa8ed9d46e760d4b0c0331cfcb4bb49ef6ba280John Hoford        representation.setSerializationName(SERIALIZATION_NAME);
1771f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        representation.setFilterClass(ImageFilterNegative.class);
186900cad45d240c9a54b92991538b6a33652e766cnicolasroard        representation.setTextId(R.string.negative);
196900cad45d240c9a54b92991538b6a33652e766cnicolasroard        representation.setShowParameterValue(false);
204b1e6fbdf437b7a25fb3eb18a2ed43c9ab4eccc8John Hoford        representation.setEditorId(ImageOnlyEditor.ID);
21e5498da0262fc836738aad63ea30286d8afa643cnicolasroard        representation.setSupportsPartialRendering(true);
22edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard        representation.setIsBooleanFilter(true);
2371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        return representation;
2471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
2571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
26ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk    native protected void nativeApplyFilter(Bitmap bitmap, int w, int h);
27ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk
28ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk    @Override
294e6c07b71b269ee3fe7f6fa455bc540238df9dedJohn Hoford    public void useRepresentation(FilterRepresentation representation) {
304e6c07b71b269ee3fe7f6fa455bc540238df9dedJohn Hoford
314e6c07b71b269ee3fe7f6fa455bc540238df9dedJohn Hoford    }
324e6c07b71b269ee3fe7f6fa455bc540238df9dedJohn Hoford
334e6c07b71b269ee3fe7f6fa455bc540238df9dedJohn Hoford    @Override
3499baf61387ab1ef15bb9db5fa3b2b55591e87059John Hoford    public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) {
35ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk        int w = bitmap.getWidth();
36ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk        int h = bitmap.getHeight();
37ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk        nativeApplyFilter(bitmap, w, h);
38ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk        return bitmap;
39ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk    }
40ce178c1fa02362636e4992834592d6e019e4ee80Ruben Brunk}
41