windows-phone-7 – 多长时间调用SpriteBatch.Begin()/.End()?
发布时间:2020-12-13 21:29:44 所属栏目:Windows 来源:网络整理
导读:我在 Windows Phone 7的xna代码的Drawing部分中搜索性能问题,有时会在几秒钟后发生.有一个最佳实践如何/何时调用SpriteBatch.Begin绘制一些东西?应该为每一对精灵(在每个类中绘制玩家时,背景,背景物体……)或者在开始时调用 – 在所有子类中绘制所有内容 –
我在
Windows Phone 7的xna代码的Drawing部分中搜索性能问题,有时会在几秒钟后发生.有一个最佳实践如何/何时调用SpriteBatch.Begin绘制一些东西?应该为每一对精灵(在每个类中绘制玩家时,背景,背景物体……)或者在开始时调用 – >在所有子类中绘制所有内容 – 为了性能更好?
你不应该使用它们,因为Begin()意味着准备设备进行精灵渲染,而End()意味着恢复到之前的状态.这可能会因Begin()中的某些标志而有所不同,这些标志告诉您不需要更改状态,并且可能会使代码复杂化,因为您必须手动设置某些状态.
设备状态更改通常很慢,如果不需要,您应该阻止执行它们,它们也可能会干扰您正在执行的任何操作,因此如果您想要渲染不在SpriteBatch中的内容,您应该调用End(),但是如果您正在渲染精灵你应该为所有精灵打电话一次. 为了防止调用End()来修改上一个sprite中没有显示的状态,你应该调用Flush()而不是End().这会使排队的精灵呈现当前的变换和设备状态,但保持状态不变. End()函数的作用是调用Flush()并重置Begin()设置的特定状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 如何诊断无法在Windows Server 200
- windows-server-2008 – VMware vCenter Server如何工作以及
- Windows提高_2.2第二部分:用户区同步
- windows-server-2008 – 为Windows Server安装使用单个卷/驱
- Windows环境 安装dlib(python) 总结
- Windows Server 2012域控制器具有不同网络配置文件的两个NI
- 寻找适用于Windows的NTP服务器软件
- 在Windows中更改JAVA_HOME系统变量的脚本
- 为什么Win32-API有这么多的自定义类型?
- 如何在Windows资源管理器中为Java应用程序添加上下文菜单?
推荐文章
站长推荐
- 在Windows C中捕获Nan和Inf
- windows-server-2003 – 需要一种在用户登录之前
- windows-server-2012-r2 – 禁用TLS 1.2停止RST数
- 命令行界面 – 从Windows命令行导入.cer证书
- windows-server-2008-r2 – netsh设置多个hosted
- 如何在Windows AD域中查找锁定用户帐户的原因
- windows – 使用命令行从TortoiseSVN中的多个修订
- DOS标头中的e_cblp和e_cp是什么?
- windows – 没有传统“菜单”栏的应用程序的可用
- windows-xp – Windows Vista配置文件了吗?
热点阅读