2017-05-28 187 views
0

我尝试使用集成的OpenGL可视化创建WPF应用程序。我发现the sample project SharpGL它帮助我将opengl代码集成到我的wpf程序中。在WPF应用程序中渲染OpenGL

现在我只想绘制,其具有以下属性的矩形:

40 x coordinates = columns 
48 y coordinates = rows 

每个(X,Y)坐标具有我在List<float>已定义的值。 List<float>是动态的,所以它会一直改变。 目标也是在绘制的矩形中实时显示值。

Like: 
      y-coord 
x coord 0 2 0 3 7 0 1 ..40 
      4 5 3 0 6 0 5 ..40 
      . . 
      . . 
      48 48 

不幸的是,当我尝试绘制矩形时,我已经失败。

private void openGLControl_OpenGLDraw(object sender, OpenGLEventArgs args) 
    { 
     // Get the OpenGL object. 
     OpenGL gl = openGLControl.OpenGL; 

     // Clear the color and depth buffer. 
     gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT); 

     // Load the identity matrix. 
     //gl.LoadIdentity(); 
     gl.PolygonMode(FaceMode.FrontAndBack, PolygonMode.Filled); 
     gl.Color(0,0,0); 
     // Draw a coloured pyramid. 
     gl.Begin(OpenGL.GL_QUADS); 
     gl.Vertex(-1.0f, 1.0f); 
     gl.Color(200,1,1); 
     gl.Vertex(-1.0f, 0.0f); 
     gl.Color(200, 1, 1); 
     gl.Vertex(1.0f, 0.0f); 
     gl.Color(200, 1, 1); 
     gl.Vertex(1.0f, 1.0f); 
     gl.Color(200, 1, 1); 
     gl.End(); 

     // Nudge the rotation. 
     //rotation += 3.0f; 
    } 

我的代码只显示一个黑色的窗口。

我怎么能意识到这一点?

回答

0

最可能是你忘了打电话给gl.Flush()gl.Finish()openGLControl_OpenGLDraw()方法的结束。直到你调用其中任何一种方法(或者在双缓冲的情况下为gl.SwapBuffers()),你所调用的每种绘图方法将只被缓冲但不执行。