Я не могу заставить openGL рисовать линию при вводе пользователемC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Я не могу заставить openGL рисовать линию при вводе пользователем

Сообщение Anonymous »

Я работаю над базовой программой, целью которой является рисование основных фигур на сетке. На данный момент я создал сетку, размер которой будет соответствовать разрешению окна, и точку, показывающую, над какой точкой сетки находится ваша мышь. Прямо сейчас я работаю над системой, которая будет записывать щелчки мыши и использовать ее для рисования линии между двумя выбранными точками, вот тут-то и начинается проблема. вот код.
EditorWindow.cpp

Код: Выделить всё

#include "EditorWindow.h"

EditorWindow::EditorWindow(GLFWwindow *window)
{
glfwGetWindowSize(window, &width, &height);
EditorWindow::graphInit(width, height);
EditorWindow::gridDotInit();
}

float EditorWindow::gridNormal(float x, float max)
{
x = 2 * x;
x = x / max;
x = x - 1;

return x;
}

void EditorWindow::graphInit(int resWidth, int resHeight)
{

int logx = 0;
int logy = 0;

for (int i = gridSize; i < resWidth; i += gridSize)
{
float x = gridNormal(i, resWidth);

vertacies.push_back(x);
vertacies.push_back(1);
vertacies.push_back(0);

vertacies.push_back(x);
vertacies.push_back(-1);
vertacies.push_back(0);
}

for (int i = gridSize; i < resHeight; i += gridSize)
{
float x = gridNormal(i, resHeight);

vertacies.push_back(1);
vertacies.push_back(x);
vertacies.push_back(0);

vertacies.push_back(-1);
vertacies.push_back(x);
vertacies.push_back(0);
}

glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);

glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, vertacies.size() * sizeof(float), vertacies.data(), GL_STATIC_DRAW);

glBindVertexArray(VAO);

glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);

}

void EditorWindow::drawGraph(Shader &shader)
{

//shader.setVec4("FragColor", glm::vec4(0.2, 0.2, 0.2, 1.0));

shader.use();

glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBindVertexArray(VAO);

glDrawArrays(GL_LINES, 0, vertacies.size()/2);

}

void EditorWindow::mousePos(GLFWwindow* window)
{

glfwGetCursorPos(window, &mouseX, &mouseY);

//std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78388383/i-cant-get-opengl-to-draw-a-line-on-user-input[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»