【问题标题】:SharpGL not rendering on Button ClickSharpGL 未在按钮单击时呈现
【发布时间】:2017-07-28 23:42:09
【问题描述】:

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

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
}

【问题讨论】:

  • button1_Click 是否被调用?如果没有,请调查。
  • @user4581301 是的,它调用了 button1_Click

标签: c# winforms opengl sharpgl


【解决方案1】:

只需添加 openGLControl.Refresh();在 DrawScene() 之后。这几天一直在愚弄我。我是在阅读他们的源代码后发现的。 :D

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

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 2018-06-03
    • 2018-05-29
    • 2018-05-27
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2021-04-13
    • 2020-10-11
    相关资源
    最近更新 更多