Здраствуйте. Начал изучать статью - http://www.wasm.ru/article.php?article=OpenGLbyTylerDurden Но не нашел где мне взять файлы opengl_const.inc и opengl_macros.inc Все ссылки в google ведут на вышеуказанную статью. Если они есть у кого нибудь выложите пожалуйста. Спасибо.
Спасибо, все нашел. Пробую собрать simple.asm, но возникает ошибка: Error: illegal instruction instruction: library kernel32,'KERNEL32.DLL',user32,'USER32.DLL',gdi32,'GDI32.DLL',opengl32,'OPENGL32.DLL',glu,'GLU32.DLL' imports.inc Что это может быть?
В файле imports.inc должно быть: Код (Text): library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL',\ gdi32,'GDI32.DLL',\ opengl32,'OPENGL32.DLL',\ glu,'GLU32.DLL' include '%fasminc%\api\kernel32.inc' include '%fasminc%\api\gdi32.inc' include '%fasminc%\api\user32.inc' include 'opengl32.inc' PS: В файле opengl32.inc есть ошибка. Надо удалить строки: Код (Text): wglUseFontBitmaps,'wglUseFontBitmaps',\ wglUseFontOutlines,'wglUseFontOutlines',\ и дописать перед Код (Text): import glu,\ ... строки Код (Text): api wglUseFontBitmaps,\ wglUseFontOutlines PPS: В проимерах где есть строки типа: Код (Text): fileres texture,'..\resources\textures\crate.raw' меняем их на Код (Text): resdata texture file '..\resources\textures\crate.raw' endres
Спасибо! Все получилось. Возник еще один вопрос. У меня пример из статьи с выводом текста. Выход из программы осуществляется по нажатию кнопки esc, проверка осуществляется следующим кодом: invoke GetAsyncKeyState,VK_ESCAPE test eax,eax jz .draw invoke ChangeDisplaySettings,ebx,ebx invoke ExitProcess,ebx Мне хочется что бы завершение происходило не по нажатию какой либо клавише, а например через какое то время. Попробовал сделать такую штуку: в начало процедуры draw: написал inc edx а в месте где тестируется нажание кнопки (закоментировав) написал cmp edx,256 je .draw Но ничего хорошего не получилось, после запуска практически мнгновенно программа передает управление на invoke ExitProcess,ebx следующие после je .draw Подскажите, каким образом мне можно осуществить задуманное. Спасибо!
Используй таймер: Код (Text): ... ; WM_CREATE invoke SetTimer, [hWnd], 1, 5000, NULL ... ; WM_TIMER .if [wParam] = 1 invoke SendMessage, [hWnd], WM_DESTROY, 0, 0 .endif
Теперь ругается вот на что: .draw: invoke SetTimer, [hWnd],1,5000,NULL Error: undefined symbol 'hWnd'. Instruction: push[hWnd]