无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 45662|回复: 180
打印 上一主题 下一主题

[发布] grub4dos支持VBE 显示模式的外部命令(阶段性完美版)

[复制链接]
1#
发表于 2011-10-16 20:05:05 | 显示全部楼层
8位颜色需要设置 Palette,本来就是个很落后的技术,应该淘汰。它只是为了兼容以前的 VGA/EGA 等而存在的技术。

新的 15/16/24/32 位不需要设置调色板就能直接使用颜色,这难道不好吗?
回复

使用道具 举报

2#
发表于 2011-10-16 23:00:10 | 显示全部楼层
你说得对,Roy。

我的意思还有一层:8 位根据 “下标” 来寻找真正的颜色,这 “拐弯” 了,不爽。这个 “不爽”,就转换成 “落后” 了。

而 Direct Color 是 “直接着色”,不需要利用下标这个 “中转站”,是最简单的着色方案。简单就是 “美”。
回复

使用道具 举报

3#
发表于 2011-10-17 23:24:39 | 显示全部楼层
@chenall

不幸的是,grub4dos 中的 splashimage 图片,就是按照你所说的最后一句话来处理的。

目前可以先考虑国际化问题,暂时不要考虑背景图片问题。
回复

使用道具 举报

4#
发表于 2011-10-18 04:03:02 | 显示全部楼层
原帖由 chenall 于 2011-10-17 23:44 发表
明天再试试看看把UNIFONT的字库移植过来。。。



chenall,你的 unifont 字库全不全?如果不全的话,你暂缓一下,先做一做别的工作。

我正在研究这个非常全的字库: http://unifoundry.com/unifont-5.1.20080820.hex

它的主页上有详细说明: http://unifoundry.com/unifont.html

你也可以参考一下。

有了这么一个完整的字库,全球的语言都可以支持了。

我正在考虑实现这一目标的路线图。

回复

使用道具 举报

5#
发表于 2011-10-18 17:03:09 | 显示全部楼层
有可能不支持

800x600x24

而支持 32 位色深:

800x600x32

用时空上我制作的 vesa.zip 测试一下,或者用 vbeprobe 来显示一下,就知道是否支持 800x600x24 了。
回复

使用道具 举报

6#
发表于 2011-10-18 18:13:04 | 显示全部楼层
VBE 规范已经指出,有些厂家的实现只支持 24 位,而有些则只支持 32 位。软件必须同时支持 24 和 32 位才能保持良好的兼容性。

支持 24 位的主要理由是节约内存。支持 32 位的主要理由是运算速度快。因此,有的厂家选择 24 位,有的选择 32 位。而把 24 和 32 位同时都选择的厂家,应该也有,但我还没有遇到过这种情况。
回复

使用道具 举报

7#
发表于 2011-10-18 22:54:26 | 显示全部楼层
越新的电脑,就越是要支持 24 位/32位颜色。因为内存便宜了,用户需求也高了。

老式的电脑(古董机),用用老版本的 grub4dos 也就行了,没必要非得跟上 grub4dos 的新版本。老爷机运行 XP 也困难呢。运行 Win7、win8 就更没有希望了。运行 Linux 也没太大的乐趣,因为 Linux 也需要一个档次相对较好的配置。因此,老版本的 grub4dos 足够用了。

chenall 应该首先尝试 32 位,只有当 32 位不支持的时候,才退回到 24 位。这样更合理,因为毕竟 32 位是最好的模式。

假如机器支持 24/32 位颜色深度,放着不用,转而去用更低的 15/16 位颜色,这是不是应该算是 “脑子有问题”?

顺便说,grub4dos 的老版本,连 8 位都不支持。只支持 4 位的颜色深度。这就是通常所说的 16 色。

只有像目前测试版本这样,用 VESA 编程,才开始支持 8 位以上的颜色(即 256 色或更多)。但时代变化太快了,我们早都该实现 8 位以上的支持了,而迟至今日才开始考虑。而我们这个时代,硬件已经很超前了,软件却依旧停留在远古时代。比如,CPU 早都 64 位了,但操作系统以及外围工具却盛行 32 位,致使 64 位的 Win7 在普通用户中难以普及。

我们这个时代,已经没有不支持 24 位以上“真彩色” 的设备了。

[ 本帖最后由 不点 于 2011-10-18 23:06 编辑 ]
回复

使用道具 举报

8#
发表于 2011-10-20 17:26:02 | 显示全部楼层

回复 #66 zhaohj 的帖子

难道目前VBE使用22M处的内存?
我还是老实点,把临时内存全改成32M以上处。


你很不 “老实”。新版本保留 32M 供内核使用,你不可以靠近 32M。你要远离 32M,比如,用 64M 以后的内存。

在 32M 处,将是外部程序代码的 “进程空间”。你可不要与此冲突了哟!
回复

使用道具 举报

9#
发表于 2011-10-20 18:18:33 | 显示全部楼层
我刚刚把 VBE 的基础平台准备好。你就不要太过于性急了吧。VBE 的事,慢慢来。chenall 已经做了不少工作,将来可以直接把 chenall 的代码用上。

我准备在现有的 graphics 模式中,实现 VBE。就是说,把 VBE 作为 graphics 里面的一个(子)模式,就像 graphics 现有的 0x12 和 0x6A 那样。

实现起来似乎也不太难。
回复

使用道具 举报

10#
发表于 2011-11-7 09:16:15 | 显示全部楼层

回复 #110 chiannet 的帖子

gfxmenu 使用常规内存 0x50000 以上的一部分空间,正好与 chenall 的 vbe 相冲突。

将来内核中实现 vbe 之后,就不会发生冲突了。
回复

使用道具 举报

11#
发表于 2011-11-9 14:41:41 | 显示全部楼层

回复 #123 hotdll 的帖子

我在等着你报告结果呢,怎么完全没有下文了?

我这里也出现了相同的情况,即,直接写 LFB 内存就很慢很慢。

搜索 Internet,也没有找到满意的答案。
回复

使用道具 举报

12#
发表于 2011-11-13 09:26:18 | 显示全部楼层
现在的 color 命令使用 64 位的颜色数值:低 32 位表示前景色,高 32 位表示背景色。

你的 color 命令中,高 32 位是 0,就是说,背景为黑色:
color 0xC9C9C9 0xFF4A4A 0xFF4AFF 0x00366D

64位颜色格式:0xFFRRGGBBffrrggbb

建议最高的字节设置为 FF,以免被系统当作旧的 16 色来处理了。
回复

使用道具 举报

13#
发表于 2011-11-13 13:07:32 | 显示全部楼层
@2011Tduy09

The unifont page is here: http://unifoundry.com/unifont.html

You should down load this one: http://unifoundry.com/unifont-5.1.20080820.hex
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-14 14:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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