发布一个超轻便基于GDI的UI引擎,让UI开发像做游戏和网页一样清爽,求意见

zskof 2008-12-11 11:47:32
加精
前段时间在公司项目开发中,实现了一个轻量级的gdi的UI引擎。开发时本意就是为以后自己开发中小型游戏设计的,所以引擎的特点有三,轻便:没有大量的接口,都是实际开发中最常用到的;高效:使用了很多SSE2指令优化,浮点转整形优化及脏处理优化;易用:力争以几行语句实现诸如超链接,自绘按钮,异形窗体等常见应用。

眼下全自绘界面的应用越来越广,君不见最新发布的QQ2009,除了承载窗体所有控件均为自绘,感觉目前的趋势就是应用软件UI开发向游戏靠拢。但QQ2009的自绘效率MS不能使人满意,不信开一个聊天对话框,鼠标在上面一排动画按钮上快速晃动,CPU单核近满了吧,而同样的效果用这个引擎实现CPU不会超过3%。

目前主要功能如下:
1.各种图片格式加载和绘制,灰化,hsl变换,旋转缩放等各种图片特效。
2.文字和超链接,闪烁和渐隐渐现等各种文字特效。
3.自绘按钮。
4.异形窗体,各种窗体特效。
5.动画组件,图片的变形和变速移动等等。
6.滚动字幕
7.脏处理画布。

超链接实现演示:
ISonicString * pStr = GetSonicUI()->CreateString();
pStr->Format("/a='www.csdn.com'/一个超链接");
pStr->TextOut(hdc, 10, 10);

动画按钮实现演示:
ISonicImage * pImg = GetSonicUI()->CreateImage();
pImg->Load("C:\\button.bmp"); // 三态平铺图
ISonicString * pStr = GetSonicUI()->CreateString();
pStr->Format("/a, p=%d, ph=%d, pc=%d, animation=40/", pImg->GetObjectId(), pImg->GetObjectId(), pImg->GetObjectId());
pStr->TextOut(hdc, 10, 10); // 这是一个像QQ2009一样三态变化带有渐变过度效果的动画按钮哦


以下是效率演示,图中的卡片都在快速移动,画面刷新频率在每秒50帧左右,CPU占用基本为0:



希望大家试用、点评,积极给予意见,帮助我完善这个引擎,不胜感谢。
下载地址:http://zskof.download.csdn.net
详细说明:http://blog.csdn.net/zskof/archive/2008/12/11/3496343.aspx
...全文
5897 115 打赏 收藏 转发到动态 举报
写回复
用AI写文章
115 条回复
切换为时间正序
请发表友善的回复…
发表回复
jc5566 2011-11-25
  • 打赏
  • 举报
回复
留着以后用
exceed_me 2011-10-12
  • 打赏
  • 举报
回复
不错,类似 DirectUI!
exceed_me 2011-10-12
  • 打赏
  • 举报
回复
又重新看了下,下载了源码,的确很不错!

楼主把工作中的代码完整的拷出来,不会涉及法律问题?
dinoui 2010-12-22
  • 打赏
  • 举报
回复
推荐一款专门用于游戏研发的跨平台界面引擎:DinoUI。
它包含一套成熟的界面引擎和一套完全所见即所得的编辑器。
界面引擎提供大量的现成控件和功能,能帮助您轻松完成各种复杂的交互,包括角色状态(Buff),技能栏、包裹、装备等。
编辑器能不但全部所见即所得,而且还提供类似于Flash的动画编辑功能,让您轻松制作各种常见的界面动画效果,有了这套编辑器,能让您的程序员只专注于真正的游戏逻辑,不需要为界面上的表现浪费时间和精力。

如果您或您的团队使用过CEGUI,那么还能给您一些数据:
它能够帮助您的项目在界面方面的研发工作量减少大约70%。
它比用CEGUI来开发界面,相同的功能,能减少大约3/4的程序代码量,能减少20~30个人月的研发时间。
它比CEGUI的效率要高至少一倍。
以上数据来源于实际案例,我们的其中一个客户,原先3个人使用CEGUI做了半年的工作,后来项目改用DinoUI,同样的三个人只用了不到一个月就完成了原来同样的功能。相关的代码从2万多行减少到不到4千行,界面渲染效率提高了2倍多。


如果您想了解更多的特性,请访问我们的官网:
http://www.dinoui.com
在上面可以下载到编辑器和几个范例来做一些初步的体验,范例里边包括一个使用DinoUI引擎制作的《魔兽世界》的演示例子。


如果您感兴趣,我们可以上门向您做详细的演示,相信能给你带来全新的体验。


联系方式:
email: dinoui@163.com
msn: snstarpro@hotmail.com
gudou 2010-03-30
  • 打赏
  • 举报
回复

学习中……
羽毛乱发 2010-03-11
  • 打赏
  • 举报
回复
先顶一个,然后下载下来看看。
flex2666 2009-03-27
  • 打赏
  • 举报
回复
mark
simb 2009-02-10
  • 打赏
  • 举报
回复
楼主可以考虑搞一个开源项目来持续的发展这个引擎。
vctrane_007 2009-01-06
  • 打赏
  • 举报
回复
确实很强大,好好研究一下。自己以前也做了一个丑陋的自绘控件的封装类。非常佩服楼主的水平
book_haodaniu 2009-01-05
  • 打赏
  • 举报
回复
都是高手!学习!
wjlsmail 2008-12-23
  • 打赏
  • 举报
回复
Mark
我是苦力 2008-12-22
  • 打赏
  • 举报
回复
100
用了一下,还不错, 效率 和 使用
Wolf_FienD 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 LBPeking 的回复:]
GOOD!
[/Quote]
whywen_MoJian 2008-12-22
  • 打赏
  • 举报
回复
up
qqlpp 2008-12-22
  • 打赏
  • 举报
回复
友情up
ivan_08 2008-12-22
  • 打赏
  • 举报
回复
good
rularys 2008-12-22
  • 打赏
  • 举报
回复
100&~
铁拳 2008-12-21
  • 打赏
  • 举报
回复
不错,前段时间还准备自己做一个呢,用来做 Splash,在后台装载 C# 程序,因为 C# 程序启动太慢了,没想到老兄已经做了,受益了,谢谢老兄,看关于对话框跟这个很像哦,呵呵。

http://www.vckbase.com/document/viewdoc/?id=1745

过几天用的时候再细看看,感谢了。
linweizhou 2008-12-21
  • 打赏
  • 举报
回复
学习学习~~
ndchenxiaofeng 2008-12-20
  • 打赏
  • 举报
回复
楼主厉害,感谢分享!
加载更多回复(92)

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