最近剛到SIAT實習,可能要做VR or 3D的播放器開發,具體還不知道是做PC端還是移動端,所以在還沒有明確方向的時候,先開始學習OpenGL。
關於多媒體技術,組裏用的是十多年的老框架,windows的DirectShow,現在好像已經被Media Foundation取代了,集成在windows SDK裏面。這幾天配環境也因爲是老框架,吃了不少苦,網上資料也不多。
關於多媒體播放器開發,如果有相關經驗的,歡迎指導。剛上手,特別迷茫,老的不想用,新的不知道有什麼,在知乎上看了不少經驗,現在勉強先上路。
今天開始研究學習OpenGL,使用的是opengl-tutorial的教程。
參照流程,進行到第二章,繪製頂點三角形的時候,出現報錯。
GLuint VertexArrayID;
glGenVertexArrays(1, &VertexArrayID);
glBindVertexArray(VertexArrayID);
0xC0000005: 執行位置 0x0000000000000000 時發生訪問衝突。
算是比較常見的異常,可能原因:1.空指針或引用 2.內存未釋放
檢查代碼後,嘗試加入判斷語句
GLuint VertexArrayID;
glGenVertexArrays(1, &VertexArrayID);
if (VertexArrayID != NULL)
{
glBindVertexArray(VertexArrayID);
}
仍然報錯
但教程給出的範例代碼卻沒有問題。
經過對比檢查後,發現關鍵是在創建GAO對象前,沒有等待GLEW初始化完畢,因此造成了訪問衝突。
解決方式是在 glewInit() 前加入 glewExperimental = GL_TRUE;