Nikitoschg, Я не спрашивал у вас ничего, я намекнул, что надо убрать преобразование в экранные координаты. Если вы делаете преобразование и opengl его делает, ваш красный прямоугольник окажется точно не там, где бы вы хотели его видеть
hitakiri, А чем принципиально отличается использование zig или go в качестве зависимостей от использования clang или mingw? clang для windows есть в github, mingw можно поставить на свою машину и упаковать в архив нужные файлы. Если нужно, чтобы и под linux и под mac работало, можно создать пакет со своим движком и прописать ему в зависимостях gcc или clang (собственно с zig и go то же самое придётся делать).
Nikitoschg, Не совсем. Деление на w закомментировано, вы ещё зачем-то в экранные координаты переводите, хотя это должен opengl делать. Плюс вы проецируете лишь одну точку, которая при этом не является вершиной прямоугольника, а надо проецировать его вершины и их передавать в glVertex3f
Ну и ещё вариант - поставить себе mingw, а потом все файлы упаковать в архив. Я так давно делал, когда надо было на школьный комп установить компилятор си.
Nikitoschg, Тогда понятно, почему у вас второй квадрат не подвергается проекции. Чтобы сделать проекцию, нужно каждую точку прямоугольника умножить на матрицу проекции, а не просто сместить их все на одну величину, как вы сейчас делаете. Точки представляются вектором с размерностью три, нужно перевести их в гомогенные координаты, добавив 4-ю компоненту равную 1. Потом каждую точку надо умножить на матрицу (или наоборот, смотря как представлена матрица column или row major), потом у получившихся точек разделить x, y и z компоненты на последнюю компоненту и собрать из получившихся значений 3-х мерную точку. Собственно 4 таких точки надо будет передать потом в glVertex3f
Nikitoschg, Понятно, что он рисует прямоугольник. Меня интересую вызовы opengl. Кода отрисовки серого квадрата я не вижу, вижу только установку матриц проекции и вида
Было бы неплохо увидеть весь код, мб есть ссылка на репозиторий? А то не ясно, что делает drawRedRect, например. Также не ясно, как вы в первом случае рисуете серый прямоугольник