如何用C/C++控制显存

biyanzhong 2002-10-27 05:48:01
我是个初学者.
我正在用BC++3编一个小游戏(练手)请高手指点一下如何控制显存.

我准备在 800 X 600 256 color 分辨率下开始.
我的显示卡SIS6326 4M 我想可以分 8个显示页吧.
但我不会控制显存.
占用您一点时间,教教我.
谢谢!
...全文
610 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
潘李亮 2003-03-29
  • 打赏
  • 举报
回复
显卡的指令在nVidia公司里肯定有的.他给不给你我就不知道了.按我目前的水平来说,我已经想不出还有其他的办法来使用硬件加速了.
给你提醒一下.在nVidia公司的开发包里有很多有用的东西,你可以去看看,如Vertex Shader的编译器等.
alextooter 2003-03-29
  • 打赏
  • 举报
回复
to : Nhsoft(我不是高手)
佩服,显卡 的硬件指令我不知从那儿得到,兄弟努力吧。
zzwu 2003-03-28
  • 打赏
  • 举报
回复
其实,你看一下Borland在TC(包括TC1-TC3)中提供的演示程序BGIDEMO.C(或CPP)就全解决问题.
guanxg 2003-03-27
  • 打赏
  • 举报
回复
云云高手,赞叹不已!
lingjingqiu 2003-03-25
  • 打赏
  • 举报
回复
why not direct x? or cg?BT!!
潘李亮 2003-03-24
  • 打赏
  • 举报
回复
楼上的同志你好,肯定可以使用纹理现存和硬件加速。
椐我所知:
该有以下的步骤:
进入 32 位的保护模式。
使用 显卡 的硬件指令 来操作 GPU。
然后 你就可以为所欲为了。

就是说你要自己实现操作系统的部分功能。但是像任务切换是没有必要的了。
最困难的是,你的程序只能针对某个类型的显卡。
OpenGL DirectX其实是都需要驱动程序的支持的。驱动程序的作用就是屏蔽各中不同的 GPU之间的差别。


以上是我最近在研究 nVidia的 GPU的时候 得到的结论。只是我的猜测而已。
alextooter 2003-03-23
  • 打赏
  • 举报
回复
to : Nhsoft(我不是高手)
对了。我不知道如何在Dos 如何控制纹理现存,也不知道如何开启硬件加速(Bump Mapping等)


仁兄是真不知道还是假不知道,除非自己写相应的显卡的驱动,“开启硬件加速(Bump Mapping等)”
这是不可能实现的,硬件加速是针对directx、opengl而言的。
如有误,请大家指正。
biyanzhong 2003-03-22
  • 打赏
  • 举报
回复
是的,我试过.
bm1408 2003-03-22
  • 打赏
  • 举报
回复
进来看看!
不行,全是高手,走了————————
zzwu 2003-03-21
  • 打赏
  • 举报
回复
DOS下能使用任何分辨率,任何颜色的图形模式。
JustinLee_PB 2003-03-20
  • 打赏
  • 举报
回复
接上面的问题,想到的问题,DOS下只能使用256色吗。
如果更多颜色呢?
twinsant124 2003-03-19
  • 打赏
  • 举报
回复
power on right direction for life limit.
biyanzhong 2003-03-19
  • 打赏
  • 举报
回复
开始学windows.............
linux..............
unix...............

guoyin007 2003-03-18
  • 打赏
  • 举报
回复
每个成功的人都是站在巨人身上,他才会看得更远
老牛说的话。

windows底层的东西,包括dos的东西已经有人帮你做好了,就别操这份心了
zzwu 2003-03-18
  • 打赏
  • 举报
回复
改正:
我知道...
zzwu 2003-03-18
  • 打赏
  • 举报
回复
用知道BC++可实现256色,800*600的编程.我常用BP编写256色各种分辨率(320*200, 640*480, 800*600, 1024*768)的图形软件,我的分子图形软件(见www.zzwu.net)就是用BP编的.

但是,我不知道SIS6326的结构,我最早用的是Tridentde TVGA8900,9400,9750,后来则都改用vesa编准来实现.采用vesa编准的好处在于可以不考虑适配器类型.一旦编好了,在目前的所有显示卡上都可以用.

