|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- /**
- * libcaca Java bindings for libcaca
- * Copyright (c) 2009 Adrien Grand <jpountz@dinauz.org>
- *
- * This library is free software. It comes without any warranty, to
- * the extent permitted by applicable law. You can redistribute it
- * and/or modify it under the terms of the Do What the Fuck You Want
- * to Public License, Version 2, as published by Sam Hocevar. See
- * http://www.wtfpl.net/ for more details.
- */
-
- package org.zoy.caca;
-
- public class Dither extends NativeObject {
-
- static {
- Caca.load();
- }
-
- private native static long createDither(int bitmapDepth, int weight, int height,
- int pitch, int redMask, int greenMask, int blueMask, int alphaMask);
-
- public Dither(int bitmapDepth, int weight, int height, int pitch, int redMask,
- int greenMask, int blueMask, int alphaMask) {
- this.ptr = createDither(bitmapDepth, weight, height, pitch, redMask, greenMask,
- blueMask, alphaMask);
- }
-
- private static native void setDitherPalette(long ditherPtr, int[] red, int[] green,
- int[] blue, int[] alpha);
-
- public void setPalette(int[] red, int[] green, int[] blue, int[] alpha) {
- if (red.length != 256 ||
- green.length != 256 ||
- blue.length != 256 ||
- alpha.length !=256) {
- throw new IllegalArgumentException("Palette components must have 256 elements");
- }
- setDitherPalette(ptr, red, green, blue, alpha);
- }
-
- private static native void setDitherBrightness(long ditherPtr, float brightness);
-
- public void setBrightness(float brightness) {
- setDitherBrightness(ptr, brightness);
- }
-
- private static native float getDitherBrightness(long ditherPtr);
-
- public float getBrightness() {
- return getDitherBrightness(ptr);
- }
-
- private static native void setDitherGamma(long ditherPtr, float gama);
-
- public void setGamma(float gama) {
- setDitherGamma(ptr, gama);
- }
-
- private static native float getDitherGamma(long ditherPtr);
-
- public float getGamma() {
- return getDitherGamma(ptr);
- }
-
- private static native void setDitherContrast(long ditherPtr, float contrast);
-
- public void setContrast(float contrast) {
- setDitherContrast(ptr, contrast);
- }
-
- private static native float getDitherContrast(long ditherPtr);
-
- public float getContrast() {
- return getDitherContrast(ptr);
- }
-
- public static class AntiAliasing extends CacaObject {
- public AntiAliasing(String code, String desc) {
- super(code, desc);
- }
-
- public static AntiAliasing forCode(Dither dither, String code) {
- for (AntiAliasing aa : dither.getAntiAliasingList()) {
- if (aa.code.equals(code)) {
- return aa;
- }
- }
- return null;
- }
- }
-
- private static native String[] getDitherAntiAliasingList(long ditherPtr);
-
- public AntiAliasing[] getAntiAliasingList() {
- String[] tmp = getDitherAntiAliasingList(ptr);
- AntiAliasing[] aas;
- aas = new AntiAliasing[tmp.length / 2];
- for (int i = 0; 2*i < tmp.length; i++) {
- aas[i] = new AntiAliasing(tmp[2*i], tmp[2*i+1]);
- }
- return aas;
- }
-
- private static native void setDitherAntiAliasing(long ditherPtr, String antiAliasing);
-
- public void setAntiAliasing(AntiAliasing antiAliasing) {
- setDitherAntiAliasing(ptr, antiAliasing.code);
- }
-
- private static native String getDitherAntiAliasing(long ditherPtr);
-
- public AntiAliasing getAntiAliasing() {
- return AntiAliasing.forCode(this, getDitherAntiAliasing(ptr));
- }
-
- public static class Color extends CacaObject {
- public Color(String code, String desc) {
- super(code, desc);
- }
- public static Color forCode(Dither dither, String code) {
- for (Color color : dither.getColorList()) {
- if (color.code.equals(code)) {
- return color;
- }
- }
- return null;
- }
- }
-
- private static native String[] getDitherColorList(long ditherPtr);
-
- public Color[] getColorList() {
- String[] tmp = getDitherColorList(ptr);
- Color[] colors = new Color[tmp.length / 2];
- for (int i = 0; 2*i < tmp.length; i++) {
- colors[i] = new Color(tmp[2*i], tmp[2*i+1]);
- }
- return colors;
- }
-
- private static native void setDitherColor(long ditherPtr, String color);
-
- public void setColor(Color color) {
- setDitherColor(ptr, color.code);
- }
-
- private static native String getDitherColor(long ditherPtr);
-
- public Color getColor() {
- return Color.forCode(this, getDitherColor(ptr));
- }
-
- public static class Charset extends CacaObject {
- public Charset(String code, String desc) {
- super(code, desc);
- }
- public static Charset forCode(Dither dither, String code) {
- for (Charset charset : dither.getCharsetList()) {
- if (charset.code.equals(code)) {
- return charset;
- }
- }
- return null;
- }
- }
-
- private static native String[] getDitherCharsetList(long charsetPtr);
-
- public Charset[] getCharsetList() {
- String[] tmp = getDitherCharsetList(ptr);
- Charset[] charsets = new Charset[tmp.length / 2];
- for (int i = 0; 2*i < tmp.length; i++) {
- charsets[i] = new Charset(tmp[2*i], tmp[2*i+1]);
- }
- return charsets;
- }
-
- private static native void setDitherCharset(long ditherPtr, String charset);
-
- public void setCharset(Charset charset) {
- setDitherCharset(ptr, charset.code);
- }
-
- private static native String getDitherCharset(long ditherPtr);
-
- public Charset getCharset() {
- return Charset.forCode(this, getDitherCharset(ptr));
- }
-
- public static class Algorithm extends CacaObject {
- public Algorithm(String code, String desc) {
- super(code, desc);
- }
- public static Algorithm forCode(Dither dither, String code) {
- for (Algorithm algorithm : dither.getAlgorithmList()) {
- if (algorithm.code.equals(code)) {
- return algorithm;
- }
- }
- return null;
- }
- }
-
- private static native String[] getDitherAlgorithmList(long ditherPtr);
-
- public Algorithm[] getAlgorithmList() {
- String[] tmp = getDitherAlgorithmList(ptr);
- Algorithm[] result = new Algorithm[tmp.length / 2];
- for (int i = 0; 2*i < tmp.length; i++) {
- result[i] = new Algorithm(tmp[2*i], tmp[2*i+1]);
- }
- return result;
- }
-
- private static native void setDitherAlgorithm(long ditherPtr, String algorithm);
-
- public void setAlgorithm(Algorithm algorithm) {
- setDitherAlgorithm(ptr, algorithm.code);
- }
-
- private static native String getDitherAlgorithm(long ditherPtr);
-
- public Algorithm getAlgorithm() {
- return Algorithm.forCode(this, getDitherAlgorithm(ptr));
- }
-
- private static native void freeDither(long ditherPtr);
-
- @Override
- public void finalize() throws Throwable {
- freeDither(ptr);
- super.finalize();
- }
-
- }
|