首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >win32汇编语言编程图形卡

win32汇编语言编程图形卡
EN

Stack Overflow用户
提问于 2013-03-22 18:05:24
回答 3查看 1.7K关注 0票数 0

我目前正在学习Windows7上的汇编程序,我想做一个游戏(仅用于教育目的)。我找到了一个关于如何在DOS上用汇编语言编程VGA的资源,使用模式13h。这让我开始思考:有没有一种方法可以不使用高级图形库直接在Windows7中对图形卡进行编程?如果这不是一个选择,你能用汇编的图形库来写图形程序吗?

提前谢谢你,

RileyH

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-23 02:20:42

如果您不需要高级图形库,请将自己限制在一个图形库中,比如SetPixel();这几乎就是int 13H提供的服务级别。不,这是不可能使用int 13H或直接在视窗的硬件工作。而且你也不会想要VGA模式--对于每一块明智的现代图形卡来说,这都是一个巨大的性能下降。

你可以在汇编语言中编写任何你想要的东西,但这是没有意义的;调用堆栈的顶部通常不是瓶颈所在的地方。至少对于2D游戏来说不是这样。

因此,学习GDI和/或DirectX。不要使用汇编,除非你知道你必须这样做。程序集不适用于教育项目。

票数 0
EN

Stack Overflow用户

发布于 2013-03-22 18:16:02

由于Windows在保护模式下运行,因此您不能从用户模式直接访问硬件资源。包括显卡在内的所有硬件资源只能从内核模式模块(即驱动程序)访问。如果您需要从用户模式访问,则需要寻址您的卡的驱动程序以执行请求的操作。它的接口不仅仅是发送您想要使用的汇编命令,还包括一组已定义的公开函数。高级图形库可能隐藏了了解此接口及其用法的需要。对图形库进行寻址完全依赖于特定的库定义和(同样)公开的接口。基本上,它应该可以从任何语言寻址,包括汇编语言。

票数 0
EN

Stack Overflow用户

发布于 2013-03-22 18:18:00

正如你提到的模式13h,我假设你想做2D游戏。你可以自己处理屏幕缓冲区,以你选择的任何格式(256色RGB,调色板,24位ARGB,等等),然后通过一个更高级的库,如libSDL,甚至是Windows中的GDI来“渲染”它。我不推荐直接使用显卡(非常复杂)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15567579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档