| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2485 人关注过本帖
标题:我也冒个泡吧:显卡与显示器的编程接口
只看楼主 加入收藏
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
 问题点数:0 回复次数:9 
我也冒个泡吧:显卡与显示器的编程接口
好久没上了,看倒JIG都发表连载了,心里痒痒
这个是个比较接近硬件的问题,供有编程经验的人员参考吧。
网络不稳,分开发
搜索更多相关主题的帖子: 泡吧 接口 显示器 
2008-01-23 23:43
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
通常显卡的编程接口比较出名,就是VBE,里面记载了该显卡的详细技术参数。通过调用int 10h中断,可以读出这些基本信息,其中重要的有:
该显卡支持的显示模式。(这里简写为模式a,代表所有的合法模式)
还有OEM信息等,可以读出来显摆一把
设置的花样就很多了,常用的有两个;
1,设置屏幕为制定的分辨率,色深,例如1024*768,16位色
2,在1的基础上,进行更详细的设置

2008-01-23 23:54
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
这里说的更详细设置,意思有两个:
一个是打开线性内存模式,这个在32位操作系统里几乎是100%要干的,好处不多说了,总之太好了;
另外一个是控制显示器,例如开始扫描位置,结束扫描位置,点时钟,垂直刷新频率等。哈哈两眼放光了吧,刷新率唉,你是不是早就想知道啊。。。

2008-01-23 23:59
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
既然是控制显示器,那么必定要跟显示器的编程接口打交道了,显示器的编程接口是EDID
这个也可以有标准文档查的。
基本上,了解EDID只有一个目的,就是把显示器的详细参数读出来。这个可以通过int 10h中断,0x 4f15读出,标准序列是128字节。这128字节足够我们好好的喝一壶了。
在这里面记录了显示器支持的所有模式,包括分辨率,色深,对应刷新频率等(记做模式b)

2008-01-24 00:09
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
所以要想深入的控制显示系统,就要把模式a和模式b对比一下,找到最合适的显示模式。
例如要调整刷新频率,就要根据分辨率,色深,对应刷新频率来计算点时钟(piexl clock)。
这一套东西有GTF标准算法,不是随便写个数值就可以的。
用生成的数值构造CRTC,然后调用int 10h设置屏幕模式,根据返回值就可以知道是否初始化成功了。
这里要注意的是,设置刷新频率,打开线性内存等,需要VBE3。0的支持。

2008-01-24 00:17
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
通常2000年以后出产的显卡,都支持VBE3。0,但是很多厂商做的不规范,基本都直接支持DX去了,我的readon 9550就报告是VBE2。0
845g芯片组更气人,基本上改SVGA都黒屏,而且由于驱动程序的关系,其显存页一般是16kb的。。。。
所以在测试相关程序时,还是准备好dosbox吧

2008-01-24 00:22
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
大家加油哈,到时我给整理成一本册子出来,呵呵。
2008-01-24 08:38
jig
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:530
专家分:242
注 册:2005-12-27
收藏
得分:0 
顶~~!严重的顶,终于发出来了?哥哥,给点代码吧。

个人网站 -  http://.h001.
2008-01-24 08:45
侯伟峰
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-27
收藏
得分:0 
怎么没有了,期待继续。
2008-01-27 15:47
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
具体的讨论早就有了:
http://bbs.
相互补充吧

2008-01-27 19:02
快速回复:我也冒个泡吧:显卡与显示器的编程接口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014358 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved