cegui告捷

忙活了3天时间,瞅了一遍cegui,感觉很好,设计的很大方。但一个问题困扰了我一天多的时间才得以解决,问题的原因却极其白痴,居然是因为我使用debug模式去链接release模式的库导致的问题。本来这个问题不该出现的,但是我刚开始在debug模式编译debug的lib库,出现了“没有d3dx9d_37.dll”的提示,变态的d3d9居然后面跟个37,害得我偷懒用了release模式的库,最终导致了我寻找各个地方都没有查出错误所在,该错误便是在注册事件相应的函数中出现内存溢出,哎!其实到最后我都没有找到这个dll,只是把已有的d3dx9d_30.dll的文件名改成了d3dx9d_37.dll了。

 

按理说,微软用com技术封装d3d,就应该注意这方面的问题,不能因为debug库是面向开发人员的就不注意版本问题了。也有可能是这个库在每个版本变化都很大,所以故意为难开发人员,让我们注意。

 

总之,cegui的大问题是解决了,剩下的就是对这个库一点小小的改进意见:就是那个任何对象的唯一标识符都用String做的特点,譬如每个Window都有一个唯一的标识,这个标识就是一个字符串String类型。这样的设计虽然很灵活,但从效率上来说,有点底下了,就连消息的标识都用的String类型!我觉得实在没有这个必要。如果改成Int型做唯一标识符的话,索引和查找都会快很多。如果有人需要用String做标识符的话,可以重载一个相同名称的函数,用String--Int的映射表来管理,这样应该会更灵活更通用,且效率提高更有余地。

 

当然,UI的效率始终不是游戏效率的重点,这也可能是cegui作者之所以使用这种标识方式的原因吧。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值