|
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: 时事通讯 64 期时事通讯 64 期by Z98 on 2009-09-15 颜色及填充有颜色的光标并不时常被常用的应用程序所使用的功能,但是游戏肯定利用它并且Winamp 是其中一个非游戏的例子。当使用 Winamp 时,Gregor Schneider 发现当他尝试使用它时鼠标就会变成黑框也为此尝试研究代码以便试图修正它。当发现有些地方有备注关于需要颜色的支持时,Gregor 有了几个提示关于额外的代码究竟需要在何处。幸好多数的作品是直截了当并且对于更改绘画函数的参数连同使用颜色表层就足以让基本功能运作了。可是,那里仍然有问题于Win32 子系统较低层的代码并且多数的部分已经被注释并去掉。虽然光标已经显示,但是黑框仍在光标周围出现。 当 Gregor 正在处理这个问题,Timo Kreuzer 决定研究由Benedikt Freisen 所发现的问题于 Paint(画图)应用程序。当画图在 Windows 看上去和运用时非常好,Timo 觉得在ReactOS 下它是非常难看的。其中一个问题当然是关于有颜色的光标所以他过来研究图形引擎的问题。主要牵涉到的函数是SetPointerShape,而它有Drv 版(驱动版)和 Eng 版(引擎)。这将取决于图形驱动器支持该函数或需要Windows 图形引擎来处理它。在任何一个方式下,该函数将收到两个位图,第二个将接收绘画光标的颜色信息。原先这第二个位图被代码中忽视,但Timo 已经增加所需的功能以便让它正确的运作。下一个在列表要处理的是阿尔法混合 (Alpha Blending)。 Gregor 正在处理的另一个问题也是被画图应用程序所揭发。当使用它时,Gregor 发现他喜爱的工具bucket (颜色填充)并没有正确运作。调查后,他发现喷洒填充的功能未完整。多数相关的代码并且一系列函数调用链已经存在,就只差最后一套完成绘画的代码。Gregor 因此实施了一个非常简单的实现并且给予优化到其性能能够合理的正常使用。 top延迟导入动态链接库(Dynamic Link Libraries,简称 DLL)是用来在应用程序之间共享代码以及其功能函数而不必在每个应用程序里复制同样的功能。这将节省内存用量因为只需载入一个库的实例就可以为多个应用程序所用。与此同时,某个库的初始化载入过程可能需要花点时间甚至延迟启动某个应用程序。一个方法避免这样的无谓开销是延迟载入该库直到真的需要为止,有可能是在应用程序启动之后。这就是延迟导入的用途但很可惜这个功能的支持一直都没有在DLLtool(DLL 工具)里实现,因此Timo Kreuzer 前来添加这个功能。尽管 Timo 花了九牛二虎之力来为 DLLtool 设置构建环境,实现它的方法却是非常直接的。该补丁已经提交给原始开发者也因此希望更多人能够从中受惠并且mingw x64 团队也对此表示感到兴趣。根据 Timo 的说法,移植工具应该是相当简单的工作。 top兼容性数据库经过几年的煎熬之后,Danny Götte 已经重新编写数据库前端和末端的界面,以便让创建和编辑项目的过程更简单。到目前为止,新数据库比起以前好看多了并且自从启动之后,Danny 就一直继续基于用户的反馈来完善它。我们最终的目的是要该数据库也有硬件的项目,并取代维基特设的列表。如此一来,每个人将受邀测试 ReactOS 并发现它是如何运作。当数据库有越多项目时,将会使人们更容易发现什么东西能与不能在ReactOS 里运作。 top网站设计的得奖者恭喜 Shek-Yu Leung,在论坛里名为numpy 的朋友赢得这个比赛。他的设计演变了四个参赛作品的过程并且是最后一次被评审认为是当中最佳的作品。总的来说,所有参赛项目从基于现有布局做出简单重新排序的风格到完全把皮肤重新设计一番并且对换颜色方案的风格不等。那里最终有几个非常创意的布局将可能用于最终网站重新整理时的启发点,但是 Leung 的作品是当中少有的作品能够结合视觉上做出更新和对新前页的布局有了一些有趣的点子。ReactOS 团队为此感谢所有参赛者的付出。 top |