自己做一个输入控件实在太困难了。。

还是试着将Qt的文本那部分移植过来吧。。。但是Qt text文件夹里面有将近100个文件啊。。坑爹咩。。。

MetalBone的右键菜单和TwitWarMB

现在有了右键菜单:

右键菜单

TwitWarMB设置:

TwitWarMB设置

开始做MetalBone的文本输入widget。

文本输入真是让人头大啊。。

我是希望能直接clone Qt的文本系统的。。。可惜它太过复杂了。。。。。

恐怕目前就只有微软的windowless RichEdit和纯WinAPI手工打造,这两个选择了。

关闭了MetalBone在Google Code上面的仓库

    之前有一个人说他也想贡献代码,但是用Git不方便。然后我就想,既然有人愿意一起写代码,就转移到google code,方便一下他吧。然后结果是过了N久都没有看见他有任何的动作。然后想想,其实在中国,真有哪些人愿意贡献代码啊。群里面那帮人也是,只是想用,却没想过贡献。所以索性就关闭了Google Code的仓库,现在就只剩下Git的仓库了。

    以后恐怕甚至也会关闭Git的仓库,只要fork的人多,而没人贡献的话,就必然会关闭。虽然我都未曾为Qt贡献过代码。但毕竟人家是有Nokia在撑腰,而且又有商业模式。但是MetalBone仅靠我一个人来做[......]

继续阅读

如何在Skia里画出std::wstring

Skia编译的时候几乎不管UNICODE这个宏定义。而且编译它的时候不要定义UNICODE。

但是这样怎么能画出wstring呢?

可以这样:

SkPaint paint;

paint.setTextEncoding(SkPaint::kUTF16_TextEncoding);

然后将这个SkPaint传入SkCanvas的drawText()函数:

void SkCanvas::drawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, const SkPaint& paint);

Skia就[......]

继续阅读

Direct2D真让人失望啊

不知道是不是更新了驱动的问题。现在MetalBone的Demo程序的Private Bytes居然高达70。。专用工作集也要20M,这样我用Qt不还更好么。。。虽然在不支持WDDM的台式机上面,Private Bytes没那么高,专用工作集也稍微低了几M。但是这样真的不可靠。

其实本来硬件加速什么的只不过是噱头。普通应用程序根本不需要这么高速的绘制。。。看来还是用google的skia好了。。

关于我

  • 我喜欢追求完美。或者说我对很多我关心的事物有一定的要求。例如,电影,电视剧,游戏,程序等等。我觉得我做某些东西的质量总监完全没有问题。
  • 很讨厌麻烦的事情。例如,搞好各路人际关系,赚大钱上电视发布新闻演讲会。我觉得简简单单的生活未尝不是幸福。
  • 不喜欢说谎。因为要在瞬间想到一个完美的谎言是很困难和很麻烦的。
  • 不容易发怒。我觉得很多事情都没啥必要要发怒,可能是因为在写软件的时候经常会有让人沮丧的事情,所以我觉得既来之则安之。
  • 不容易记仇,但一旦超过了底线,就很记仇。每个人总有那么些底线,虽然我被自己的道德观压得很低,但是还是有底线的。越过了,就很记仇。虽然我也不会搞什么报复,最多就是注意点,大家各[......]

继续阅读

“大学”其实不过是一种信誉

《C钱未来式》里面有一集,那个情报商说,“信誉最值钱。你为什么会来我这里买情报,是因为有三国先生的推荐。为什么会相信我的情报,还是因为我有信誉。”

在我看来,我们在上的大学本来几乎毫无价值,但是为什么我们还是要上?因为它本身是一种信誉。尽管大学生遍地都是,但是招聘的人想,你最起码要有这个信誉,我才能够相信你可能是个人才。你连这个信誉都没有,我怎么能相信。

那么还是不要怨恨大学,要怨恨的就怨恨那些让大学变成这种没有实际价值的信誉的人。

贪心心理

    很多人在使用软件的时候,都一个心理作怪:要用就要用最新,最全,功能最多的。比方说,很多人只是想用Adobe的旅行居家必备的photoshop,却硬是要去下载一整套的Creative Suite,还要Master版本。出了CS5.5还要立即再去更新整套CS。又例如,我的同学都情愿用破解版的MyEclipse也不用Eclipse。又比如,通篇的都是在讨论visual studio 2010 ultimate哪里下载,哪里破解。

    其实,你这样子不是在作践自己么。。下载一个功能更多的东西,必然体积更大,所花费的时间必然更长。你下载下来,又要占用更[......]

继续阅读

MetalBone添加了直线渐变效果

先上图:

图一是photoshop效果。

图二是之前的效果。

图三是现在的效果。

之前没有实现渐变功能,所以整个滚动条是用一个border-image来做的,跟photoshop效果相比,差别在于渐变没有了,而且图一那里有一些一深一浅的效果,图二也没有。

图三的滚动条是用了三层来做的,最低一层是一深一浅的效果(由于在上面叠加了两层,比较模糊),第二层是渐变颜色,由紫红色变成紫色,第三层是左边的高亮(这个是用border-image来做的),所以实际上是用了两个background,一个border-image。

要达到这样的效果,在MetalBone里面也就只需要写几行CSS:

#MScro[......]

继续阅读

在google搜索Direct UI居然没有我的blog。悲剧。

好歹将MetalBone放在二三页好不好啊,G大。。。真希望有更多的人青睐。。自认为不比Duilib差,甚至比他要优越不少,毕竟是抄Qt的API。可能是Direct 2D搞得无人问津。。但是Win8都要来了。。xp都是十年前的产物了,老大们。

DirectCanvas貌似很有戏。

等待@jmorrill放出C++版本的DirectCanvas。之后MetalBone就用定它了。

MetalBone – Windowless C++ GUI Lib

  • MetalBone是什么?

MetalBone是一个windowless的C++ GUI Library。就是别人常说的DirectUI。项目地址:https://github.com/WarWithinMe/MetalBone。使用的是WWM协议(LGPL附加几个条件)。

  • MetalBone的效果?

原生界面:

 原生界面

MetalBone Demo界面:

MetalBone Demo

  • 为什么要做MetalBone?

Windows下的C++图形界面编程一直很让人不爽(这应该归罪于微软自家那蹩脚的C#)。原始的Win32 API多而繁杂,诸如MFC/WTL/ATL之类的界面库又很别扭。特别是[......]

继续阅读

UI可以简洁、简单,但决不能过时。

UI可以简洁、简单,但决不能过时。

试一试Dll Injection。

 之所以想试试Dll Injection,归根到底是因为我想玩COD6联机。校园网是绑定MAC地址的,所以我的笔记本只能修改MAC地址才能连上网。但是改了MAC地址的话,打开COD6又会出错。所以想试试能不能hack一下校园网的客户端。

好吧,实际上,我还是没得到我想要的结果。不过尝试一下Dll Injection也不错。

———- 正文的分割线 ———-

 一开始不知道iNode是怎么工作的(完全不知道),所以就想,能不能让iNode获取MAC地址的时候,得到的是我指定的MAC地址。看了一些API H[......]

继续阅读