弥补OpenGL和操作系统之间的差距 我对C++中的独立游戏开发感兴趣,我想用OpenGL 3来做。我现在面临的主要问题是决定如何弥合OpenGL和操作系统之间的鸿沟,因为我打算跨Windows、Linux和Mac进行所有开发。我是否应该编写自己的顶层,使用特定于平台的代码进行窗口管理、I/O等。?我应该使用跨平台库,如SDL或FreeGLUT吗?这些会牺牲性能吗

弥补OpenGL和操作系统之间的差距 我对C++中的独立游戏开发感兴趣,我想用OpenGL 3来做。我现在面临的主要问题是决定如何弥合OpenGL和操作系统之间的鸿沟,因为我打算跨Windows、Linux和Mac进行所有开发。我是否应该编写自己的顶层,使用特定于平台的代码进行窗口管理、I/O等。?我应该使用跨平台库,如SDL或FreeGLUT吗?这些会牺牲性能吗,c++,opengl,cross-platform,C++,Opengl,Cross Platform,顺便说一句,我没有做太多的Linux编程。 有关于如何在OpenGL中使用X Window服务器的教程吗?我使用的是(C++SDL),但FreeGLUT和Allegro都很好。它们提供基本的窗口创建、输入处理等功能(取决于您的选择)。我不认为它们中的任何一个天生就是跨平台的(它们有不同的Windows、Mac、Linux版本) 就性能而言,仅SFML的窗口包(创建窗口和设置openGL上下文)并不会降低任何速度。但我在使用它的图形包时遇到了性能问题 我自己在linux编程上帮不了你,但是快速的谷

顺便说一句,我没有做太多的Linux编程。 有关于如何在OpenGL中使用X Window服务器的教程吗?

我使用的是(C++SDL),但FreeGLUT和Allegro都很好。它们提供基本的窗口创建、输入处理等功能(取决于您的选择)。我不认为它们中的任何一个天生就是跨平台的(它们有不同的Windows、Mac、Linux版本)

就性能而言,仅SFML的窗口包(创建窗口和设置openGL上下文)并不会降低任何速度。但我在使用它的图形包时遇到了性能问题

我自己在linux编程上帮不了你,但是快速的谷歌搜索让我得到了类似这样的结果

我使用(C++SDL),但FreeGLUT和Allegro也都不错。它们提供基本的窗口创建、输入处理等功能(取决于您的选择)。我不认为它们中的任何一个天生就是跨平台的(它们有不同的Windows、Mac、Linux版本)

就性能而言,仅SFML的窗口包(创建窗口和设置openGL上下文)并不会降低任何速度。但我在使用它的图形包时遇到了性能问题

我自己在linux编程上帮不了你,但是快速的谷歌搜索让我得到了类似这样的结果

我是否应该编写自己的顶层,使用特定于平台的代码进行窗口管理、I/O等

不。如果你没有这方面的经验,你就不应该这样做

我应该使用跨平台库,如SDL或FreeGLUT吗

当然

这些会牺牲性能吗

不。对于OpenGL实现来说,使用哪种方式创建窗口和上下文并不重要。对于OpenGL实现来说,这一切都是一样的

使用OpenGL的X窗口服务器

FTB/真菌在几年前就在X11示例上发布了最简单的OpenGL。不久前,我对其进行了扩展,以支持透明窗口合成。当然,这不是很好移植(在不使用X11的情况下使用它,您仍然可以将其移植到Windows并在运行Windows的X11服务器上使用)

我是否应该编写自己的顶层,使用特定于平台的代码进行窗口管理、I/O等

不。如果你没有这方面的经验,你就不应该这样做

我应该使用跨平台库,如SDL或FreeGLUT吗

当然

这些会牺牲性能吗

不。对于OpenGL实现来说,使用哪种方式创建窗口和上下文并不重要。对于OpenGL实现来说,这一切都是一样的

使用OpenGL的X窗口服务器

FTB/真菌在几年前就在X11示例上发布了最简单的OpenGL。不久前,我对其进行了扩展,以支持透明窗口合成。当然,这不是很好移植(在不使用X11的情况下使用它,您仍然可以将其移植到Windows并在运行Windows的X11服务器上使用)


我可以在Windows、OS X和Linux上轻松编译和运行我的引擎。使用GLFW、GLEW、GLM、OpenGL3.2内核(由于OSX的限制,有一些3.3扩展)、BASS或FMOD进行声音处理。只是不要做任何特定于平台的事情。OSX通常运行良好,但Linux可能会因为驱动程序错误而成为一件麻烦事。确保你实际上有一个mac和linux的盒子来测试你的东西。这需要一些额外的努力。这里再次投票支持GLFW/GLEW/GLM组合。简单有效。我可以在Windows、OS X和Linux上轻松编译和运行我的引擎。使用GLFW、GLEW、GLM、OpenGL3.2内核(由于OSX的限制,有一些3.3扩展)、BASS或FMOD进行声音处理。只是不要做任何特定于平台的事情。OSX通常运行良好,但Linux可能会因为驱动程序错误而成为一件麻烦事。确保你实际上有一个mac和linux的盒子来测试你的东西。这需要一些额外的努力。这里再次投票支持GLFW/GLEW/GLM组合。简单有效。