2016-10-23 55 views
0

我使用OpenGL版本4.5.0和收到此錯誤:glEnableClientState沒有在OpenGL 4.5版宣佈

error: ‘glEnableClientState’ was not declared in this scope 

我已閱讀,glEnableClientState在此版本中已棄用,但我需要編寫代碼兼容用這種方法,因爲這是從類的家庭分配,他們要求我們使用這種方法編寫。有什麼辦法可以讓我在OpenGL 4.5.0中工作嗎?

包括這已經沒有任何影響:

glutInitContextVersion (3,3); 
glutInitContextProfile (GLUT_COMPATIBILITY_PROFILE); 

回答

1
glutInitContextProfile (GLUT_CORE_PROFILE); 

這與您需要做的事情相反。如果您需要兼容OpenGL功能,那麼您必須使用GLUT_COMPATIBILITY_PROFILE

但是:

error: ‘glEnableClientState’ was not declared in this scope

這表明OpenGL loading library你使用甚至不聲明此功能。這意味着您需要轉移到可以公開兼容性配置文件OpenGL函數的文件。

+0

我的錯誤!我編輯了這個問題。謝謝。 –

+0

我安裝了'glew1.6'和'glew2'。我怎樣才能用C++導入以前的版本? '#include '似乎在導入'glew2'。 –

+0

@Mario:他們都應該有這個功能,所以目前還不清楚問題是什麼。 –

1

glEnableVertexAttribArrayglVertexAttribPointer是 「現代」 替代glEnableClientState/glVertexPointer。自GL 2.0以來,新的通用變體已經可用。

+0

噢,我假設我的代碼示例來自版本3.我需要使用此方法,因爲它是家庭分配,他們要求我們使用它寫入OpenGL。謝謝,我編輯了這個問題。 –