diff options
author | Kenneth Russel <[email protected]> | 2006-01-09 02:37:44 +0000 |
---|---|---|
committer | Kenneth Russel <[email protected]> | 2006-01-09 02:37:44 +0000 |
commit | a30f6883a5a4bfb3bebd1e34697377ef56dd9241 (patch) | |
tree | c0f05c66462686b75e6fcaf179067b66f4f2267f /src/demos/util/DxTex.java | |
parent | 2e32df6eb0181d50f002e0dfe055572b60088428 (diff) |
Added output support to TGAImage, SGIImage and newly-renamed DDSImage
classes. Added support to TextureIO for writing textures back to disk
via new TextureWriter plug-in interface. Added TextureConvert demo
which shows how an application might convert between arbitrary file
formats using these APIs, including automatic compression to DXT3
format when available.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@164 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
Diffstat (limited to 'src/demos/util/DxTex.java')
-rw-r--r-- | src/demos/util/DxTex.java | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/demos/util/DxTex.java b/src/demos/util/DxTex.java index aecfe99..2fb65de 100644 --- a/src/demos/util/DxTex.java +++ b/src/demos/util/DxTex.java @@ -50,7 +50,7 @@ import javax.swing.filechooser.*; import com.sun.opengl.utils.*; /** Simplified clone of DxTex tool from the DirectX SDK, written in - Java using the DDSReader; tests fetching of texture data */ + Java using the DDSImage; tests fetching of texture data */ public class DxTex { private InternalFrameListener frameListener; @@ -201,9 +201,8 @@ public class DxTex { private void openFile(File file) { try { - DDSReader reader = new DDSReader(); - reader.loadFile(file.getAbsolutePath()); - showImage(file.getName(), reader, 0); + DDSImage image = DDSImage.read(file); + showImage(file.getName(), image, 0); } catch (IOException e) { showMessageDialog("Error while opening file:" + endl + exceptionToString(e), @@ -216,9 +215,9 @@ public class DxTex { // Image display // - private void showImage(String filename, DDSReader reader, int mipMapLevel) { + private void showImage(String filename, DDSImage image, int mipMapLevel) { try { - ImageFrame fr = new ImageFrame(filename, reader, mipMapLevel); + ImageFrame fr = new ImageFrame(filename, image, mipMapLevel); desktop.add(fr); fr.show(); } catch (Exception e) { @@ -231,16 +230,16 @@ public class DxTex { class ImageFrame extends JInternalFrame { private String filename; - private DDSReader reader; + private DDSImage image; private int mipMapLevel; private int curWidth; private int curHeight; private JLabel label; - ImageFrame(String filename, DDSReader reader, int mipMapLevel) { + ImageFrame(String filename, DDSImage image, int mipMapLevel) { super(); this.filename = filename; - this.reader = reader; + this.image = image; addInternalFrameListener(frameListener); label = new JLabel(); @@ -254,7 +253,7 @@ public class DxTex { } int getNumMipMaps() { - return reader.getNumMipMaps(); + return image.getNumMipMaps(); } void setMipMapLevel(int level) { @@ -265,13 +264,13 @@ public class DxTex { void close() { System.err.println("Closing files"); - reader.close(); + image.close(); } private void computeImage() { // Get image data - reader.getNumMipMaps(); - DDSReader.ImageInfo info = reader.getMipMap(mipMapLevel); + image.getNumMipMaps(); + DDSImage.ImageInfo info = image.getMipMap(mipMapLevel); int width = info.getWidth(); int height = info.getHeight(); curWidth = width; @@ -284,13 +283,13 @@ public class DxTex { WritableRaster dst = img.getRaster(); int skipSize; - if (reader.getPixelFormat() == DDSReader.D3DFMT_A8R8G8B8) { + if (image.getPixelFormat() == DDSImage.D3DFMT_A8R8G8B8) { skipSize = 4; - } else if (reader.getPixelFormat() == DDSReader.D3DFMT_R8G8B8) { + } else if (image.getPixelFormat() == DDSImage.D3DFMT_R8G8B8) { skipSize = 3; } else { - reader.close(); - throw new RuntimeException("Unsupported pixel format " + reader.getPixelFormat()); + image.close(); + throw new RuntimeException("Unsupported pixel format " + image.getPixelFormat()); } for (int y = 0; y < height; y++) { @@ -309,7 +308,7 @@ public class DxTex { private void resetTitle() { setTitle(filename + " (" + curWidth + "x" + curHeight + ", mipmap " + (1 + mipMapLevel) + " of " + - reader.getNumMipMaps() + ")"); + image.getNumMipMaps() + ")"); } } |