Есть такой код для текстуры:
int channels;
unsigned char* imageData = stbi_load(filePath.c_str(), &width, &height, &channels, 0);
GLenum format = GL_RGB;
if (channels == 1)
format = GL_RED;
else if (channels == 4)
format = GL_RGBA;
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, imageData);
glGenerateMipmap(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);
stbi_image_free(imageData);
При отрисовке такой текстуры во весь экран жрётся около ~25 фпс
Код отрисовки:
glEnableClientState(GL_VERTEX_ARRAY);
glColor4f(1, 1, 1, 1);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, &vertices[0]);
glTexCoordPointer(2, GL_FLOAT, 0, &texCoords[0]);
glDrawArrays(primitiveMode, 0, static_cast<GLsizei>(vertices.size() / 2));
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
Sleep установлен на 16 мс