diff options
author | Kenneth Russel <[email protected]> | 2009-06-15 23:05:16 +0000 |
---|---|---|
committer | Kenneth Russel <[email protected]> | 2009-06-15 23:05:16 +0000 |
commit | 935d2596c13371bb745d921dbcb9f05b0c11a010 (patch) | |
tree | 7fcc310618ae5a90edc734dc821e75afc0f080aa /src/demos/texture | |
parent | e2332d2f2908e68f1e77454c73f329f8ff2b400d (diff) |
Deleted obsolete source code in preparation for copying JOGL_2_SANDBOX
on to trunk
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@351 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
Diffstat (limited to 'src/demos/texture')
-rwxr-xr-x | src/demos/texture/TestSubImage.java | 303 | ||||
-rwxr-xr-x | src/demos/texture/TestTexture.java | 204 | ||||
-rwxr-xr-x | src/demos/texture/TextureConvert.java | 94 |
3 files changed, 0 insertions, 601 deletions
diff --git a/src/demos/texture/TestSubImage.java b/src/demos/texture/TestSubImage.java deleted file mode 100755 index b4e395e..0000000 --- a/src/demos/texture/TestSubImage.java +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution 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 Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use - * in the design, construction, operation or maintenance of any nuclear - * facility. - * - * Sun gratefully acknowledges that this software was originally authored - * and developed by Kenneth Bradley Russell and Christopher John Kline. - */ - -package demos.texture; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.GradientPaint; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.event.*; -import java.awt.image.*; -import javax.swing.*; -import java.util.*; - -import javax.media.opengl.*; -import javax.media.opengl.glu.*; -import com.sun.opengl.util.texture.*; - -/** Demonstrates and tests updates of sub-rectangles of a Texture - generated from a BufferedImage. Draws a cursor in texel space - around the cursor using Java 2D's XOR mode and pushes those - updates to an underlying OpenGL texture using - Texture.updateSubImage(). */ - -public class TestSubImage { - private boolean haveForcedImageType; - private int forcedImageType; - private List imageTypeMenuItems = new ArrayList(); - private GLU glu = new GLU(); - private GLCanvas mainCanvas; - private Rectangle curRect; - private Rectangle lastRect; - private TextureData textureData; - private Texture texture; - private BufferedImage baseImage; - private BufferedImage convertedImage; - private int CURSOR_SIZE = 10; - - class Listener implements GLEventListener { - public void init(GLAutoDrawable drawable) {} - - public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { - GL gl = drawable.getGL(); - gl.glMatrixMode(GL.GL_PROJECTION); - gl.glLoadIdentity(); - glu.gluOrtho2D(0, 1, 0, 1); - gl.glMatrixMode(GL.GL_MODELVIEW); - gl.glLoadIdentity(); - } - - public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - - if (convertedImage == null) { - // Get rid of any previously allocated texture - if (texture != null) { - texture.dispose(); - texture = null; - } - - // Convert the base image - // Note that for simplicity in handling of the XOR cursor, we - // always make a copy of the base image - int imageType = BufferedImage.TYPE_INT_RGB; - if (haveForcedImageType) { - imageType = forcedImageType; - } - convertedImage = new BufferedImage(baseImage.getWidth(), - baseImage.getHeight(), - imageType); - Graphics2D g = convertedImage.createGraphics(); - g.setComposite(AlphaComposite.Src); - g.drawImage(baseImage, 0, 0, null); - g.dispose(); - - // Create a TextureData and Texture from it - textureData = TextureIO.newTextureData(convertedImage, false); - texture = TextureIO.newTexture(textureData); - } - - Graphics2D g = convertedImage.createGraphics(); - g.setColor(Color.RED); - g.setXORMode(Color.WHITE); - if (lastRect != null) { - // Paint with XOR in this area - g.fillRect(lastRect.x, lastRect.y, lastRect.width, lastRect.height); - } - if (curRect != null) { - // Paint with XOR in this area - g.fillRect(curRect.x, curRect.y, curRect.width, curRect.height); - } - // Compute the union of these rectangles, if any - Rectangle union = null; - if (lastRect != null) { - union = new Rectangle(lastRect); - if (curRect != null) { - union.add(curRect); - } - } else if (curRect != null) { - union = curRect; - } - - // Move these down - lastRect = curRect; - curRect = null; - - // Update the affected area of the texture (if there is one) - // Note: this one API call is basically what this demo is illustrating - if (union != null) { - int yOrigin = union.y; - - // Note: if the Y origin of the texture data didn't match Java - // 2D's Y origin, we would need to correct the Y coordinate - // passed down here. This code path is not taken in the - // current Texture implementation. - if (!texture.getMustFlipVertically()) { - yOrigin = texture.getHeight() - yOrigin; - } - - texture.updateSubImage(textureData, 0, - union.x, yOrigin, - union.x, yOrigin, - union.width, union.height); - } - - // Now draw one quad with the texture - texture.enable(); - texture.bind(); - gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE); - TextureCoords coords = texture.getImageTexCoords(); - gl.glBegin(GL.GL_QUADS); - gl.glTexCoord2f(coords.left(), coords.bottom()); - gl.glVertex3f(0, 0, 0); - gl.glTexCoord2f(coords.right(), coords.bottom()); - gl.glVertex3f(1, 0, 0); - gl.glTexCoord2f(coords.right(), coords.top()); - gl.glVertex3f(1, 1, 0); - gl.glTexCoord2f(coords.left(), coords.top()); - gl.glVertex3f(0, 1, 0); - gl.glEnd(); - texture.disable(); - } - - public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {} - } - - private JMenuItem newItem(final int imageType, String imageTypeName) { - final JCheckBoxMenuItem item = new JCheckBoxMenuItem(imageTypeName); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (item.isSelected()) { - // Disable all other checkbox menu items - for (Iterator iter = imageTypeMenuItems.iterator(); iter.hasNext(); ) { - JCheckBoxMenuItem cb = (JCheckBoxMenuItem) iter.next(); - if (cb != item) - cb.setSelected(false); - } - - haveForcedImageType = true; - forcedImageType = imageType; - } else { - // No longer have a forced image type - haveForcedImageType = false; - } - - // Get rid of the previously created converted image, if any - if (convertedImage != null) { - convertedImage.flush(); - convertedImage = null; - } - - lastRect = null; - mainCanvas.repaint(); - } - }); - imageTypeMenuItems.add(item); - return item; - } - - private void run() { - JPopupMenu.setDefaultLightWeightPopupEnabled(false); - - // Create top-level window and menus - JFrame frame = new JFrame("Texture Sub Image Test"); - JMenuBar menuBar = new JMenuBar(); - JMenu menu = new JMenu("File"); - menu.setMnemonic(KeyEvent.VK_F); - JMenuItem item = new JMenuItem("Quit"); - item.setMnemonic(KeyEvent.VK_Q); - item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK)); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - System.exit(0); - } - }); - menu.add(item); - - menuBar.add(menu); - - menu = new JMenu("Tools"); - menu.setMnemonic(KeyEvent.VK_T); - JMenu submenu = new JMenu("Force BufferedImage Type"); - submenu.setMnemonic(KeyEvent.VK_F); - submenu.add(newItem(BufferedImage.TYPE_3BYTE_BGR, "TYPE_3BYTE_BGR")); - submenu.add(newItem(BufferedImage.TYPE_4BYTE_ABGR, "TYPE_4BYTE_ABGR")); - submenu.add(newItem(BufferedImage.TYPE_4BYTE_ABGR_PRE, "TYPE_4BYTE_ABGR_PRE")); - submenu.add(newItem(BufferedImage.TYPE_BYTE_BINARY, "TYPE_BYTE_BINARY")); - submenu.add(newItem(BufferedImage.TYPE_BYTE_GRAY, "TYPE_BYTE_GRAY")); - submenu.add(newItem(BufferedImage.TYPE_BYTE_INDEXED, "TYPE_BYTE_INDEXED")); - submenu.add(newItem(BufferedImage.TYPE_INT_ARGB, "TYPE_INT_ARGB")); - submenu.add(newItem(BufferedImage.TYPE_INT_ARGB_PRE, "TYPE_INT_ARGB_PRE")); - submenu.add(newItem(BufferedImage.TYPE_INT_BGR, "TYPE_INT_BGR")); - submenu.add(newItem(BufferedImage.TYPE_INT_RGB, "TYPE_INT_RGB")); - submenu.add(newItem(BufferedImage.TYPE_USHORT_555_RGB, "TYPE_USHORT_555_RGB")); - submenu.add(newItem(BufferedImage.TYPE_USHORT_565_RGB, "TYPE_USHORT_565_RGB")); - submenu.add(newItem(BufferedImage.TYPE_USHORT_GRAY, "TYPE_USHORT_GRAY")); - menu.add(submenu); - - menuBar.add(menu); - - frame.setJMenuBar(menuBar); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - // Set up the base image we'll use to draw with - baseImage = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); - Graphics2D g = baseImage.createGraphics(); - g.setPaint(new GradientPaint(0, 0, Color.CYAN, - baseImage.getWidth(), baseImage.getHeight(), Color.BLUE)); - g.fillRect(0, 0, baseImage.getWidth(), baseImage.getHeight()); - g.dispose(); - - // Now set up the main GLCanvas - mainCanvas = new GLCanvas(); - mainCanvas.addGLEventListener(new Listener()); - mainCanvas.addMouseListener(new MouseAdapter() { - public void mouseExited(MouseEvent e) { - curRect = null; - mainCanvas.repaint(); - } - }); - mainCanvas.addMouseMotionListener(new MouseMotionAdapter() { - public void mouseMoved(MouseEvent e) { - // Scale x and y into coordinate system of texture - int x = (int) (e.getX() * (float) baseImage.getWidth() / (float) e.getComponent().getWidth()); - int y = (int) (e.getY() * (float) baseImage.getHeight() / (float) e.getComponent().getHeight()); - // Paint cursor on texture around this point - int minx = Math.max(0, x - CURSOR_SIZE); - int maxx = Math.min(baseImage.getWidth(), x + CURSOR_SIZE); - int miny = Math.max(0, y - CURSOR_SIZE); - int maxy = Math.min(baseImage.getHeight(), y + CURSOR_SIZE); - curRect = new Rectangle(minx, miny, maxx - minx, maxy - miny); - mainCanvas.repaint(); - } - }); - - frame.getContentPane().add(mainCanvas); - frame.setSize(512, 512); - frame.setVisible(true); - } - - public static void main(String[] args) { - new TestSubImage().run(); - } -} diff --git a/src/demos/texture/TestTexture.java b/src/demos/texture/TestTexture.java deleted file mode 100755 index ff0ff14..0000000 --- a/src/demos/texture/TestTexture.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2005 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution 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 Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use - * in the design, construction, operation or maintenance of any nuclear - * facility. - * - * Sun gratefully acknowledges that this software was originally authored - * and developed by Kenneth Bradley Russell and Christopher John Kline. - */ - -package demos.texture; - -import java.awt.geom.*; -import java.awt.event.*; -import java.io.*; -import javax.swing.*; - -import javax.media.opengl.*; -import javax.media.opengl.glu.*; -import com.sun.opengl.util.texture.*; - -/** Demonstrates simple use of the TextureIO texture loader. */ - -public class TestTexture implements GLEventListener { - public static void main(String[] args) { - new TestTexture().run(args); - } - - private File curDir; - - private void run(String[] args) { - JPopupMenu.setDefaultLightWeightPopupEnabled(false); - - JFrame frame = new JFrame("Texture Loader Demo"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - final GLCanvas canvas = new GLCanvas(); - - JMenuBar menuBar = new JMenuBar(); - JMenu menu = new JMenu("File"); - JMenuItem item = new JMenuItem("Open texture..."); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - JFileChooser chooser = new JFileChooser(curDir); - int res = chooser.showOpenDialog(null); - if (res == JFileChooser.APPROVE_OPTION) { - File chosen = chooser.getSelectedFile(); - if (chosen != null) { - curDir = chosen.getParentFile(); - setTextureFile(chosen); - canvas.repaint(); - } - } - } - }); - item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); - menu.add(item); - - item = new JMenuItem("Flush texture"); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - flushTexture(); - canvas.repaint(); - } - }); - item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK)); - menu.add(item); - - item = new JMenuItem("Exit"); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - System.exit(0); - } - }); - item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK)); - menu.add(item); - - menuBar.add(menu); - - canvas.addGLEventListener(this); - frame.getContentPane().add(canvas); - frame.setJMenuBar(menuBar); - frame.setSize(800, 600); - frame.show(); - } - - private boolean newTexture; - private boolean flushTexture; - private File file; - private Texture texture; - private GLU glu = new GLU(); - - public void setTextureFile(File file) { - this.file = file; - newTexture = true; - } - - public void flushTexture() { - flushTexture = true; - } - - public void init(GLAutoDrawable drawable) { - drawable.setGL(new DebugGL(drawable.getGL())); - - GL gl = drawable.getGL(); - gl.glClearColor(0, 0, 0, 0); - gl.glEnable(GL.GL_DEPTH_TEST); - } - - public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { - GL gl = drawable.getGL(); - gl.glMatrixMode(GL.GL_PROJECTION); - gl.glLoadIdentity(); - glu.gluOrtho2D(0, 1, 0, 1); - gl.glMatrixMode(GL.GL_MODELVIEW); - gl.glLoadIdentity(); - } - - public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - - if (flushTexture) { - flushTexture = false; - if (texture != null) { - texture.dispose(); - texture = null; - } - } - - if (newTexture) { - newTexture = false; - - if (texture != null) { - texture.dispose(); - texture = null; - } - - try { - System.err.println("Loading texture..."); - texture = TextureIO.newTexture(file, true); - System.err.println("Texture estimated memory size = " + texture.getEstimatedMemorySize()); - } catch (IOException e) { - e.printStackTrace(); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - e.printStackTrace(new PrintStream(bos)); - JOptionPane.showMessageDialog(null, - bos.toString(), - "Error loading texture", - JOptionPane.ERROR_MESSAGE); - return; - } - } - - if (texture != null) { - texture.enable(); - texture.bind(); - gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE); - TextureCoords coords = texture.getImageTexCoords(); - - gl.glBegin(GL.GL_QUADS); - gl.glTexCoord2f(coords.left(), coords.bottom()); - gl.glVertex3f(0, 0, 0); - gl.glTexCoord2f(coords.right(), coords.bottom()); - gl.glVertex3f(1, 0, 0); - gl.glTexCoord2f(coords.right(), coords.top()); - gl.glVertex3f(1, 1, 0); - gl.glTexCoord2f(coords.left(), coords.top()); - gl.glVertex3f(0, 1, 0); - gl.glEnd(); - texture.disable(); - } - } - - public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {} -} diff --git a/src/demos/texture/TextureConvert.java b/src/demos/texture/TextureConvert.java deleted file mode 100755 index 728aa9c..0000000 --- a/src/demos/texture/TextureConvert.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2005 Sun Microsystems, Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution 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 Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use - * in the design, construction, operation or maintenance of any nuclear - * facility. - * - * Sun gratefully acknowledges that this software was originally authored - * and developed by Kenneth Bradley Russell and Christopher John Kline. - */ - -package demos.texture; - -import java.io.*; - -import javax.media.opengl.*; -import javax.media.opengl.glu.*; -import com.sun.opengl.util.*; -import com.sun.opengl.util.texture.*; - -/** Demonstrates how the TextureIO subsystem may be used to convert - textures between multiple file formats, including texture - compression where available. */ - -public class TextureConvert { - public static void main(String[] args) throws IOException { - if (args.length != 2) { - System.out.println("Usage: java demos.texture.TextureConvert [input file] [output file]"); - System.out.println("Converts texture from input file format to output file format."); - System.out.println("If output file format is DDS, compresses texture with DXT3 compression"); - System.out.println("if available."); - System.exit(1); - } - - String inputFile = args[0]; - String outputFile = args[1]; - - // Make a pbuffer to get an offscreen context - if (!GLDrawableFactory.getFactory().canCreateGLPbuffer()) { - System.out.println("Pbuffer support not available (required to run this demo)"); - System.exit(1); - } - GLCapabilities caps = new GLCapabilities(); - caps.setDoubleBuffered(false); - GLPbuffer pbuffer = GLDrawableFactory.getFactory().createGLPbuffer(caps, null, 2, 2, null); - pbuffer.getContext().makeCurrent(); - GL gl = pbuffer.getGL(); - - boolean attemptCompression = false; - if (TextureIO.DDS.equals(FileUtil.getFileSuffix(outputFile))) { - if (gl.isExtensionAvailable("GL_EXT_texture_compression_s3tc") || - gl.isExtensionAvailable("GL_NV_texture_compression_vtc")) { - attemptCompression = true; - } - } - - TextureData inputData = TextureIO.newTextureData(new File(inputFile), false, null); - if (attemptCompression && !inputData.isDataCompressed()) { - inputData.setInternalFormat(GL.GL_COMPRESSED_RGBA_S3TC_DXT3_EXT); - } - Texture tex = TextureIO.newTexture(inputData); - - // Now read it back and save to the output file - TextureIO.write(tex, new File(outputFile)); - } -} |