原生图形卡功能

时间:2011-12-02 13:15:47

标签: c++ c graphics assembly

如果我理解正确,图形卡被编程为显示2D和3D图形,并且这些卡具有本机功能,但由于这些功能已经过时且难以使用,我们不使用驱动程序,这使得程序员的生活更轻松。

现在,我的问题是,如果有一些本机图形卡功能教程,如果它们是通用的,它可以在每个图形卡上工作,或者像ASM语言那样不同。如果有教程,我可以使用C语言或C ++,或者我需要知识吗?

3 个答案:

答案 0 :(得分:6)

GPU的编程方式(至少是高级功能)通常是通过MMIO(如在,虚拟存储器中的地址对应于GPU中的寄存器而不是实际的DRAM),或者更常见的是通过命令缓冲区(例如,一块内存用于存储GPU的命令,GPU按顺序读取。

现在,这些命令和寄存器非常依赖于硬件(即使在单个硬件供应商中):请参阅示例ATI R600寄存器。它们根本不是“通用的”

这些类型的接口是驱动程序开发人员用来实现典型程序使用的DirectX和OpenGL API的。

该级别编程的“教程”的最佳来源可能是linux中的开源驱动程序。

答案 1 :(得分:3)

有一个很好的理由,现在有更多标准化的方式与计算机中的图形子系统进行对话。除非你有一个特定的平台,否则我建议你坚持使用标准的API。通过OpenGL或DirectX。

答案 2 :(得分:1)

  

如果我理解正确,则显卡已编程显示   2D和3D图形和这些卡具有原生功能,但是因为   这些功能已经过时且难以使用,我们不使用驱动程序   使程序员的生活更轻松。

在某种意义上说,虽然没有过时,但它完全是关于抽象的。

网上有几个教程,例如OpenGL 是nehe.gamedev.net DirectX也有很多教程 使用您最喜欢的搜索引擎虽然OpenGL具有很大的优势 便携式。

通常,您可以使用C或C ++,如果您不需要知道任何ASM 没有一些极端的要求。