Возникла такая проблема. Я решил что нить написать на fasm на OpenGL. Взял первую свою OpenGL программу на C++ и перевёл на fasm. Получилось в принципе идентично. Но при этом на C++ рисуется примитив, а на fasm нет. Может кто то сие явление объяснить
Вот оно. Почему С++ переводит 45.0f как 40468000h А fasm (кстати и masm тоже самое) переводит 45.0f как 42340000h Именно из за этого и проблемы. Возникает вопрос, только С++ способен рисовать и правильно преобразовывать нецелые числа. Ассемблеры на это не способны получается?
Навскидку: Код (Text): gluPerspective(45.0f,1.0f, 1.0f ,100.0f); Функция хочет GLdouble, неявная конверсия тут из float. В фасме invoke double не поддерживает, насколько я помню.
Фасм какраз поддерживает (если подключить win32ax.inc или win32wx.inc): Код (Text): invoke gluPerspective, double 45.0, double 1.0, double 1.0, double 100.0