0
轉換爲cocos2d的V3和該代碼不會產生圖紙:cocos2d的V3調用glDrawArrays沒有工作
[_shaderProgram use]; //for V2 this was [shaderProgram_ use];
ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color);
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, lineVertices);
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, colorVertices);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 6);
爲什麼這個代碼不工作V3?該代碼是從CCScene的繪製方法中調用的。任何幫助非常感謝。
更新:通過此代碼之前調用ccDrawPoint發現局部的解決方法(繪製一個小的隨機點)。然後glDrawArrays繪製正確的形狀(讀取我的lineVertices數組),但忽略我的colorVertices數組。我怎樣才能讓glDrawArrays使用我的colorVertices數組? (此代碼的工作之前,我轉換爲V3)
約翰感謝您的答覆。但是,當我按照您的建議使用宏CC_NODE_DRAW_SETUP()時,它會錯誤地顯示錯誤'沒有爲節點設置着色器程序:'你知道如何解決? –
你需要做的是設置你的着色器程序 - Cocos2D有一些標準的取決於你在做什麼。當你只是設置位置和顏色,你可以使用:'self.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionColor]' – Johan
約翰感謝我的調用glDrawArrays工作。在多次調用glDrawArrays之前,我在draw方法中使用了這段代碼:self - > _ shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionColor]; CC_NODE_DRAW_SETUP(); –