另外,SIS6326虽有4M显存,而256色800*600用不到512K,似乎可容纳8个页,但这并不一定的,要看硬件的设计是否支持.Trident的显卡对256色的图形模式就不支持多页面.
天堂里的死神 2003-03-18
  • 打赏
  • 举报
回复
众位都是高手,我没有接触过Dos下的图形编程,失去了不少东西,看看《图形程序开发人员指南》等一系列书籍,就像现在对.Net的感觉:
学了设计模式,好像剩下的只有学习
loveghb 2003-03-17
  • 打赏
  • 举报
回复
我看了一下有关图形方面的资料,发现用BC3.1做800*600的图形库肯定是可行的,WATCOM C中也有一些显示的参数,我也看了一些600*480模式的程序,但是还是不知道怎么去控制那么多的显存,我对编游戏也挺有兴趣的,但是困难啊。
不用显存可以用内存,但是自由存储区的容量连64K都不到的。
要命的是一些32位的C编译器很多函数都没有,全要自己写。
我DOWN了一个WATCOM C,连HELP和IDE都没有。
很不方便啊!

llrock 2003-03-15
  • 打赏
  • 举报
回复
《dos游戏开发如门于提高》人民邮电
出版社
biyanzhong 2003-03-15
  • 打赏
  • 举报
回复
非常感谢~!
我会努力的。
也希望有机会向你多学习学习。

