Где взять opengl_const.inc и opengl_macros.inc

Тема в разделе "WASM.OpenGL", создана пользователем coredump, 22 июл 2008.

  1. coredump

    coredump New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    13
    Здраствуйте.

    Начал изучать статью - http://www.wasm.ru/article.php?article=OpenGLbyTylerDurden
    Но не нашел где мне взять файлы opengl_const.inc и opengl_macros.inc

    Все ссылки в google ведут на вышеуказанную статью.
    Если они есть у кого нибудь выложите пожалуйста.
    Спасибо.
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    google tyler durden opengl tutorial
    Например, вот.
     
  3. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    Открываем глаза и видим http://www.wasm.ru/docs/9/OpenGLbyTylerDurden.zip
     
  4. coredump

    coredump New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    13
    Спасибо, все нашел.

    Пробую собрать simple.asm, но возникает ошибка:

    Error: illegal instruction
    instruction: library kernel32,'KERNEL32.DLL',user32,'USER32.DLL',gdi32,'GDI32.DLL',opengl32,'OPENGL32.DLL',glu,'GLU32.DLL'
    imports.inc

    Что это может быть?
     
  5. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    В файле imports.inc должно быть:
    Код (Text):
    1. library kernel32,'KERNEL32.DLL',\
    2. user32,'USER32.DLL',\
    3. gdi32,'GDI32.DLL',\
    4. opengl32,'OPENGL32.DLL',\
    5. glu,'GLU32.DLL'
    6. include '%fasminc%\api\kernel32.inc'
    7. include '%fasminc%\api\gdi32.inc'
    8. include '%fasminc%\api\user32.inc'
    9. include 'opengl32.inc'
    PS: В файле opengl32.inc есть ошибка.
    Надо удалить строки:
    Код (Text):
    1. wglUseFontBitmaps,'wglUseFontBitmaps',\
    2. wglUseFontOutlines,'wglUseFontOutlines',\
    и дописать перед
    Код (Text):
    1. import glu,\
    2. ...
    строки
    Код (Text):
    1.   api wglUseFontBitmaps,\
    2.       wglUseFontOutlines
    PPS:
    В проимерах где есть строки типа:
    Код (Text):
    1. fileres texture,'..\resources\textures\crate.raw'
    меняем их на
    Код (Text):
    1. resdata texture
    2. file '..\resources\textures\crate.raw'
    3. endres
     
  6. coredump

    coredump New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    13
    Спасибо!
    Все получилось.

    Возник еще один вопрос. У меня пример из статьи с выводом текста.
    Выход из программы осуществляется по нажатию кнопки 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

    Подскажите, каким образом мне можно осуществить задуманное.

    Спасибо!
     
  7. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    Используй таймер:
    Код (Text):
    1. ...
    2. ; WM_CREATE
    3.    invoke SetTimer, [hWnd], 1, 5000, NULL
    4. ...
    5. ; WM_TIMER
    6. .if [wParam] = 1
    7.   invoke  SendMessage, [hWnd], WM_DESTROY, 0, 0
    8. .endif
     
  8. coredump

    coredump New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    13
    fasm почему то ругнулся на конструкцию:
    .if [wParam]=1

    error: illegal instruction.
     
  9. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    Замени win32a.inc на win32ax.inc или win32wx.inc(уникод).
     
  10. coredump

    coredump New Member

    Публикаций:
    0
    Регистрация:
    31 май 2008
    Сообщения:
    13
    Теперь ругается вот на что:

    .draw:
    invoke SetTimer, [hWnd],1,5000,NULL

    Error: undefined symbol 'hWnd'.
    Instruction: push[hWnd]