游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4221|回复: 11

关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

[复制链接]

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2008-7-11 14:02:00 | 显示全部楼层 |阅读模式
项 目:the Los Object-oriented Set C++ library ver 0.15

code.google.com/p/los-lib
mail: loserwang at gmail.com

=[Summary]=
project: los-lib since: Jan. 15, 2008
last update: Jul. 11, 2008



The Los Object-oriented Set C++ library support a set of object-oriented classes for windows development.

The library is distributed under GNU LGPL LICENSE Ver.3.

The library has an advanced message-mapping, command-mapping, message reflecting, multithreading model and so on.Its programme interface is quite clear and anyone can use it to develop advanced Windows applications immediately.

==[Updates]==

2008 年 7 月 10 日
这几天我新增了 ForwardMessaage? 的能力,使客户区窗口可以将内部单元的消息和通知上下文传递给框架窗口,结合基本的消息传递和消息、通知反射而构成了较为完整的消息路由。完成了基本的对象序列化能力 Serialization,尚未具有递归查找存储的能力,但足于承担一般的存储任务。完成了树形控件和工具栏控件的主要能力,以及关联的 ImageList、Bitmap、 ToolTip 和 ToolInfo 等类型。



[Jun. 30, 2008]
These days I mainly complete some documents about how to programming better. those DOCUMENTS contains four parts now, "assembler", "CPL", "C++PL", "Windows" and so on. Next time I will write something about "Computer Graphics Technology".
I plan and try to implement some advanced GUI traits. just as "DockBar", "ScrollWin", "SplitWin" and so on. Anyone which want to support good interface for users, can use those prop instead of doing it by onself.

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-7-16 19:55:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

Windows GUI:
http://code.google.com/p/los-lib/
7 月 16 日更新:
=== 2008 年 7 月 16 日 ===
为了支持 RichEdit 的特性更改,新增了一序列和工具栏有关的类型和实现,如 RichEdit::CharFormat 和 Toolbar::ButtonInfo 等。添加了简单易用的颜色对话框 ColorDialog。添加了字体对象类 Font,逻辑字体类 LogFont,字体枚举信息类 FontInfo;在 DC 类型中添加枚举字体的能力 DC::GetFontInfoList。添加菜单对按索引获得点选事件的能力。使用 Proxy::Window 代理类完成取得 Window 指针类型的关联句柄的单一符号,并因此放弃在传递参数时使用 Window::GetSafeHwnd(),而代之以 Window 指针类型数据。如 ClientDC cdc(GetSafeHwnd()) 将使用 ClientDC cdc(this) 代替及其它等。

5

主题

972

帖子

975

积分

高级会员

Rank: 4

积分
975
发表于 2008-7-16 19:57:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

自己做个MFC吗,厉害啊!

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-7-27 16:33:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

Windows GUI:
http://code.google.com/p/los-lib/
7 月 27 日更新:
=== 2008 年 7 月 27 日 ===

这期间,完成了存储的主要能力,测试了 los::serialization 名称空间以下的 SerialOwner, SerialUser, SerialStream, SerialString 等类型。使用支持序列化的类型,可以方便地自定义存储规则。界面的实现方面,在 DockBar 模板类型中设置可停靠栏客户区类型,可以简单地将类似对话框资源嵌入,而无需借助 Toolbar 的占位,有效地增强可维护性;新增了状态栏控件 StatusBar,可以方便地通过 StatusBar::SetPatsRTL() 反向设置状态栏分割。添加了 RichEdit 的一系列主要数据操作,如 StreamOut(), StreamIn(), FindText() 以及一系列剪贴板操作等;新增了组合框控件 ComboBox;新增了分页控件 TabCtrl 和分页窗体 TabWin,通过分页窗体结合可滚动窗体 ScrollWin 以及对话框 Dialog 等类型,可以迅速实现较为复杂的窗口布局。例如 OptionsDlg 是继承自 Dialog 的特定对话框,将 ScrollWin<OptionsDlg> 类型实例 Page_Options 在 TabWin 窗体中创建,并通过 AddPage(&ampage_Options) 成员函数的调用,以立即将该子窗口选入内置 TabCtrl 的关联列表中,当用户选择确定的标签,则当前页面将立即显示。

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-8-1 16:48:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

Windows GUI:
http://code.google.com/p/los-lib/
2008 年 8 月 1 日

良好的对象序列化能力,一类 SerialOwner 容器维护一组常规数据成员和 SerialUser 派生的动态存储成员,SerialUser 具有自动注册到关联的 SerialOwner 容器的能力。当动态存储区域存在嵌套的 SerialUser 对象,则由 一份 Dynamic Storage Range 表格完成查找,以进行正确注册,并完成嵌套的动态存储的序列化能力,理论上将支持任意的文档对象序列化。SerialUser 基类处理序列化和存储区管理的能力,通过派生的 SerialString, SerialStream 等来实际操作数据。

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-8-21 21:04:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

Windows GUI:
http://code.google.com/p/los-lib/
2008 年 8 月 19 日

