2011-10-18 70 views
0

我正在写我的第一个opengl程序,并希望通过单击鼠标我的形状的颜色被更改,但它不起作用。我的代码是 ....我的错是什么?opengl画布不更新

float red = 1.0f, green = 1.0f, blue = 1.0f; 
public void init(GLAutoDrawable drawable) 
{ 
    GL2 gl=drawable.getGL().getGL2(); 
    gl.glClearColor(0.0f,0.0f,0.0f,0.0f); 
} 
public void display(GLAutoDrawable drawable) 
{ 
    GL2 gl=drawable.getGL().getGL2(); 
    gl.glClear(GL2.GL_COLOR_BUFFER_BIT); 
    gl.glColor3f (red, green, blue); 

    gl.glBegin(GL2.GL_LINES); 
    gl.glVertex3f(0.5f,0.5f,0.1f); 
    gl.glVertex3f(-0.5f,-0.5f,0.0f); 
    gl.glEnd(); 
    gl.glFlush(); 

    gl.glRectf(0.0f,0.0f,0.5f,-0.5f); 
    gl.glRectf(0.0f,0.0f,-0.5f,0.5f); 
    gl.glFlush();   
} 
public void reshape(GLAutoDrawable drawable, int x,int y,int width,int height){} 
public void dispose(GLAutoDrawable drawable){} 
public void mouseClicked(MouseEvent e) {   
    red = 1.0f; green = 0.0f; blue = 1.0f; 
} 
public void mouseEntered(MouseEvent e) {} 
public void mouseExited(MouseEvent e) {} 
public void mousePressed(MouseEvent e) {} 
public void mouseReleased(MouseEvent e) {} 

回答

1

你的交换缓冲区调用在哪里?你是双缓冲,是吗?

+0

我不调用交换缓冲区。我不知道交换缓冲区。 – Tofiq

+1

@Tofiq:这可能是你没有看到任何东西的原因。你有没有看过OpenGL的基础教程,它使用了你使用的任何Java OpenGL工具? –