./opengl/test/java/de.oklischat.ogl.lwjgl.coil/src/de/oklischat/ogl/lwjgl/coil/Main.java

download original
package de.oklischat.ogl.lwjgl.coil;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import org.lwjgl.opengl.Display;

/**
 *
 * @author olaf
 */
public class Main {

    public Main() throws Exception {
        final Collection<Component> canvasses = new ArrayList<Component>();
        int nFrames = 3;
        for (int i = 0; i < nFrames; i++) {
            JFrame frame = new JFrame("Coil");
            JToolBar toolbar = new JToolBar();
            toolbar.setFloatable(false);
            JComboBox cb = new JComboBox(new Object[]{"foo","bar","baz","quux"});
            toolbar.add(cb);
            frame.add(cb, BorderLayout.NORTH);
            //ContextAttribs cattrs = new ContextAttribs().withDebug(true).with...;
            //GLEventHandler canvas = new GLEventHandler(cattrs);  // need to do this for OpenGL >= 3.0
            final CoilCanvas canvas = CoilCanvas.create();
            canvasses.add(canvas);
            frame.add(canvas, BorderLayout.CENTER);
            frame.setSize(800, 600);
            frame.setBackground(Color.black);
            frame.setVisible(true);
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    //anim.stop();
                    System.exit(0);
                }
            });
        }
        //final Animator anim = new Animator(canvas);  // TODO
        //anim.start();
        final Thread animThread = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    for (Component c : canvasses) {
                        c.repaint();
                    }
                    Display.sync(60);
                }
            }
        });
        animThread.setDaemon(true);
        animThread.start();
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    new Main();
                } catch (Exception ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                    System.exit(1);
                }
            }
        });
    }

}

  
back to coil

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>