加载更多回复(31)
NEO SDK是一个跨平台的免费开源图形软件开发包。它支持基本绘图、多种格式图形显示、鼠标操 作、扩展内存和扩充内存的操作、时钟、音频播放、多种字体的汉字及英文显示等等特性;更激动人心的是, 它可以工作于高分辨率下(比如800X600、1024X768甚至1280X1024);而且,它支持最高24位的各种色深! 并拥有不错的处理速度。NEO中的函数调用接口大部分与Allegro相似,为你的代码向Allegro移植作准备。 NEO开放所有源代码,因为我认为这样更利于让大家发现BUG,利于NEO的成长。希望你能喜欢。 本开发包主要拥有以下特性: 1、支持320X200,640X400,640X480,800X600,1024X768,1280X1024等各种标准分辨率, 以及各种诸如320X240,320X400,512X512等ModeX分辨率; 2、全面支持8位256色,15位32768色,16位即65536色三种色深模式,在Windows等平台下还支持24位色深; 3、齐全的基本的绘图函数,让你轻松绘制象点、线、方、圆等等各种简单的图形; 4、支持多种格式图形的显示,在这一版里,支持BMP、ICO和CUR的显示; 5、支持鼠标操作,并集成一套功能强大高级鼠标控制函数,譬如能够检测双击,还支持使用ICO\CUR 文件作为光标等; 6、拥有一套高级键盘处理函数,用户可以通过安装键盘中断来使用它们; 7、集成时钟控制函数,主要用于游戏开发,你也可以将鼠标与时钟绑定,便于鼠标的操作(和 Allegro相似); 8、在DOS下支持扩展内存和扩充内存的操作,便于开发需要大内存的程序; 9、可以显示多种字体的英文和中文,并支持一些文字特效; 10、拥有基于常规内存、扩展内存、显存、虚拟内存的多套显示内核,执行程序运行时可根据用户机器 的具体环境自动选择最佳的内核,以保证最好的兼容性; 11、支持矩形输出裁剪,让动画等各种显示特效均成为可能; 12、支持类似 Borland graphics.h 中库函数的作图模式,譬如XOR异或模式; 13、兼容 Borland graphics.h 中的大部分函数以方便将原来使用graphics.h的程序移植到NEO中来; 14、强大的错误处理系统,能根据用户的设置决定输出错误信息的方式,譬如直接在屏幕上显示还是 输出到错误日志,或者仅仅只用喇叭报一下警; 15、完备的编译开关组,让你有选择的采用所需的部分功能,减少可执行文件的大小,加快编译速度; 16、强大快速的调色板操作函数,可以实现淡出淡入特效,还能够使用8位色彩分量长的调色板, 还可以实现64级调色板之间的过渡; 17、支持通过声卡播放WAV文件,让你的程序更加绘声绘色; 18、提供了多图形缓冲页架构,并支持高效率的硬件换页机制和滚屏机制; 19、支持诸如翻折,灰度,半透明,模糊,反色,颜色加强等多种图形显示特效; 20、完备的周边辅助程序、示例和各种模板及插件,让你的开发过程更为简单方便; 21、全面支持Borland全系列C\C++编译器及DEV-CPP,部分支持VC++ 1.5编译环境; 你现在所看到的版本,是NEO SDK的最终版本,我决定停止对它的一切开发和维护工作,并不再提供官方的技术支持。
NEO SDK是一个跨平台的免费开源图形软件开发包。它支持基本绘图、多种格式图形显示、鼠标操 作、扩展内存和扩充内存的操作、时钟、音频播放、多种字体的汉字及英文显示等等特性;更激动人心的是, 它可以工作于高分辨率下(比如800X600、1024X768甚至1280X1024);而且,它支持最高24位的各种色深! 并拥有不错的处理速度。NEO中的函数调用接口大部分与Allegro相似,为你的代码向Allegro移植作准备。 NEO开放所有源代码,因为我认为这样更利于让大家发现BUG,利于NEO的成长。希望你能喜欢。 本开发包主要拥有以下特性: 1、支持320X200,640X400,640X480,800X600,1024X768,1280X1024等各种标准分辨率, 以及各种诸如320X240,320X400,512X512等ModeX分辨率; 2、全面支持8位256色,15位32768色,16位即65536色三种色深模式,在Windows等平台下还支持24位色深; 3、齐全的基本的绘图函数,让你轻松绘制象点、线、方、圆等等各种简单的图形; 4、支持多种格式图形的显示,在这一版里,支持BMP、ICO和CUR的显示。在以后的版本中, 还会陆续增加对PCX、GIF、TGA等格式的支持; 5、支持鼠标操作,并集成一套功能强大高级鼠标控制函数,譬如能够检测双击,还支持使用ICO\CUR 文件作为光标等; 6、拥有一套高级键盘处理函数,用户可以通过安装键盘中断来使用它们; 7、集成时钟控制函数,主要用于游戏开发,你也可以将鼠标与时钟绑定,便于鼠标的操作(和 Allegro相似); 8、在DOS下支持扩展内存和扩充内存的操作,便于开发需要大内存的程序; 9、可以显示多种字体的英文和中文,并支持一些文字特效; 10、拥有基于常规内存、扩展内存、显存、虚拟内存的多套显示内核,执行程序运行时可根据用户机器 的具体环境自动选择最佳的内核,以保证最好的兼容性; 11、支持矩形输出裁剪,让动画等各种显示特效均成为可能; 12、支持类似 Borland graphics.h 中库函数的作图模式,譬如XOR异或模式; 13、兼容 Borland graphics.h 中的大部分函数以方便将原来使用graphics.h的程序移植到NEO中来; 14、强大的错误处理系统,能根据用户的设置决定输出错误信息的方式,譬如直接在屏幕上显示还是 输出到错误日志,或者仅仅只用喇叭报一下警; 15、完备的编译开关组,让你有选择的采用所需的部分功能,减少可执行文件的大小,加快编译速度; 16、强大快速的调色板操作函数,可以实现淡出淡入特效,还能够使用8位色彩分量长的调色板, 还可以实现64级调色板之间的过渡; 17、支持通过声卡播放WAV文件,让你的程序更加绘声绘色; 18、提供了多图形缓冲页架构,并支持高效率的硬件换页机制和滚屏机制; 19、支持诸如翻折,灰度,半透明,模糊,反色,颜色加强等多种图形显示特效; 20、完备的周边辅助程序、示例和各种模板及插件,让你的开发过程更为简单方便; 21、全面支持Borland全系列C\C++编译器及DEV-CPP,部分支持VC++ 1.5并还将移植到其它各平台的编译环境; 在NEO的后续版本中,还会增加对图形用户接口(GUI) 的支持,对Alpha效果的 支持等等,让你感受一个强大的NEO SDK! <更多的详细内容请阅读docs文件夹中的教程>

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