windows-phone-7 – 多长时间调用SpriteBatch.Begin()/.End()?
|
我在 Windows Phone 7的xna代码的Drawing部分中搜索性能问题,有时会在几秒钟后发生.有一个最佳实践如何/何时调用SpriteBatch.Begin绘制一些东西?应该为每一对精灵(在每个类中绘制玩家时,背景,背景物体……)或者在开始时调用 – >在所有子类中绘制所有内容 – 为了性能更好? 你不应该使用它们,因为Begin()意味着准备设备进行精灵渲染,而End()意味着恢复到之前的状态.这可能会因Begin()中的某些标志而有所不同,这些标志告诉您不需要更改状态,并且可能会使代码复杂化,因为您必须手动设置某些状态. 设备状态更改通常很慢,如果不需要,您应该阻止执行它们,它们也可能会干扰您正在执行的任何操作,因此如果您想要渲染不在SpriteBatch中的内容,您应该调用End(),但是如果您正在渲染精灵你应该为所有精灵打电话一次. 为了防止调用End()来修改上一个sprite中没有显示的状态,你应该调用Flush()而不是End().这会使排队的精灵呈现当前的变换和设备状态,但保持状态不变. End()函数的作用是调用Flush()并重置Begin()设置的特定状态. (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows – 如何将多个文件名传递给上下文菜单Shell命令?
- 在WPF中的所有Windows中应用按钮样式
- 如何在Windows Phone 7系列上获取屏幕尺寸?
- windows – 是否可以以编程方式找出通过网络锁定文件的进程
- Windows Server 2016-Win Ser 2016新增功能
- win10上部署Hadoop-2.7.3——非Cygwin、非虚拟机
- windows-8 – 屏幕关闭时,WinRT应用程序可以继续运行吗?
- ms-office – Microsoft Office 2010功能区自定义UI中的Pha
- 安装程序 – NSIS与Windows游戏资源管理器集成
- EvoPDF库在Windows Azure托管站点上失败
- assembly – windows进程内存布局
- windows10下安装source insight 4.0
- windows – 为什么模拟会话中定义的DOS设备不会出
- 如何控制Windows中打印机的打印机托盘选择
- windows下编译支持https的libcurl
- winapi – 来自Win32应用程序的x64图像上的OpenP
- windows-phone-8 – 适用于Windows Phone 8的企业
- Windows下wamp php单元测试工具PHPUnit安装及生成
- 命令行 – 批处理脚本 – 更改桌面上文件夹的图标
- windows-server-2008 – Windows Server 2008 R2
