Я пытаюсь сделать свою кодовую базу модульной, но, как сказано в названии, всякий раз, когда я использую метод, все мои точки вершин находятся внутри другого метода, который сам вызывается из main.cpp (или в будущем это будет мой файл gameloop.cpp), он не отображается
Main.cpp
Код: Выделить всё
Vert2D cornerA = Vert2D(-0.5f, -0.5f);
Vert2D cornerD = Vert2D(0.5f, 0.5f);
//[DATA] -> Points
basicMesh.CreateRectangle(new Vert2D(-0.5f, -0.5f), new Vert2D(0.5f, 0.5f));
Код: Выделить всё
void BasicMesh::CreateRectangle(Vert2D *CornerA, Vert2D *CornerD) {
MeshIndexing MeshIndex;
std::cout Corner B
-CornerD->x, CornerD->y, 0.0f, //Top Left Corner -> Corner C
CornerD->x, CornerD->y, 0.0f //Top Right Corner -> Corner D
};
localVerts = Verts;
Код: Выделить всё
glBufferData(GL_ARRAY_BUFFER, sizeof(localVerts), &localVerts, GL_STATIC_DRAW); //Upload vertex data to gpu
Чтобы начать работу с файлом main.cpp, я попробовал вызвать Vert2D напрямую (используя «new» и не используя «new») и вызывая их по именам переменных (как с использованием ссылочного символа, так и без ссылочного символа). Для метода-обертки и метода Vert я попытался установить параметры в виде указателей и ссылок. Как вы можете видеть, я использовал std::cout в обоих методах, чтобы помочь мне отладить происходящее, и оба из них привели к правильным значениям.
Кроме того, для строки кода буферных данных я попробовал '(void*) &localVerts', а также 'localVerts.Data()' для третьего аргумента (а также то, что у меня есть сейчас). Мне приходится использовать «localVerts» вместо просто «Verts», потому что метод данных vert и строка кода буферных данных находятся в двух отдельных методах, поэтому «localVerts» является членом класса. Я бы сказал, что проблема в «localVerts», но всякий раз, когда я вызываю vertdata непосредственно из main.cpp, мой прямоугольник отображается. Я подозреваю, что что-то не так с параметрами метода-обертки. Оооо, и я также пытался просто приравнять localVerts непосредственно к массиву, но это ничего не дало.
Я также пытался изменить свои индексы, чтобы они двигались против часовой стрелки, как рекомендовано в этом ответе на сообщения, но безуспешно
ЧТО Я ОЖИДАЛ
Я просто ожидал, что он отобразит прямоугольник, даже когда я вызываю метод-обертку, и это не будет так сложно. Возможно ли вообще то, о чем я прошу?
ВОСПРОИЗВЕДЕНИЕ ПРОЕКТА
Вот проект, который вы можете воспроизвести (ссылка на проект). В строке 38 вы можете оставить ее такой, какая она есть, чтобы показать, что она не отображает прямоугольник, или изменить ее на Shapes.GetVert(), чтобы показать, что она отображает треугольник
Подробнее здесь: https://stackoverflow.com/questions/798 ... enders-pro
Мобильная версия