Я создаю пользовательский буфер кадров размером 1920 X 1080 и затем отображаю текстуру этого буфера кадров в полноэкранный прямоугольник в буфере кадров по умолчанию размером 800 X 600.
Я нарисовал прямоугольник в центр экрана в пользовательском буфере кадров и после сопоставления текстуры я ожидал, что прямоугольник появится в центре.
Но прямоугольник появился в левом нижнем углу.
Когда я рисую полноэкранный прямоугольник в пользовательском буфере и сопоставляю его с полноэкранным прямоугольником в стандартном буфере кадров размером 800 X 600 вместо отображения в полноэкранном режиме, он охватывает весь экран. нижний левый угол ////////////////////////////////////////////////// /////////////////////////// Определение для функции Render Quad
unsigned int quadVAO = 0;
unsigned int quadVBO;
void renderQuad()
{
if (quadVAO == 0)
{
float quadVertices[] = { // vertex attributes for a quad that fills the entire screen in Normalized Device Coordinates.
// positions // texCoords
-1.0f, 1.0f, 0.0f, 1.0f,
-1.0f, -1.0f, 0.0f, 0.0f,
1.0f, -1.0f, 1.0f, 0.0f,
-1.0f, 1.0f, 0.0f, 1.0f,
1.0f, -1.0f, 1.0f, 0.0f,
1.0f, 1.0f, 1.0f, 1.0f
};
// VAO
glGenVertexArrays(1, &quadVAO);
glGenBuffers(1, &quadVBO);
glBindVertexArray(quadVAO);
glBindBuffer(GL_ARRAY_BUFFER, quadVBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(quadVertices), &quadVertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)0);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float)));
}
glBindVertexArray(quadVAO);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 6);
glBindVertexArray(0);
}