2017-04-09 7 views
0

私はglfwsfmlの両方を使ってopenglを学習しており、OpenGLバージョンのハードルを満たしています。XcodeのOpenGLバージョン - glfw vs sfml

私はコードを実行すると:sfml

Renderer: Intel(R) Iris(TM) Graphics 6100 
OpenGL version supported: 2.1 INTEL-10.22.25 
glsl: 1.20 

printf ("Renderer: %s\n", glGetString (GL_RENDERER)); 
printf ("OpenGL version supported: %s\n", glGetString (GL_VERSION)); 
printf("glsl: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION)); 
glfw

Renderer: Intel(R) Iris(TM) Graphics 6100 
OpenGL version supported: 4.1 INTEL-10.22.25 
glsl: 4.10 

を、それがxcodeプロジェクトで私の設定であるか、それがデフォルトのフレームワークの設定です?私が変更できる方法はありますsfmlOpenGL 4.1と私はglslも4.1得るように?

glfwは、この設定を持っている:

glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 4); 
glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 1); 

sfmlは似たものを持っていますか?

答えて

2

SFMLでは、sf::ContextSettingsを使用してOpenGLのバージョンを指定できます。

sf::ContextSettings settings; 
settings.depthBits = 24; 
settings.stencilBits = 8; 
settings.majorVersion = 4; 
settings.minorVersion = 1; 
settings.attributeFlags = sf::ContextSettings::Default; 

あなたはそれを作成すると、あなたがsf:Windowに渡し:

sf::Window window(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, settings); 

ボトムラインはSFMLは後方互換性のコンテキストを必要とすることです。内部的にはSFMLはいくつかのレガシーOpenGL機能に依存しているためです。

SFMLをSFML固有のもので使用していない場合は、その後、GLFWの使用を継続することをお勧めします。

+0

'settings'を' window'に入れることで魔法ができます。私はインターフェイスグラフィックに 'sfml'を使いますが、少なくとも現時点では' glfw'でそれを扱うのは難しいです。 – sooon

+0

SFMLは任意のOpenGLコンテキストバージョンで使用できますが、SFMLのグラフィックスモジュールの2.xバージョンでは固定機能パイプラインのみを使用します(今後の3.0で変更予定)。あなたが自分の絵を描いている限り、問題はないはずです。 – Mario

関連する問題