我尝试使用集成的OpenGL可视化创建WPF应用程序。
我发现the sample project SharpGL它帮助我将opengl代码集成到我的wpf程序中。
现在我只想绘制一个具有以下属性的矩形:
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 :(得分:1)
您很可能忘记在 openGLControl_OpenGLDraw()方法的末尾调用 gl.Flush()或 gl.Finish() 。在你调用任何这些方法之前(或者在双缓冲的情况下 gl.SwapBuffers()),你调用的每个绘图方法只会被缓冲但不会被执行。