los::serialization 序列化能力修正了对多重继承的支持,因为时间关系,并没有进行更为有效的测试,已知未发生问题。尽管 los-lib 默认开启了 Win64 的兼容性测试,但是仅满足语法上的兼容性。SerialOwner 在对象数据上直接操作,仍假设指针长度为 32 位,int / long 类型在 Win64 下仍为 32 bit,intptr_t / size_t / ptrdiff_t 等则相应扩展到 64 bit,尽管这更改起来很省事,但我仍未就 Win64 的移植问题进行整理,所以将暂不满足到 Win64 的语义正确性检查。

当前更新添加了组件对象模型程序设计能力的支持,用于支持接口说明的 Interface 包裹类,用于承担运行机制和对象信息提交,且具有内置 IClassFactory 的 Component 组件对象类,用于包装接口操作界面的 InterfacePtr 接口智能指针,此类程序设计免不了有些必须遵循的策略,所幸的是,los-lib 在设计组件模型之初,使用了黑盒式的概念提出了 LOC 模型,后来因为满足商业化和实用性的策略考虑,将 LOC 的设计理念灌注到已有的 COM 组件对象模型中,在后续的一系列设计中,我对这两种强大力量的统一感到非常满意,它使得事物的本质得于正确体现,任何合格的程序设计人员应当会喜欢上它且同样应当能设计出满足自己需要的组件,所有的细节均可在 los::component 目录以下。

OLE 2 等设计规范不是 los-lib 应当承担的,相反,用户有义务自己促成相关的设计能力。不过,los-lib 将以示例的形式指导如何使用 los::component 设计出健壮的 OLE 2 标准部件,总之,los::component 不是纯粹的 COM 组件支持库,也不是 ATL 等大部头,它是一种新理论同旧有规范相结合,最大化其实用性的精简机制,一种可获得内部视点的稳固的黑盒式实现。

20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-10-23 03:13:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

Windows GUI:
http://code.google.com/p/los-lib/
2008 年 10 月 23 日

Los 对象集合库 0.39

Los 对象集合库提供一组 Windows 应用程序开发的对象化类型。

该库遵循 GNU LGPL LICENSE Ver.3. 以进行分发。

该库具有进化的消息映射、命令映射、多线程等模型。它的程序设计界面相当清晰,任何人可以立即使用它来开发高效的 Windows 应用程序。

现在,任何人更可以尝试用其中的 los::blaze 子库进行 3D 渲染。它将会越来越完整。

希望你会喜欢。


2008 年 10 月 23 日



添加了 los::blaze 子库以帮助开发支持 3D 渲染的应用程序,当前提供 GDI 软件渲染器,可以很容易地扩展其他渲染器。通过浏览这个子库的实现可以得到一些较佳的结构组织建议。我没有就性能问题给予充分优化。


20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-10-23 03:14:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

欢迎爱好者加入共同探讨。

11

主题

190

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2008-10-23 12:33:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]

看了一下,楼主太强了,我还以为那个渲染使用dx或者ogl实现的,原来是楼主自己写的光栅化算法,不得不佩服楼主的毅力。

提几个小建议:
1. 相对于代码量,代码里注释和文档太少了,那个结构图估计没几个人看得懂,提供功能说明文档要好的多
2. 看的出楼主模仿的是WTL的结构,源代码全部都是.h文件,范型思想虽然好,但不见得人人都能接受,用多了容易让代码变得庞大晦涩
3. 据我所知,开源或者商用的GUI库并不少,比如BCG,wxWidget,Xtreme,QT等等,这些库的亮点往往在几个方面,比如跨平台、国际化支持、自动布局计算、皮肤定义,复杂控件支持等,建议楼主借鉴一下。
4. 3D渲染并不是UI引擎应该做的事情,而是游戏引擎该做的,建议楼主不要在这方面深入了




20

主题

136

帖子

172

积分

注册会员

Rank: 2

积分
172
 楼主| 发表于 2008-11-25 05:59:00 | 显示全部楼层

Re:关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 11 月 25 日]

Windows GUI & Game Engine los-lib:
http://code.google.com/p/los-lib/
2008 年 11 月 25 日

Los 对象集合库 0.41

Los 对象集合库提供一组 Windows 应用程序开发的对象化类型。

该库遵循 GNU LGPL LICENSE Ver.3. 以进行分发。

该库具有进化的消息映射、命令映射、多线程等模型。它的程序设计界面相当清晰,任何人可以立即使用它来开发高效的 Windows 应用程序。

los::blaze 子库支持 3D 渲染,当前通过 GDI 绘制多边形,具有稳健的场景管理器和流水线,方便小型娱乐游戏的开发。



2008 年 11 月 25 日

当前更新加入了场景管理器,丰富了 3D 动态对象的能力,能够为小型的游戏娱乐项目提供较为完整的图形渲染以及场景管理等的支持,并因此提供了一个作为以上新增技术及既有基础设施共同构成的游戏项目。

接续将就声音输出能力以及 D3D 等图形 API 的渲染器实现进行设计。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 14:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表