aboutsummaryrefslogtreecommitdiffstats
path: root/demos/MiscDemos/GLImageViewerCanvas.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
committerSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
commit880653d31a8f1ff8384fdbc75b84934bceecfdb8 (patch)
treebdafb71416f176d2a4b73bf716c9dc3f13685a8b /demos/MiscDemos/GLImageViewerCanvas.java
Initial revision
Diffstat (limited to 'demos/MiscDemos/GLImageViewerCanvas.java')
-rwxr-xr-xdemos/MiscDemos/GLImageViewerCanvas.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/demos/MiscDemos/GLImageViewerCanvas.java b/demos/MiscDemos/GLImageViewerCanvas.java
new file mode 100755
index 0000000..320242c
--- /dev/null
+++ b/demos/MiscDemos/GLImageViewerCanvas.java
@@ -0,0 +1,126 @@
+import gl4java.*;
+import gl4java.awt.*;
+import gl4java.utils.textures.*;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.net.*;
+
+public class GLImageViewerCanvas extends Frame
+ implements ActionListener, ItemListener
+{
+ GLImageCanvas glImageCanvas = null;
+
+ private Choice fileTypeChoice = null;
+ private Button loadButton = null;
+ private Button saveButton = null;
+ private Button normalButton = null;
+ private Checkbox aspectCheck = null;
+
+ public GLImageViewerCanvas(String title)
+ {
+ super(title);
+ setSize(500, 300);
+ Dimension d = getSize();
+ setLayout(new BorderLayout());
+
+ addWindowListener( new WindowAdapter()
+ {
+ public void windowClosed(WindowEvent e)
+ {
+ System.exit(0);
+ }
+ public void windowClosing(WindowEvent e)
+ {
+ windowClosed(e);
+ }
+ }
+ );
+
+ Panel filePanel = new Panel();
+ filePanel.setLayout(new FlowLayout(FlowLayout.CENTER));
+
+ fileTypeChoice = new Choice();
+ fileTypeChoice.add("any");
+ fileTypeChoice.add("tga");
+ fileTypeChoice.add("png");
+ fileTypeChoice.add("ppm");
+ filePanel.add(fileTypeChoice);
+
+ loadButton = new Button("load..");
+ loadButton.addActionListener(this);
+ filePanel.add(loadButton);
+
+ saveButton = new Button("save..");
+ saveButton.addActionListener(this);
+ filePanel.add(saveButton);
+
+ normalButton = new Button("normal");
+ normalButton.addActionListener(this);
+ filePanel.add(normalButton);
+
+ aspectCheck = new Checkbox("aspect", true);
+ aspectCheck.addItemListener(this);
+ filePanel.add(aspectCheck);
+ add("North", filePanel);
+
+ glImageCanvas = new GLImageCanvas(d.width, d.height);
+ glImageCanvas.setName("GLImageCanvas");
+ glImageCanvas.setKeepAspectRatio(aspectCheck.getState());
+ add("Center", glImageCanvas);
+
+ pack();
+ setVisible(true);
+ }
+
+ public void actionPerformed(ActionEvent e)
+ {
+ Object src = e.getSource();
+ if(src.equals(loadButton))
+ {
+ FileDialog fd = new FileDialog(this,"Bitmap Load Menu",
+ FileDialog.LOAD);
+ fd.show();
+ String fname = fd.getDirectory() + fd.getFile() ;
+ fname = fname.replace('\\','/');
+ fname = fname.trim();
+
+ setTitle(fname);
+ glImageCanvas.loadTexture(fname,
+ fileTypeChoice.getSelectedItem() );
+ repaint();
+ } else if(src.equals(saveButton))
+ {
+ FileDialog fd = new FileDialog(this,"TGA-Image Save Menu",
+ FileDialog.SAVE);
+ fd.show();
+ String fname = fd.getDirectory() + fd.getFile() ;
+ fname = fname.replace('\\','/');
+ fname = fname.trim();
+
+ setTitle(fname);
+ glImageCanvas.snapshot( new TGATextureGrabber(glImageCanvas.gl),
+ fname);
+ repaint();
+ } else if(src.equals(normalButton))
+ {
+ glImageCanvas.setOriginalSize();
+ }
+ }
+
+ public void itemStateChanged(ItemEvent e)
+ {
+ if(aspectCheck.equals(e.getItemSelectable()))
+ {
+ glImageCanvas.setKeepAspectRatio(aspectCheck.getState());
+ }
+ }
+
+ public static void main( String args[] )
+ {
+ GLContext.gljNativeDebug = true;
+ GLContext.gljClassDebug = true;
+ GLImageViewerCanvas applet =
+ new GLImageViewerCanvas("GLImageViewerCanvas");
+ }
+}