OpenGL 4 GLSL 1282无效操作简单代码

OpenGL 4 GLSL 1282无效操作简单代码,opengl,glsl,shader,Opengl,Glsl,Shader,我的问题是画不好简单的平面; 我不知道为什么一开始就出现一个错误:无效操作1282。 有人能检查一下吗 我的变量: 垂直平面的GLfloat*选项卡 int*tab2用于索引 这是我的初始化函数: // kolor tła - zawartość bufora koloru glClearColor( 1.0f, 1.0f, 1.0f, 1.0f ); // wczytanie shaderów i przygotowanie obsługi programu program=LoadShad

我的问题是画不好简单的平面; 我不知道为什么一开始就出现一个错误:无效操作1282。 有人能检查一下吗

我的变量: 垂直平面的
GLfloat*选项卡
int*tab2
用于索引

这是我的初始化函数:

// 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);`

这里有一个错误:

//Indicies
glGenBuffers(1,&Indeksy);
glBindBuffer(GL_ARRAY_BUFFER,Indeksy);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int)*size, tab2, GL_STATIC_DRAW); 

您将
indexsy
绑定为
GL\u数组\u缓冲区
,但它应该是
GL\u元素\u数组\u缓冲区
。对于您的代码,可能有0绑定为索引缓冲区,该目标的
glBufferData
将因
GL\u INVALID\u操作而失败

这里有一个错误:

//Indicies
glGenBuffers(1,&Indeksy);
glBindBuffer(GL_ARRAY_BUFFER,Indeksy);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int)*size, tab2, GL_STATIC_DRAW); 

您将
indexsy
绑定为
GL\u数组\u缓冲区
,但它应该是
GL\u元素\u数组\u缓冲区
。对于您的代码,可能有0绑定为索引缓冲区,并且该目标的
glBufferData
将因
GL\u INVALID\u操作而失败

我将首先计算出哪一行给了您错误。如果将对
glGetError()
的调用移动到代码中的不同位置,您能找出准确的行吗?我在第一个循环绘制函数后得到此错误。我将首先找出哪一行给您带来了错误。如果您将对
glGetError()
的调用移动到代码中的不同位置,您能找出准确的行吗?我在第一个循环绘制函数后得到这个错误。我爱你,伙计!我失去了2个小时的生命,可能是因为我从早上就开始编码;我爱你,伙计!我失去了2个小时的生命,可能是因为我从早上就开始编码;