web-dev-qa-db-ja.com

なぜOpenGLの代わりにSDLとOpenGLを使用するのですか?

しばらくの間、SDL2とOpenGL(glfw.hまたはglut.h)を組み合わせている人を見てきました。いくつかの調査を行ったところ、OpenGLでSDL2が実行されていることがわかりました。では、なぜこの2つを組み合わせるのでしょうか。一部の人々は、ウィンドウを作成するためにSDL2を使用し、他のすべてのためにOpenGLを使用する方法について話しましたが、OpenGLもウィンドウを作成できるため、それは意味がありません。

GLFWwindow *window = glfwCreateWindow(WIDTH, HEIGHT, "Opengl Tutorials", NULL, NULL);
glfwMakeContextCurrent(window); // Cause OpenGL to work on this window

glfwSetKeyCallback(window, KeyCallback); // Callback to handle key events
glfwSetCursorPosCallback(window, MouseCallback); // Callback to handle mouse motion events
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);

2DアニメーションにSDL2を使用していると言う人もいますが、OpenGLでも使用できるため、これは意味がありません。 SDL2がOpenGLを使用する前に言ったように、SDL2ができること、OpenGLができること、SDL2はOpenGLのラッパーです。では、なぜ人々はまだSDL2とOpenGLを一緒に追加するのでしょうか?たとえば、これら。

何か利点はありますか?何か足りないものはありますか?私は困惑している。 SDL2がラッパーにすぎないのに、なぜSDL2とOpenGLを組み合わせるのですか?

これはすべてC/C++の場合であり、混乱が解消される場合があります。私がOpenGLを参照するとき、それができるかどうかわからないので、OpenGLだけではなくglut.hまたは/およびglfw.hを参照しています。

3
Nfagie Yansaneh

OpenGLには、グラフィックコンテキストを操作する関数のみがあり、それ以外は何もありません。このようなコンテキストを取得するには、少なくともプラットフォーム統合ライブラリが必要です。しかし実際には、もちろん、入力処理などのより多くの機能が必要です。 GLFW、GLUT、SDL2は、このような追加機能を取得するための異なる方法です。 SDL2には、オーディオとリソースの読み込みも含まれているため、素晴らしいです。

12
Sebastian Redl

なぜかと思っていました。しかし、はい、SDL2を使用します。これは、sound.keyboardとサウンド処理用に見つけたジョイスティックに最適なAPIがあるためです。しかし、SDL2でウィンドウを作成して3Dを描画できますが、GLFWの方が簡単に動作するようです。 2dと3dをSDL2と一緒に描画しようとしていますが、うまくいきませんが、始めたばかりです。

0