D3D笔记---关于D3DPOOL_DEFFULT

关于这个网上搜集过不少资料,但是还是自己用起来的时候感触比较深,这里要说的只有几点


1、性能。用D3DPOOL_DEFFULT后发现性能大幅提升,加载最快超过100%,同样数量纹理,托管内存速度会慢很多。不仅加载,渲染效率也大幅提升,至少50%。

2、代价。这个是重点,所谓有得必有失,为什么HGE和CEGUI的实现里面,都使用了托管内存?这就是D3DPOOL_DEFFULT需要付出的代价。具体来看看:

①一旦创建不能被更改,也就是说LockRect什么的就别想了,但也不是完全不能更改,D3D里面有UpdateTexture(具体什么名字懒得翻了)可以通过一张D3DPOOL_SYSTEMMEM的纹理来进行更新。由于某些地方确实想LockRect,试过UpdateTexture到另一种纹理上然后再锁,结果直接蓝屏了……原因懒得去找了。

②设备丢失时需要手动恢复,这个其实实现起来倒不是很难,比起不能LockRect来说好处理很多,自己也尝试实现过了。

谁要知道怎么锁定D3DPOOL_DEFFULT的纹理的话(只为读取)分享一下,不胜感激。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值