mirror of
https://github.com/shadowfacts/lwjgl2-arm64.git
synced 2026-04-05 06:25:46 +00:00
First pass at ILU portion of DevIL. Only basic testing is one. No dynamic loading yet. 3 methods not implemented yet.
This commit is contained in:
parent
3a320a7cbf
commit
af70a0ef76
13 changed files with 756 additions and 8 deletions
179
src/java/org/lwjgl/devil/ILU.java
Normal file
179
src/java/org/lwjgl/devil/ILU.java
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 LWJGL Project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of 'LWJGL' nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.lwjgl.devil;
|
||||
|
||||
import java.nio.IntBuffer;
|
||||
|
||||
import org.lwjgl.BufferChecks;
|
||||
import org.lwjgl.LWJGLException;
|
||||
|
||||
/**
|
||||
* @author Mark Bernard
|
||||
* date: 3-Jan-2005
|
||||
*/
|
||||
public class ILU {
|
||||
/** Have we been created? */
|
||||
protected static boolean created;
|
||||
|
||||
public static final int ILU_VERSION_1_6_7 = 1;
|
||||
public static final int ILU_VERSION = 167;
|
||||
|
||||
public static final int ILU_FILTER = 0x2600;
|
||||
public static final int ILU_NEAREST = 0x2601;
|
||||
public static final int ILU_LINEAR = 0x2602;
|
||||
public static final int ILU_BILINEAR = 0x2603;
|
||||
public static final int ILU_SCALE_BOX = 0x2604;
|
||||
public static final int ILU_SCALE_TRIANGLE = 0x2605;
|
||||
public static final int ILU_SCALE_BELL = 0x2606;
|
||||
public static final int ILU_SCALE_BSPLINE = 0x2607;
|
||||
public static final int ILU_SCALE_LANCZOS3 = 0x2608;
|
||||
public static final int ILU_SCALE_MITCHELL = 0x2609;
|
||||
|
||||
// Error types
|
||||
public static final int ILU_INVALID_ENUM = 0x0501;
|
||||
public static final int ILU_OUT_OF_MEMORY = 0x0502;
|
||||
public static final int ILU_INTERNAL_ERROR = 0x0504;
|
||||
public static final int ILU_INVALID_VALUE = 0x0505;
|
||||
public static final int ILU_ILLEGAL_OPERATION = 0x0506;
|
||||
public static final int ILU_INVALID_PARAM = 0x0509;
|
||||
|
||||
// Values
|
||||
public static final int ILU_PLACEMENT = 0x0700;
|
||||
public static final int ILU_LOWER_LEFT = 0x0701;
|
||||
public static final int ILU_LOWER_RIGHT = 0x0702;
|
||||
public static final int ILU_UPPER_LEFT = 0x0703;
|
||||
public static final int ILU_UPPER_RIGHT = 0x0704;
|
||||
public static final int ILU_CENTER = 0x0705;
|
||||
public static final int ILU_CONVOLUTION_MATRIX = 0x0710;
|
||||
// public static final int ILU_VERSION_NUM = IL_VERSION_NUM;
|
||||
// public static final int ILU_VENDOR = IL_VENDOR;
|
||||
|
||||
static {
|
||||
System.loadLibrary("ILU");
|
||||
System.loadLibrary("lwjgl-devil");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if DevIL has been created
|
||||
*/
|
||||
public static boolean isCreated() {
|
||||
return created;
|
||||
}
|
||||
|
||||
public static native void initNativeStubs() throws LWJGLException;
|
||||
|
||||
public static native boolean iluAlienify();
|
||||
public static native boolean iluBlurAvg(int iter);
|
||||
public static native boolean iluBlurGaussian(int iter);
|
||||
public static native boolean iluBuildMipmaps();
|
||||
public static native int iluColoursUsed();
|
||||
public static native boolean iluCompareImage(int comp);
|
||||
public static native boolean iluContrast(float contrast);
|
||||
public static native boolean iluCrop(int xOff, int yOff, int zOff, int width, int height, int depth);
|
||||
public static native void iluDeleteImage(int id);
|
||||
public static native boolean iluEdgeDetectE();
|
||||
public static native boolean iluEdgeDetectP();
|
||||
public static native boolean iluEdgeDetectS();
|
||||
public static native boolean iluEmboss();
|
||||
public static native boolean iluEnlargeCanvas(int width, int height, int depth);
|
||||
public static native boolean iluEnlargeImage(float xDim, float yDim, float zDim);
|
||||
public static native boolean iluEqualize();
|
||||
public static native String iluErrorString(int error);
|
||||
public static native boolean iluFlipImage();
|
||||
public static native boolean iluGammaCorrect(float gamma);
|
||||
public static native int iluGenImage();
|
||||
// TODO result placed in a pointer
|
||||
// TODO implement
|
||||
// public static native void iluGetImageInfo(ILinfo info[]);
|
||||
public static native int iluGetInteger(int mode);
|
||||
public static void iluGetIntegerv(int mode, IntBuffer param) {
|
||||
BufferChecks.checkDirect(param);
|
||||
niluGetIntegerv(mode, param, param.position());
|
||||
}
|
||||
public static native void niluGetIntegerv(int mode, IntBuffer param, int param_offset);
|
||||
public static native String iluGetString(int stringName);
|
||||
public static native void iluImageParameter(int pName, int param);
|
||||
public static native void iluInit();
|
||||
public static native boolean iluInvertAlpha();
|
||||
public static native int iluLoadImage(String fileName);
|
||||
public static native boolean iluMirror();
|
||||
public static native boolean iluNegative();
|
||||
public static native boolean iluNoisify(float tolerance);
|
||||
public static native boolean iluPixelize(int pixSize);
|
||||
// TODO result placed in a pointer
|
||||
// TODO implement
|
||||
// public static native void iluRegionfv(ILpointf points[], int n);
|
||||
// TODO result placed in a pointer
|
||||
// TODO implement
|
||||
// public static native void iluRegioniv(ILpointi points[], int n);
|
||||
public static native boolean iluReplaceColour(byte red, byte green, byte blue, float tolerance);
|
||||
public static native boolean iluRotate(float angle);
|
||||
|
||||
// TODO Not implemented in the native lib
|
||||
// public static native boolean iluRotate3D(float x, float y, float z, float Angle);
|
||||
public static native boolean iluSaturate1f(float saturation);
|
||||
public static native boolean iluSaturate4f(float r, float g, float b, float saturation);
|
||||
public static native boolean iluScale(int width, int height, int depth);
|
||||
public static native boolean iluScaleColours(float r, float g, float b);
|
||||
public static native boolean iluSharpen(float factor, int iter);
|
||||
public static native boolean iluSwapColours();
|
||||
public static native boolean iluWave(float angle);
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static void create() throws LWJGLException {
|
||||
if (!created) {
|
||||
nCreate();
|
||||
ILU.initNativeStubs();
|
||||
ILU.iluInit();
|
||||
created = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static native void nCreate();
|
||||
|
||||
//DevIL lib allows both spellings of colour.
|
||||
//Will do the same this way.
|
||||
public static void iluColorsUsed() {
|
||||
iluColoursUsed();
|
||||
}
|
||||
public static void iluSwapColors() {
|
||||
iluSwapColours();
|
||||
}
|
||||
public static void iluReplaceColor(byte red, byte green, byte blue, float tolerance) {
|
||||
iluReplaceColour(red, green, blue, tolerance);
|
||||
}
|
||||
public static void iluScaleColors(float r, float g, float b) {
|
||||
iluScaleColours(r, g, b);
|
||||
}
|
||||
}
|
||||
56
src/java/org/lwjgl/devil/ILinfo.java
Normal file
56
src/java/org/lwjgl/devil/ILinfo.java
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 LWJGL Project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of 'LWJGL' nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.lwjgl.devil;
|
||||
|
||||
/**
|
||||
* @author Mark Bernard
|
||||
* date: 3-Jan-2005
|
||||
*/
|
||||
public class ILinfo {
|
||||
public int Id; // the image's id
|
||||
public byte Data[]; // the image's data
|
||||
public int Width; // the image's width
|
||||
public int Height; // the image's height
|
||||
public int Depth; // the image's depth
|
||||
public byte Bpp; // bytes per pixel (not bits) of the image
|
||||
public int SizeOfData; // the total size of the data (in bytes)
|
||||
public int Format; // image format (in IL enum style)
|
||||
public int Type; // image type (in IL enum style)
|
||||
public int Origin; // origin of the image
|
||||
public byte Palette[]; // the image's palette
|
||||
public int PalType; // palette type
|
||||
public int PalSize; // palette size
|
||||
public int CubeFlags; // flags for what cube map sides are present
|
||||
public int NumNext; // number of images following
|
||||
public int NumMips; // number of mipmaps
|
||||
public int NumLayers; // number of layers
|
||||
}
|
||||
41
src/java/org/lwjgl/devil/ILpointf.java
Normal file
41
src/java/org/lwjgl/devil/ILpointf.java
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 LWJGL Project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of 'LWJGL' nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.lwjgl.devil;
|
||||
|
||||
/**
|
||||
* @author Mark Bernard
|
||||
* date: 3-Jan-2005
|
||||
*/
|
||||
public class ILpointf {
|
||||
public float x;
|
||||
public float y;
|
||||
}
|
||||
41
src/java/org/lwjgl/devil/ILpointi.java
Normal file
41
src/java/org/lwjgl/devil/ILpointi.java
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright (c) 2002-2004 LWJGL Project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* * Neither the name of 'LWJGL' nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.lwjgl.devil;
|
||||
|
||||
/**
|
||||
* @author Mark Bernard
|
||||
* date: 3-Jan-2005
|
||||
*/
|
||||
public class ILpointi {
|
||||
public int x;
|
||||
public int y;
|
||||
}
|
||||
|
|
@ -33,6 +33,7 @@ package org.lwjgl.test.devil;
|
|||
|
||||
import org.lwjgl.devil.*;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.nio.IntBuffer;
|
||||
|
|
@ -47,31 +48,35 @@ public class BasicTest {
|
|||
public static void main(String args[]) {
|
||||
try {
|
||||
IL.create();
|
||||
ILU.create();
|
||||
}
|
||||
catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
int err = IL.ilGetError();
|
||||
String err = ILU.iluErrorString(IL.ilGetError());
|
||||
System.out.println("err = " + err + " IL_NO_ERROR = " + IL.IL_NO_ERROR);
|
||||
System.out.println("ilGenImages");
|
||||
IntBuffer im = ByteBuffer.allocateDirect(4).order(ByteOrder.nativeOrder()).asIntBuffer();
|
||||
IL.ilGenImages(1, im);
|
||||
System.out.println("ilBindImage");
|
||||
IL.ilBindImage(im.get(0));
|
||||
err = IL.ilGetError();
|
||||
IL.ilEnable(IL.IL_ORIGIN_SET);
|
||||
IL.ilOriginFunc(IL.IL_ORIGIN_UPPER_LEFT);
|
||||
err = ILU.iluErrorString(IL.ilGetError());
|
||||
System.out.println("err = " + err + " IL_NO_ERROR = " + IL.IL_NO_ERROR);
|
||||
String imageFile = "F:/Apps/Java/eclipse/workspace/LWJGL/res/ILtest.tga";
|
||||
System.out.println("ilLoadImage " + imageFile);
|
||||
System.out.println("load lump = " + IL.ilLoadFromURL(BasicTest.class.getResource("/res/ILtest.tga")));
|
||||
err = IL.ilGetError();
|
||||
URL imageURL = BasicTest.class.getResource("/res/ILtest.tga");
|
||||
System.out.println("ilLoadFromURL " + imageURL);
|
||||
System.out.println("load lump = " + IL.ilLoadFromURL(imageURL));
|
||||
err = ILU.iluErrorString(IL.ilGetError());
|
||||
System.out.println("err = " + err + " IL_NO_ERROR = " + IL.IL_NO_ERROR);
|
||||
int newIm = IL.ilCloneCurImage();
|
||||
IL.ilCopyImage(im.get(0));
|
||||
IL.ilBindImage(newIm);
|
||||
ByteBuffer buf = IL.ilGetData();
|
||||
System.out.println("ilGetData");
|
||||
err = IL.ilGetError();
|
||||
err = ILU.iluErrorString(IL.ilGetError());
|
||||
System.out.println("err = " + err + " IL_NO_ERROR = " + IL.IL_NO_ERROR);
|
||||
int limit = buf.limit();
|
||||
System.out.println("limit = " + limit);
|
||||
|
|
@ -81,7 +86,7 @@ public class BasicTest {
|
|||
|
||||
System.out.println("current image = " + im.get(0) + " IL.ilGetInteger(IL.IL_ACTIVE_IMAGE) = " + IL.ilGetInteger(IL.IL_ACTIVE_IMAGE));
|
||||
System.out.println("Version: " + IL.ilGetInteger(IL.IL_VERSION_NUM));
|
||||
err = IL.ilGetError();
|
||||
err = ILU.iluErrorString(IL.ilGetError());
|
||||
System.out.println("err = " + err + " IL_NO_ERROR = " + IL.IL_NO_ERROR);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue