2011-10-18 63 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工具? –