|
|
关于代码的执行顺序的问题
private void Render()
{
if (device == null)
return;
//Clear the backbuffer to a blue color (ARGB = 000000ff)
device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0f, 0);
//Begin the scene
device.BeginScene();
device.SetStreamSource( 0, vertexBuffer, 0);
device.VertexFormat = CustomVertex.TransformedColored.Format;
device.DrawPrimitives(PrimitiveType.TriangleStrip, 0,2);
//End the scene
device.EndScene();
device.Present();
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
this.Render(); // Render on painting
}
在代码的执行过程中我跟踪了一下代码的执行,为什么OnPaint要执行很多次呢,是不时栅格化一个像素就要执行一次OnPaint()呢,还是每画一个primitive就执行一次呢,如果是的话,device.DrawPrimitives()启不是每执行一次就要画一次三角形。请您给与赐教!小弟在此拜谢了!! |
|