I use OpenGL with vertices and shaders, nothing is displayed on my screen, so I used glGetError for debugging: I have error 1281 (bad value) in one of my buffer called color_array_buffer, here is the section I'm talking about
GLenum error = glGetError(); if(error) { cout << error << endl; return ; } else { cout << "no error yet" << endl; } //no error // Get a handle for our "myTextureSampler" uniform GLuint TextureID = glGetUniformLocation(shaderProgram, "myTextureSampler"); if(!TextureID) cout << "TextureID not found ..." << endl; // Bind our texture in Texture Unit 0 glActiveTexture(GL_TEXTURE0); sf::Texture::bind(texture); // Set our "myTextureSampler" sampler to user Texture Unit 0 glUniform1i(TextureID, 0); // 2nd attribute buffer : UVs GLuint vertexUVID = glGetAttribLocation(shaderProgram, "color"); if(!vertexUVID) cout << "vertexUVID not found ..." << endl; glEnableVertexAttribArray(vertexUVID); glBindBuffer(GL_ARRAY_BUFFER, color_array_buffer); glVertexAttribPointer(vertexUVID, 2, GL_FLOAT, GL_FALSE, 0, 0); error = glGetError(); if(error) { cout << error << endl; return ; } //error 1281
And here is the code where I bind my buffer with an array:
if (textured) { texture = new sf::Texture(); if(!texture->loadFromFile("textures/simple.jpeg")) std::cout << "Error loading texture !!" << std::endl; glGenBuffers(1, &color_array_buffer); glBindBuffer(GL_ARRAY_BUFFER, color_array_buffer); glBufferData(GL_ARRAY_BUFFER, uvs.size() * sizeof(glm::vec3), &uvs[0], GL_STATIC_DRAW); }
and my uvs values:
uvs [0]: 0.748573-0.750412
uvs [1]: 0.749279-0.501284
uvs [2]: 0.99911-0.501077
uvs [3]: 0.999455-0.75038
uvs [4]: โโ0.250471-0.500702
uvs [5]: 0.249682-0.749677
uvs [6]: 0.001085-0.75038
uvs [7]: 0.001517-0.499994
uvs [8]: 0.499422-0.500239
uvs [9]: 0.500149-0.750166
uvs [10]: 0.748355-0.99823
uvs [11]: 0,500193-0,998728
uvs [12]: 0.498993-0.250415
uvs [13]: 0.748953-0.25092
I am doing something wrong, if someone can help me, that would be great.