从命令行更改显示模式

时间:2015-01-14 21:39:09

标签: c immediate-mode

当天回来尝试从游戏编程书中学习C语。如果我没记错的话,你的游戏“引擎”会做的第一件事就是将显示模式切换为渲染。这涉及到一些asm切换到640x480显示模式(模式13可能?),因此您可以直接绘制到屏幕上。这样的事情。

我的问题是,现代的相当于什么?我有兴趣编写一个类似的命令行程序;进入某种光栅模式供我绘制,但是,我不认为我的程序会在kde,unity,Aqua等某种窗口管理器下运行。

这是OpenGL可以提供的东西(或OpenGL也假设一个窗口管理器)。我提议的程序不是一个游戏,但理想情况下会从一个基本的清晰屏幕开始,我可以绘制基元(2d线,圆圈等)

干杯!

1 个答案:

答案 0 :(得分:1)

现代操作系统不能像程序员那样方便地访问低级图形例程。部分地,这是由于GPU的出现,这使得利用图形硬件比仅拥有CPU时更具挑战性。另一个原因是随着窗口管理器变得越来越复杂,每个操作系统给程序员提供的图形沙箱更受限制。

话虽如此,OpenGL绝对值得一看。它的跨平台,多功能,并自动使用任何可用的硬件(包括显卡)。 OpenGL本身并不直接提供对窗口上下文的访问,但您可以使用OpenGL实用程序库(GLUT)轻松创建窗口上下文。然而,OpenGL是非常低级的,你必须处理帧缓冲区和刷新和位掩码以及各种低级别的废话,如果你以前没有做过,可能会使OpenGL开发成为一场噩梦。

如果我正在开始一个项目,我可能想要一个更强大的图形环境,提供开箱即用的绘图功能和窗口。 SDLSFML都提供了低级图形API,开始时会更加友好。它们都是在OpenGL之上实现的,因此您可以根据需要使用任何OpenGL功能,但是您不必担心一些更繁琐的细节。

作为旁注,如今C可能不是开始使用图形编程的最佳语言。如果您想要一个每天变得更加相关的非常简单的图形环境,您可能想要查看Web必须提供的内容。 JavaScript和HTML5Canvas为绘制图元,图像等提供了一个非常简单的界面。