游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2092|回复: 2

请教:关于代码的执行顺序的问题

[复制链接]

4

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2005-11-5 17:47:00 | 显示全部楼层 |阅读模式
关于代码的执行顺序的问题
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()启不是每执行一次就要画一次三角形。请您给与赐教!小弟在此拜谢了!!

12

主题

70

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2005-11-5 20:30:00 | 显示全部楼层

Re:请教:关于代码的执行顺序的问题

原来是C#,怪不得看起来怪怪的
从你的代码看,RENDER调用里面就是画两个三角形把,画完之后才算结束OnPaint
device.DrawPrimitives这个是要一次把里面所有顶点都画完的

4

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2005-11-7 19:13:00 | 显示全部楼层

Re:请教:关于代码的执行顺序的问题

grakiss,这里render调用里面是要画两个三角形,可是我就是不明白为什么我跟踪代码的执行的时候,OnPaint()要调用很多次呢?多谢了!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 13:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表