Direct3D и FASM

Тема в разделе "WASM.DirectX", создана пользователем Zhelezka, 24 сен 2008.

  1. Zhelezka

    Zhelezka New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2008
    Сообщения:
    103
    Мне нужно описание работы Direct3D на fasm.
    Я нашёл вот это:
    http://vertexland.narod.ru/code/directx_fasm.htm
    Но примеры не компилируются и там много лишнего:
    Код (Text):
    1.    ...
    2.    .DATA
    3.    ...
    4.    .DATA?
    5.    ...
    6.    .END
    7.   macro .DATA
    8.   {
    9.     InitializedData fix InitializedData,
    10.     macro __InitDataBlock {
    11.   }
    12.  
    13.   macro __InitializedData dummy,[n]
    14.   {
    15.     forward
    16.     __InitDataBlock
    17.     purge __InitDataBlock
    18.   }
    19.   macro .DATA?
    20.   {
    21.     UninitializedData fix UninitializedData,
    22.     macro __UnInitDataBlock {
    23.   }
    24.  
    25.   macro __UninitializedData dummy,[n]
    26.   {
    27.     common
    28.     local begin, size
    29.     begin = $
    30.     virtual at $
    31.     forward
    32.       __UnInitDataBlock
    33.       purge __UnInitDataBlock
    34.     common
    35.       size = $ - begin
    36.     end virtual
    37.     rb size
    38.   }
    39.    .END fix }
    40. macro .DEFINE_ALL_DATA
    41.   {
    42.    local begin
    43.  
    44.    begin = $
    45.    InitializedData
    46.    DispSize 'Initialized data', ($ - begin)
    47.  
    48.    begin = $
    49.    UninitializedData
    50.    DispSize 'Uninitialized data', ($ - begin)
    51.   }
    52.  
    53.  InitializedData fix __InitializedData
    54.  UninitializedData fix __UninitializedData
    55.  ...
    Зачем это всё не понимаю.
    Можно-же было переменные разместить просто в данных.
    Где можно найти документацию?
    Или хотя-бы покажите маленький примерчик рисования куба: дальше разберусь.
     
  2. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Это не лишнее, а сделано было в целях того чтобы исходники на масм (нравитсо мне размещать данные и код в каждой процедуре отдельно) с малейшими переделками перевести под фасм. А не компилится потому что там указано что они писались под версию фасм 1.62 насколько я помню. Переделывать под новую версию фасма мне не охота.

    Исходники работы с директ 3d на фасм есть у Matt Childress. Смотри в разделе последние исходники на этом сайте.
     
  3. Zhelezka

    Zhelezka New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2008
    Сообщения:
    103
    Спасибо, но я никак не могу найти:
    Код (Text):
    1. include '%fasminc%\equates\directx\d3d9.inc'
    2. include '%fasminc%\equates\directx\d3dx9.inc'
    3. include '%fasminc%\equates\winmm.inc'
    На http://flatassembler.net/ смотрел, но английский плохо знаю, поэтому наверно не нашёл.
     
  4. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Посмотрю вечером, возможно они у меня есть.
     
  5. Zhelezka

    Zhelezka New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2008
    Сообщения:
    103
    Нашёл:
    http://www.wasm.ru/src/3/MadMatt_Graphic_Pack_Includes.zip
     
  6. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Да, именно там. Тоже такие есть.
     
  7. Zhelezka

    Zhelezka New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2008
    Сообщения:
    103
    У Matt Childress есть пример где создаётся полноэкранное приложение.
    Не '3D Game programming with DirectX 9.0',
    а 'Direct3D Examples - Codesampler.com';
    Глава '02) Direct3D9 Fullscreen'.


    1)Мне надо ширину, высоту, колличество цветов и частоту обновления экрана хранить в своих переменных.
    Сделал так что он высоту, ширину и частоту обновления уже берёт из переменных,
    Нашёл строки где вроде как-раз изменяется колличество цветов,
    но их много и я не понял кокое именно колличество цветов ставится,
    как сделать что-бы он брал колличестао цветов из переменной.

    2)Так как я хочу сделать игру мне надо что-бы ширину, высоту, колличество цветов и частоту обновления экрана
    можно было изменить прямо из игры, для этого надо создать процедуру которая изменяет эти настройки.
    Помогите в создании: незнаю как сделать.
     
  8. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Zhelezka
    Глубина цвета сидит в поле Format
    структуры D3DDISPLAYMODE
     
  9. Painter

    Painter New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2011
    Сообщения:
    46
    Та же проблема и у меня... Скачал примеры, они не идут. Версия фасма 1.69. То что там пример для другой версии это я понял... А вот смысл тех макросов не совсем понятно. Как я понял там пытаются использовать макросы типа .DATA .END и между ними переменные описывать, а потом макросом .DEFINE_ALL_DATA выводить их в секцию данных. А вот как этого они пытаються достигнуть чет не совсем понятно. Объясните плизззззз!
     
  10. Painter

    Painter New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2011
    Сообщения:
    46
    Или если есть ссылка на директ для моей версии fasm, то поделитесь!
     
  11. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Painter
    Как уже было сказано у MadMatt имеются примеры и заголовочные файлы.
     
  12. Painter

    Painter New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2011
    Сообщения:
    46
    Спасибо.