1
我的問題是不能正確繪製簡單的平面; 我不知道爲什麼我開始時出現錯誤:無效的操作1282. 有人可以檢查嗎?OpenGL 4 GLSL 1282無效操作簡單代碼
我的變量: GLfloat *tab
爲verticies平面 int *tab2
爲indecies
這是我的init funcion:
// kolor tła - zawartość bufora koloru
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
// wczytanie shaderów i przygotowanie obsługi programu
program=LoadShaders("shader.vert","shader.frag");
//Vertexy
//VertexArrayID;
glGenVertexArrays(1, &VertexArrayID);
glBindVertexArray(VertexArrayID);
//Verticies;
glGenBuffers(1, &Verticies);
glBindBuffer(GL_ARRAY_BUFFER, Verticies);
glBufferData(GL_ARRAY_BUFFER,foo*sizeof(GLfloat), tab, GL_STATIC_DRAW);
unsigned int m_ciezarkow[]={0,1,0};
//Indicies
glGenBuffers(1,&Indeksy);
glBindBuffer(GL_ARRAY_BUFFER,Indeksy);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int)*size, tab2, GL_STATIC_DRAW);
glUseProgram(program);
pos_cam=glGetUniformLocation(program, "camera");
pos_color=glGetUniformLocation(program, "_color");
glUseProgram(0);
這是我畫的功能:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(program);
//my camera
glUniformMatrix4fv(pos_cam,1,GL_FALSE,&cam.matrix()[0][0]);
//Verticies
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, Verticies);
glVertexAttribPointer(0, 3 , GL_FLOAT, GL_FALSE, 0, (void*)0);
//Masa
//glEnableVertexAttribArray(1);
//glBindBuffer(GL_ARRAY_BUFFER, Masa);
//glVertexAttribPointer(0, 3 , GL_FLOAT, GL_FALSE, 0, (void*)0);
//Indicies
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,Indeksy);
glDrawElements(GL_TRIANGLES,size,GL_UNSIGNED_INT,(void*)0);
glUseProgram(0);
glDisableVertexAttribArray(0);`
我會開始找出哪條線給你的錯誤。如果您將調用移至'glGetError()'到代碼中的不同位置,您是否可以找出確切的線? – user1118321
第一次循環繪製函數後出現此錯誤。 –