MS看着Java凭借着可移植性占领了广大的市场,自然不甘心,于是搞出了.Net——MS版Java。实话说,.Net和Java很多地方差不多的……
由于.Net需要可移植性,因此.Net程序里面其实并不是机器码——实际上是MS的一种中间代码,也就是经过了一半编译过程的代码。既然是独立于系统的,.Net也就很容易被移植到MS没有兴趣/不想移植的系统上。由此,mono便诞生了——可以在Linux/BSD/unix-like上跑.Net程序。
貌似mono自己写了.Net的一大堆类库(当然很多还没有写出来…… 但可以混混了~)。
从前装好mono,运行的时候,报告gdiplus.dll找不到。我把Windows下面那个搬到了很多地方,都没有用。今天再试,突然想到可能需要原生的gdiplus,一看,果然发现有libgdiplus这个port,装好之后出现了gdiplus.so等。再运行,就没有原先的问题了。
但是,mono的不完整的实现还是限制了使用…… 我用它运行从前写的ReadAsBmp程序(能够把一个文件的任何部分当作Bmp处理等),基本上可以用,但是PictureBox的Load() mono 没有实现,载入外部图像的时候就挂掉了。而另一个 NewLines 程序 (其实功能和常见的WinLinez差不多,五个珠子连起来就消掉的小游戏,为了解决自动缩放/存盘/跨平台等功能而自己写的,给我妈玩……)由于Form.set_MainMenuStrip() mono 没有实现,窗口都没出来就挂掉了,看来目前还不能使用菜单部分啊~
总的来说,mono 已经不错了,只要能够完善类库,比起Java还是很有竞争力的。
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64263.aspx
2007年4月23日星期一
Project: ReadAsBmp
这个东西是我为了更换MP3的Rom里面的图片而开发的,能够在指定参数之后,从文件的某个位置读取BMP格式的图像(或者说把数据当BMP格式读进来并且显示出来~),以及使用各种格式的图像进行替换。开发到现在,已经可以从某个文件中读取图像列表,自动批量显示在列表框里,然后通过点击选择图像(就不用每次都手动输入数据再显示了~ 一劳永逸啊~)。这个功能使得这个程序应该可以适用于各个牌子、各个型号的MP3的Rom~ 也可以根据列表把图片自动提取出来,保存到文件。暂时没有批量读取功能,以后再说~
这个东西是用C#写的,主要是跨平台性好,用起来还比较方便~ 另一方面是为了学习C#,大概是C#的第一个实用项目吧。
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64264.aspx
这个东西是用C#写的,主要是跨平台性好,用起来还比较方便~ 另一方面是为了学习C#,大概是C#的第一个实用项目吧。
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64264.aspx
Project: TimeCountJava
用来计时的东西,设计出来的时候是给我家的宽带计时用的,所以和上网/断网这个功能结合得太紧密了,现在正在考虑分开来。
其实就是一个计时工具,能够对一小段一小段的时间进行统计,得出每月总和,每日总和,并且能够浏览历史记录。因为是用来统计上网时间的,所以还有上网和断网的功能。
虽然是用Java写的,但是貌似Java没有上下网的方法。所以,需要针对各个系统写一个用来上网/下网的小程序。我现在Windows里面用的是rasphone(系统自带),FreeBSD下面我写了一个ppp的wrapper脚本,这个脚本应该是通用unix-like系统的。
以后要增加达到限制提醒功能,另外多一些配置功能,……
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64265.aspx
其实就是一个计时工具,能够对一小段一小段的时间进行统计,得出每月总和,每日总和,并且能够浏览历史记录。因为是用来统计上网时间的,所以还有上网和断网的功能。
虽然是用Java写的,但是貌似Java没有上下网的方法。所以,需要针对各个系统写一个用来上网/下网的小程序。我现在Windows里面用的是rasphone(系统自带),FreeBSD下面我写了一个ppp的wrapper脚本,这个脚本应该是通用unix-like系统的。
以后要增加达到限制提醒功能,另外多一些配置功能,……
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/64265.aspx
2007年4月3日星期二
Beryl / Compiz / XGL / AIGLX: 新进展
鉴于Xgl的编译困难——没有能够和Mesa共同编译的发布版本,我全面转向AIGLX。新版本的Xorg(7.2)自带了AIGLX,并且默认状态就是激活的。
我原先用git抓下来编译的Xorg,竟然是7.1.99.2,竟然比发布版旧…… 跑起来之后,Xorg会在某个不确定的时刻死掉…… 而且,这个版本就是死活不肯编译 GLX Extension! 就算我 configure 的时候指定 --enable-glx 也没有用。 后来想,既然决定用新的Xorg,干脆用ModularXorg的ports算了。原先是觉得这样弄会很烦,但是也没有别的更简单的办法。
于是就照着FreeBSD wiki里的ModularXorg的方法,先备份ports目录,然后用git抓下新的(大概耗时半小时左右),接着就到ports里的各处安装ModularXorg的各个组成部分,比如xorg-proto,xorg-server,libGL*,libglut,dri,libdrm,xf86-input-mouse,xf86-input-keyboard,xf86-video-ati,还有各个小工具,比如xdpyinfo,iceauth,...
一切OK后,重新配了一下X,顺利进去了。这个X相对git下来那个稳定多了,也有了GLX Extension和Direct Rendering(虽然现在的ports里面的dri不编译glxinfo,glxgears等等,但是可以用git抓下新的Mesa的源代码,然后去progs/xdemos里面编译)。但是这个X没有6.9稳定,比如我切换到命令行再切换回来很容易出问题,而且每次退出基本上都不能正常,总是有"X in free():..."的错误。但无论如何,可以用了。
然后安装了beryl和compiz,原来想着差不多了,但是启动beryl之后…… 就出来那个"white screen of death"了。其实也不是全白,可以转动桌面立方体,弹性窗口效果等等都有,桌面还是蓝颜色的,就是所有的窗口都是白的(还有半透明效果……),没有内容。如果用--use-copy选项启动beryl,能显示内容,但稍有变化就会乱掉,而且速度奇慢(其实不用--use-copy也很慢,但是至少能动),总之就是行不通。
compiz这边,启动的时候显示"no GLXFBConfig for default depth, this isn't work"的错误,而beryl对应的是"no GLXFBConfig for default depth, falling back to visinfo",看来beryl针对这个问题进行了patch。总之就是不能正常使用……
据说这个是glproto从1.4.7升到1.4.8之后导致的一个问题,看来要等更新了……
现在打算去看看beryl的代码,哪里出的问题……
注:beryl是从compiz分离出来的项目,基于compiz的代码,进行了许多改进/创造,目前两个项目正在考虑整合问题。
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/63590.aspx
2007年4月1日星期日
尚未完成: Compiz / Beryl / XGL / AIGLX on FreeBSD
和 Beryl / Xgl / AIGLX 等东西折腾了三天了,还没搞定……
其实说起来很简单:装好各种基础,再装Mesa,然后是Xgl,接着compiz,就可以了。但是Xgl的源代码的编译严重依赖于Mesa的源代码,每次 Mesa有文件上的变化Xgl也要变。但是…… 计划没有变化快…… 最新通过git抓下来的Xgl和Mesa的源代码不能一起编译…… 我常试了各个版本,尚未找到办法……
在网上看见很多安装指南,看来成功编译的不是正好Mesa和Xgl可以共同编译,就是自己做了些小的修正,但是现在的版本差别实在太大……
后来发现新的用git抓下来的Xorg可以和Mesa一起编译,貌似采用了一种更先进的依赖方法…… 于是我试着把它和现在的Xgl整合,但是…… 没有效果……
最后,我终于知道新的Xorg带了一个叫AIGLX的东西,按照www.freedesktop.org上的说法,这个是“Xgl的一个流行的替代品“。目前编译Xorg中……
Compiz倒是很容易编译,就是一直跑不起来,看来一定要跑在Xgl/AIGLX上面……
另一个搞不清楚的是,我编译安装了最新的Mesa(6.5.3 by git),卸掉了ports里的dri和libdrm,也编译安装了新的libdrm,但为什么就是没有direct rendering...
附: 各个版本的Mesa和Xgl的各个不同点
Mesa: 6.5 6.5.1 6.5.2 git cvs Xgl: git cvs
6.5.3 6.5.2
main:
bitset.h No Yes Yes Yes Yes Yes Yes
arrayobj.h No Yes Yes Yes Yes Yes No
mipmap.h No No Yes Yes Yes Yes No
mesa:
array_cache Yes Yes Yes No Yes No Yes
vbo No No No Yes No Yes No
swrast:
s_arbshader Yes Yes Yes No Yes Yes Yes
shader/slang/library:
slang_version.. Yes No No Yes No No Yes
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/63557.aspx
其实说起来很简单:装好各种基础,再装Mesa,然后是Xgl,接着compiz,就可以了。但是Xgl的源代码的编译严重依赖于Mesa的源代码,每次 Mesa有文件上的变化Xgl也要变。但是…… 计划没有变化快…… 最新通过git抓下来的Xgl和Mesa的源代码不能一起编译…… 我常试了各个版本,尚未找到办法……
在网上看见很多安装指南,看来成功编译的不是正好Mesa和Xgl可以共同编译,就是自己做了些小的修正,但是现在的版本差别实在太大……
后来发现新的用git抓下来的Xorg可以和Mesa一起编译,貌似采用了一种更先进的依赖方法…… 于是我试着把它和现在的Xgl整合,但是…… 没有效果……
最后,我终于知道新的Xorg带了一个叫AIGLX的东西,按照www.freedesktop.org上的说法,这个是“Xgl的一个流行的替代品“。目前编译Xorg中……
Compiz倒是很容易编译,就是一直跑不起来,看来一定要跑在Xgl/AIGLX上面……
另一个搞不清楚的是,我编译安装了最新的Mesa(6.5.3 by git),卸掉了ports里的dri和libdrm,也编译安装了新的libdrm,但为什么就是没有direct rendering...
附: 各个版本的Mesa和Xgl的各个不同点
Mesa: 6.5 6.5.1 6.5.2 git cvs Xgl: git cvs
6.5.3 6.5.2
main:
bitset.h No Yes Yes Yes Yes Yes Yes
arrayobj.h No Yes Yes Yes Yes Yes No
mipmap.h No No Yes Yes Yes Yes No
mesa:
array_cache Yes Yes Yes No Yes No Yes
vbo No No No Yes No Yes No
swrast:
s_arbshader Yes Yes Yes No Yes Yes Yes
shader/slang/library:
slang_version.. Yes No No Yes No No Yes
Old Blog Link: http://computer.mblogger.cn/henryhu/posts/63557.aspx
订阅:
博文 (Atom)
评论
# 回复: Project: ReadAsBmp 2008-7-25 3:25 behzad_ahmadpoor666@yahoo.com
评论内容不能为空