@sddvxd

Почему программа ведет себя странно?

Здравствуйте

Если в моем коде присутствует следующая строка:

sideY++;

то программа показывает на экран треугольник. Если же уберу ее - то программа перестает нормально работать (пустой экран без треугольника). Я очень удивился, потому что sideY вообще никаких образом не взаимодействует ни с чем:

bool sideY = true;
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

    while(!glfwWindowShouldClose(window))
    {
        sideY++;
            
        GLuint VBO, VAO;
        glGenBuffers(1, &VBO);
        glBindBuffer(GL_ARRAY_BUFFER, VBO);
        glBufferData(GL_ARRAY_BUFFER, 9 * sizeof(GLfloat), vertexTriangle, GL_DYNAMIC_DRAW);
        glGenVertexArrays(1, &VAO);
        glBindVertexArray(VAO);
        glEnableVertexAttribArray(0);
        glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        GLfloat timeValue = glfwGetTime();
        GLfloat greenValue = (sin(timeValue) / 2) + 0.5;
        GLint vertexColorLocation = glGetUniformLocation(shaderProgram, "ourColor");
        glUseProgram(shaderProgram);
        glUniform4f(vertexColorLocation, 0.0f, greenValue, 0.0f, 1.0f);
        glDrawArrays(GL_TRIANGLES, 0, 3);
        glfwPollEvents();
        glfwSwapBuffers(window);
    }


а если уберу строку с ее инкрементацией - программа перестает нормально работать... помогите пожалуйста, голову сломал уже не знаю в чем может быть проблема
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
build engineer
Судя по всему, это просто ограничение для рисования одного треугольника, sydeY был false, после ++ стал true, с тех пор он true. Видимо не весь код приведен, а переменная глобальная.

P.S. Начиная с 17 версии инкремент не работает для bool типов, так что в любом случае надо менять.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Alternativa Games Пермь
от 80 000 до 120 000 руб.
Amigoweb Магнитогорск
от 50 000 до 70 000 руб.
AI Factory Санкт-Петербург
от 125 000 до 250 000 руб.