glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
int width, height, channels;
unsigned char* image = stbi_load("file.jpg", &width, &height, &channels, 0);
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image);
glBegin(GL_POLYGON);
glVertex2f(0,0);
glVertex2f(100, 0);
glVertex2f(100,100);
glVertex2f(0,100);
glEnd();
glBindTexture(GL_TEXTURE_2D, 0);
stbi_image_free(image);
glPopAttrib();
glfwSwapBuffers(window);
glfwPollEvents();
это правильно создает квадрат, но квадрат не имеет текстуры, только белый. файл текстуры, который я использовал.
Кроме того, вот код, который устанавливает мое окно:
static void WindowSetup()
{
glViewport((GLint)0, (GLint)0, SCREEN_WIDTH, SCREEN_HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, SCREEN_WIDTH, 0, SCREEN_HEIGHT, 0, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}