我有現有的代碼(OS X,OBJ-C,NSOpenGLView)調用:如何解決我棄用的gluOrtho2D()?
gluOrtho2D(0.0, newSize.width, newSize.height, 0.0);
它正常工作,只是我得到一個棄用功能警告,敦促我使用GLKMatrix4MakeOrtho()代替。好的 - 但是怎麼樣?我似乎甚至找不到該功能的存在;我包括:
#import <OpenGL/gl.h>
#import <OpenGL/glu.h>
和Xcode不知道該名稱的功能。我的OpenGL參考手冊沒有提及它,甚至沒有任何提及GLK前綴的功能;那裏發生了什麼?然後如果我設法找到這個函數,並且包含正確的頭文件和鏈接,而不是我需要鏈接的東西,那接下來是什麼 - 對GLKMatrix4MakeOrtho()來說,和我的gluOrtho2D()函數做同樣的事情會是什麼?我試着谷歌搜索,並發現許多點擊顯示其他人得到相同的棄用警告,但我找不到任何人說如何解決它...
上下文是: glViewport(0,0,newSize.width,newSize.height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,newSize.width,newSize.height,0.0); 上一位評論員@duskwuff表示GLKMatrix4MakeOrtho不會「插入」代碼這樣的代碼,我需要將代碼升級到OpenGL 3.2以使其工作。你同意嗎?我不明白你對他答覆的評論;我對OpenGL很陌生。 (有沒有辦法讓我的評論格式更好?) – bhaller
我不同意以前的答案的那部分。你應該可以用上面的'GLKMatrix4MakeOrtho()'/'glLoadMatrix()'來代替'glLoadIdentity()'/'gluOrtho2D()'調用。當然有相應的論點。別擔心我的其他評論,那更多是關於技術性的。 –
好的,我切換到'GLKMatrix4MakeOrtho()'/'glLoadMatrix()',它看起來像沒有其他修改我的代碼工作。警告消失了。唯一的問題是它看起來像函數被命名爲'glLoadMatrixf()',而不是'glLoadMatrix()' - 或者我誤解了?無論如何,謝謝! – bhaller