Bugzilla – Attachment 28 Details for
Bug 119
Dual-head problems on Windows XP
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
Log In
[x]
|
Forgot Password
Login:
[x]
Example illustrating the problem
DualHead.java (text/plain), 4.38 KB, created by
Sven Gothel
on 2004-11-15 12:18:00 CET
(
hide
)
Description:
Example illustrating the problem
Filename:
MIME Type:
Creator:
Sven Gothel
Created:
2004-11-15 12:18:00 CET
Size:
4.38 KB
patch
obsolete
>/* > * test.java > * > * Created on August 18, 2004, 12:58 PM > */ >import java.awt.*; >import java.awt.event.*; > >import net.java.games.jogl.*; >import net.java.games.jogl.impl.*; > >/** > * > * @author user1 > */ >public class DualHead { > > public static void main(String args[]) { > DualHead dh = new DualHead(); > } > > /** Creates a new instance of test */ > public DualHead() { > GraphicsEnvironment ge = > GraphicsEnvironment.getLocalGraphicsEnvironment(); > GraphicsDevice[] gs = ge.getScreenDevices(); > for (int i = 0; i < gs.length; i++) { > GraphicsConfiguration gc = gs[i].getDefaultConfiguration(); > System.err.println(gs[i]); > Frame frame = new Frame(gc); > frame.setSize(300 * (i + 1), 300); > GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas( > new GLCapabilities(), null, null, gs[i]); > canvas.addGLEventListener(new BasicRenderer(i)); > frame.add(canvas); > final Animator animator = new Animator(canvas); > frame.addWindowListener(new WindowAdapter() { > public void windowClosing(WindowEvent e) { > animator.stop(); > System.exit(0); > } > }); > frame.show(); > animator.start(); > } > } >} >class BasicRenderer implements GLEventListener, MouseListener, MouseMotionListener { > private float colorCycle = 0.0f; > private int screen; > > public BasicRenderer(int screen) { > this.screen = screen; > } > public void init(GLDrawable drawable) { > GL gl = drawable.getGL(); > System.err.println("INIT GL IS: " + gl.getClass().getName()); > } > > public void reshape(GLDrawable drawable, int x, int y, int width, int height) { > GL gl = drawable.getGL(); > float h = (float)height / (float)width; > > gl.glMatrixMode(GL.GL_PROJECTION); > > System.err.println("GL_VENDOR: " + gl.glGetString(GL.GL_VENDOR)); > System.err.println("GL_RENDERER: " + gl.glGetString(GL.GL_RENDERER)); > System.err.println("GL_VERSION: " + gl.glGetString(GL.GL_VERSION)); > System.err.println(); > System.err.println("glLoadTransposeMatrixfARB() supported: " + > gl.isFunctionAvailable("glLoadTransposeMatrixfARB")); > if (!gl.isFunctionAvailable("glLoadTransposeMatrixfARB")) { > // --- not using extensions > gl.glLoadIdentity(); > } else { > // --- using extensions > final float[] identityTranspose = new float[] { > 1, 0, 0, 0, > 0, 1, 0, 0, > 0, 0, 1, 0, > 0, 0, 0, 1 > }; > gl.glLoadTransposeMatrixfARB(identityTranspose); > } > gl.glFrustum(-1.0f, 1.0f, -h, h, 5.0f, 60.0f); > gl.glMatrixMode(GL.GL_MODELVIEW); > gl.glLoadIdentity(); > gl.glTranslatef(0.0f, 0.0f, -40.0f); > } > > public void display(GLDrawable drawable) { > GL gl = drawable.getGL(); > > gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); > gl.glBegin(gl.GL_TRIANGLES); > > if (screen == 0) { > System.err.println("Screen 0"); > gl.glColor3f(1.0f, 0.0f, 1.0f); > } > else { > gl.glColor3f(colorCycle, 0.0f, 0.0f); > System.err.println("Screen 1"); > } > gl.glVertex3f(-5.0f, -5.0f, 0.0f); > gl.glColor3f(0.0f, 1.0f, 0.0f); > gl.glVertex3f(5.0f, -5.0f, 0.0f); > if (screen == 0) { > gl.glColor3f(colorCycle, 0.0f, 1.0f); > } > else { > gl.glColor3f(0.0f, 0.0f, 1.0f); > } > gl.glVertex3f(-5.0f, 5.0f, 0.0f); > gl.glEnd(); > colorCycle += .05; > if (colorCycle > 1.0f) > colorCycle = 0.0f; > > try { > Thread.sleep(100); > } > catch (InterruptedException e) {} > } > > public void displayChanged(GLDrawable drawable, boolean modeChanged, boolean deviceChanged){} > // Methods required for the implementation of MouseListener > public void mouseEntered(MouseEvent e) {} > public void mouseExited(MouseEvent e) {} > > public void mousePressed(MouseEvent e) {} > public void mouseReleased(MouseEvent e) {} > public void mouseClicked(MouseEvent e) {} > public void mouseDragged(MouseEvent e) {} > public void mouseMoved(MouseEvent e) {} >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 119
: 28