做按行滚动的ScrollBar的时候,我顺手下了CEGUI来看看,它的三个三个size:documentSize,PageSize,StepSize我觉得设计的很不错,两个月前我才加入了DocumentSize的概念,当时起名叫做ContentSize,但是我一直没有StepSize,原来按行滚动的时候用一行行滚,后来我改成了按ThumbPos拖动的距离计算,但是加入StepSize可以减缓鼠标在Scroll上的移动速度(反向控制鼠标),提高滚动精度。
Cegui的UI的HardCode写法颇有些繁杂,让我想起了gtk,所幸能够用xml控制了,他的Property设置方式很有意思,和jQuery差不多,现在还没完全吃透。
现有UI的control_type好像没什么用了,有RTTI了,但是那边的声明要做三处,CEGUI似乎也不太高明,似乎可以用配置文件+宏的方式解决硬编码,有时间试着做一下。
我想暂时还是以我的库为主吸收一些cegui的东西,xml的方式有点早,而且tinyXml没验证不严格,打算先把他改进一下,暂时还是用2进制读写吧,D3DXFont目前没有体现出太大的问题,但是纹理字体的实现一定有更好的方式。