我期待一个类似于Windows API的Linux API.我在Google上看到的只是对Qt和GTK的引用.我真的不需要用OpenGL绘制一个简单的窗口,所以这些库看起来很臃肿供我使用.Qt和GTK用什么来在Linux下创建窗口?有没有更低级别的?
Mar*_*ett 10
X窗口系统通常会绘制图形 - 然后在原始Xlib之上使用Qt或GTK等工具包来提供事件循环,拖放,在鼠标点击上启动应用程序以及所有其他"桌面"内容
直接使用Xlib和opengl相当容易,或者如果你只是想学习opengl,那么过剩提供了显示窗口,处理鼠标/键盘事件等所需的框架.
对于OpenGL,最简单的方法是使用GLUT或SDL.这是使用GLUT的近似示例:
#include <GL/glut.h>
int main (int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutInitWindowPosition(100, 100);
glutCreateWindow("My new window");
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
你真的想避免直接使用Xlib,因为它使用起来非常繁琐.此外,GLUT和SDL使您可以更轻松地将OpenGL应用程序移植到不同的平台.
更新了 2019 年的答案。类 Unix 系统通常使用 X 窗口系统。您可以使用 Xlib 直接使用它,这是低级 API。但您可能需要一个更受欢迎的跨平台解决方案。您可以使用:
GLFW 用 C 语言编写,对 Windows、macOS 和许多使用 X Window 系统的类 Unix 系统(例如 Linux 和 FreeBSD)提供本机支持。
安装后,创建一个窗口:
#include <GLFW/glfw3.h>
.
. //Entry and glfwInit()
.
GLFWwindow* window = glfwCreateWindow(1000, 1000, "MyWindow", NULL, NULL);
glfwMakeContextCurrent(window);
Run Code Online (Sandbox Code Playgroud)