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
}
答
只需添加openGLControl.Refresh(); DrawScene()之后。这几天我在欺骗我。我在阅读源代码后发现它。 :D
private void button1_Click(object sender, EventArgs e)
{
this.DrawScene(); //Not working
openGLControl.Refresh();
}
'button1_Click'被调用了吗?如果没有,请调查一下。 – user4581301
@ user4581301是的,它调用button1_Click – Barun