Ниже пример программы nasm + opengl. После компиляции падает. Вопрос - почему? Если запускать в gdb , затем команда run окошко и цветной треугольник прорисовывается, т.е. до какойто степени оно работает. help me please ; ---------------------------------------------------------------------------- ; triangle.asm ; ; A very simple *Windows* OpenGL application using the GLUT library. It ; draws a nicely colored triangle in a top-level application window. One ; interesting thing is that the Windows GL and GLUT functions do NOT use the ; C calling convention; instead they use the "stdcall" convention which is ; like C except that the callee pops the parameters. ; ---------------------------------------------------------------------------- global main extern glClear extern glBegin extern glEnd extern glColor3f extern glVertex3f extern glFlush extern glutInit extern glutInitDisplayMode extern glutInitWindowPosition extern glutInitWindowSize extern glutCreateWindow extern glutDisplayFunc extern glutKeyboardFunc extern glutPostRedisplay extern glutReshapeFunc extern glutMainLoop section .text title: db 'A Simple Triangle', 0 zero: dd 0.0 one: dd 1.0 half: dd 0.5 neghalf:dd -0.5 display: push dword 16384 call glClear ; glClear(GL_COLOR_BUFFER_BIT) push dword 9 call glBegin ; glBegin(GL_POLYGON) push dword 0 push dword 0 push dword [one] call glColor3f ; glColor3f(1, 0, 0) push dword 0 push dword [neghalf] push dword [neghalf] call glVertex3f ; glVertex(-.5, -.5, 0) push dword 0 push dword [one] push dword 0 call glColor3f ; glColor3f(0, 1, 0) push dword 0 push dword [neghalf] push dword [half] call glVertex3f ; glVertex(.5, -.5, 0) push dword [one] push dword 0 push dword 0 call glColor3f ; glColor3f(0, 0, 1) push dword 0 push dword [half] push dword 0 call glVertex3f ; glVertex(0, .5, 0) call glEnd ; glEnd() call glFlush ; glFlush() ret keyboard: pop ebx; pop ebx; pop ebx; call glutPostRedisplay ret reshape: pop ebx; pop ebx; ret main: push dword [esp+8] ; push argv lea eax, [esp+8] ; get addr of argc (offset changed :-) push eax call glutInit ; glutInit(&argc, argv) push dword 0 call glutInitDisplayMode push dword 80 push dword 80 call glutInitWindowPosition push dword 300 push dword 400 call glutInitWindowSize push title call glutCreateWindow push display call glutDisplayFunc call glutMainLoop ret
Ответ на:
комментарий
от Darkman
Ответ на:
комментарий
от nikolayd
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Darkman
Ответ на:
комментарий
от svr4
Ответ на:
комментарий
от nikolayd
Ответ на:
комментарий
от Darkman
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от svr4
Ответ на:
комментарий
от generatorglukoff
Ответ на:
комментарий
от svr4
Ответ на:
комментарий
от svr4
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от svr4
Ответ на:
комментарий
от Darkman
Ответ на:
комментарий
от Darkman
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Неопределённая ссылка на «glClear» (2020)
- Форум OpenGL: освещение (2005)
- Форум Hello world на opengl сегфолтится:( (2011)
- Форум как сделать библиотеку с glut (2013)
- Форум openGL: почему-то не работает ничего, кроме последней функции (2011)
- Форум [OpenGL] Туплю :/ (2008)
- Форум Программа для OpenGL под mingw32 (2007)
- Форум OpenGL. Ошибка проверки глубины. (2013)
- Форум OpenGL (2008)
- Форум Тормоизт текстурированный куб в OpenGL. (2003)