跨平台窗口库 - 集成OpenGL和DirectX

时间:2010-12-23 04:12:57

标签: c++ opengl cross-platform directx

我即将开始研究自定义跨平台引擎(c ++),它需要能够支持OpenGL和DirectX的最新版本。在编译之前选择渲染器。

我正在寻找跨平台库来处理窗口创建和输入,它们也可以处理DX和OGL的最新实现 - 最好是低调,最重要的是:快速。有什么建议吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

SDL可能是最常用的跨平台库。

答案 1 :(得分:3)

您应该查看SFML(简单快速媒体库)。虽然SDL由于其年龄较大而更为人所知,但SFML在功能和设计方面更为丰富,尽管只有几年的历史。它基本上可以被描述为更新,更现代和面向对象的SDL(它是C ++; SDL是C)。

简要介绍一下它的功能:

  • 跨平台(Windows,Mac OS X, 和Linux)。
  • 有与系统相关的东西的模块 (事件,计时器等),窗口, 视频(硬件加速的OpenGL 2D 图形),音频和网络。
  • 支持所有必要和主流 图像和音频文件格式,用 MP3的显着例外是由于 许可问题(虽然这是 作为扩展名提供)。
  • 还支持字体(FreeType2是 综合)和许多其他事情。

我将它用于我需要的不仅仅是命令行的所有项目,我喜欢它。我强烈推荐它。

它应该能够为您的想法提供良好的基础。

答案 2 :(得分:2)

答案 3 :(得分:0)

Irrlicht

Ogre

两者都快速而强大。如果我的意图正确,那么它们非常适合游戏。

答案 4 :(得分:0)

OpenGL和DirectX有些相似但却截然不同。 OpenGL的构建旨在将开发人员希望呈现给设备(如果可用)。 DirectX的构思旨在使开发人员可以使用设备的渲染功能。

由于存在差异,您最终会实施两次所有内容。操纵窗口是一个很小的问题。您不需要完全相同的窗口,因为您将使用其中一个或另一个来渲染它们。

最好使用不同的东西来创建窗口(例如用于OpenGL的SDL和用于DirectX的MS API)并将其包装在通用接口之后。然后在编译之前也会选择“东西”。如果MS API不可用,那么你也缺少DirectX,所以不需要让它可移植。