Java-Gaming.org Java4K winners: [ by our judges | by the community ]         
Featured games (67)
games approved by the League of Dukes
Games in Showcase (∞)
games submitted by our members



News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  Print  
  problem and exception while changing polygon mode  (Read 873 times)
0 Members and 1 Guest are viewing this topic.
Offline TheBohemian

Full Member
**

Posts: 236


Java will rule them all!


« on: 2003-08-03 20:04:34 »

In a demo app of mine I want to switch the polygon mode with glPolygonMode between LINES and FULL. To make things easy I added a KeyListener to the GLCanvas. I declared a (volatile) variable polyMode that is set by the listener method and used by a call to glPolygonMode(...) which is the first operation of GLEventListener.display(...).

Now something strange happens:
a)
Initially the polygonmode is set to lines. After successfully changing to FULL-mode the app doesn't get back to LINE mode although the controlling variable is set.

b)
When having gl.glPolygonMode() in display() resizing of the windows fails with the following exception:

1  
2  
3  
4  
5  
6  
7  
8  
9  
net.java.games.jogl.GLException: glGetError() returned the following error codes after a call to glViewport(): GL_INVALID_ENUM 
        at net.java.games.jogl.DebugGL.checkGLGetError(DebugGL.java:9741)
        at net.java.games.jogl.DebugGL.glViewport(DebugGL.java:8974)
        at net.java.games.jogl.GLCanvas$1.run(GLCanvas.java:121)
        at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:189)
        at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:196)
        at net.java.games.jogl.GLCanvas.display(GLCanvas.java:91)
        at net.java.games.jogl.Animator$1.run(Animator.java:104)
        at java.lang.Thread.run(Thread.java:534)


Here the code that is directly called by an anonymouse KeyListener:
1  
2  
3  
4  
5  
6  
7  
      private void keyPressed(int keyCode){
            switch(keyCode){
                  case KeyEvent.VK_F:
                        polyMode = (polyMode == GL.GL_LINES) ? GL.GL_FILL : GL.GL_LINES;
                        break;
            }
      }


And this is my display-Method:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
public void display(GLDrawable glDrawable) {
            gl.glPolygonMode(GL.GL_FRONT, polyMode);
           
            gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT );
            gl.glLoadIdentity();

            gl.glTranslated(0, 0, zoom);
           
            wheel.paint(gl);
      }


I am using JOGL from July 18th (Windows version).

Does anyone know what I am doing wrong or how to solve polygon mode switching problem?

Thanks in advance.

cya

TheBohemian

---------------------------------------
my favorite OS: http://jnode.sf.net
Java 1.5 -> 1.4 converter: http://retroweaver.sf.net
Offline TheBohemian

Full Member
**

Posts: 236


Java will rule them all!


« Reply #1 on: 2003-08-03 20:07:52 »

I can admit the following:
Not using the DebugGL helps against the exception but now an OpenGL errorcode gets lost.

However switching back to LINE mode does not work ...

cya

TheBohemian

---------------------------------------
my favorite OS: http://jnode.sf.net
Java 1.5 -> 1.4 converter: http://retroweaver.sf.net
Offline pepijnve

Sr. Member
**

Posts: 379
Medals: 1


Java games rock!


« Reply #2 on: 2003-08-04 03:37:57 »

The correct constant to use is GL_LINE, not GL_LINES.
Games published by our own members! Go get 'em!
Offline TheBohemian

Full Member
**

Posts: 236


Java will rule them all!


« Reply #3 on: 2003-08-04 04:36:14 »

Thank you.
That solved it.

cya

TheBohemian

---------------------------------------
my favorite OS: http://jnode.sf.net
Java 1.5 -> 1.4 converter: http://retroweaver.sf.net
Pages: [1]
  Print  
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.1 seconds with 21 queries.