SharpGL不在按钮上呈现点击

SharpGL不在按钮上呈现点击

问题描述:

我在winform上测试SharpGL示例,它在openGLDraw事件上呈现三角形。但是当我试图用按钮渲染它时,它不起作用。它是否应该不在openGLDraw事件之外渲染?下面是代码:SharpGL不在按钮上呈现点击

private void DrawScene() 
{ 
    OpenGL gl = openGLControl.OpenGL; 
    gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); 
    gl.LoadIdentity(); 
    gl.Begin(OpenGL.GL_TRIANGLES); 
    gl.Color(1.0f, 0.0f, 0.0f); 
    gl.Vertex(0.0f, 1.0f, 0.0f); 
    gl.Color(0.0f, 1.0f, 0.0f); 
    gl.Vertex(-1.0f, -1.0f, 1.0f); 
    gl.Color(0.0f, 0.0f, 1.0f); 
    gl.Vertex(1.0f, -1.0f, 1.0f); 
    gl.Color(1.0f, 0.0f, 0.0f); 
    gl.Vertex(0.0f, 1.0f, 0.0f); 
    gl.Color(0.0f, 0.0f, 1.0f); 
    gl.Vertex(1.0f, -1.0f, 1.0f); 
    gl.Color(0.0f, 1.0f, 0.0f); 
    gl.Vertex(1.0f, -1.0f, -1.0f); 
    gl.Color(1.0f, 0.0f, 0.0f); 
    gl.Vertex(0.0f, 1.0f, 0.0f); 
    gl.Color(0.0f, 1.0f, 0.0f); 
    gl.Vertex(1.0f, -1.0f, -1.0f); 
    gl.Color(0.0f, 0.0f, 1.0f); 
    gl.Vertex(-1.0f, -1.0f, -1.0f); 
    gl.Color(1.0f, 0.0f, 0.0f); 
    gl.Vertex(0.0f, 1.0f, 0.0f); 
    gl.Color(0.0f, 0.0f, 1.0f); 
    gl.Vertex(-1.0f, -1.0f, -1.0f); 
    gl.Color(0.0f, 1.0f, 0.0f); 
    gl.Vertex(-1.0f, -1.0f, 1.0f); 
    gl.End(); 
} 

private void openGLControl_OpenGLDraw(object sender, RenderEventArgs e) 
{ 
    //this.DrawScene(); //Working 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    this.DrawScene(); //Not working 
} 
+0

'button1_Click'被调用了吗?如果没有,请调查一下。 – user4581301

+0

@ user4581301是的,它调用button1_Click – Barun

只需添加openGLControl.Refresh(); DrawScene()之后。这几天我在欺骗我。我在阅读源代码后发现它。 :D

private void button1_Click(object sender, EventArgs e) 
{ 
    this.DrawScene(); //Not working 
    openGLControl.Refresh(); 
}