opengl in masm32

Тема в разделе "WASM.BEGINNERS", создана пользователем ragim, 11 июл 2010.

  1. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    podskazhite pozhaluysta gde mozhno nayti tutorialy po rabote s 3d grafikoy (opengl/glut) v yazyke masm32 (guglil - nichego) p.s. tol'ko primery ne podoydut
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    А не проще взять туториал от С/С++/Делфи и переписать на асм
    ЗЫ Смотри здесь, что-то было (http://wasm.ru)
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    зачем асм нужен для базовых знаний гл?
    Nehe неплохо разжовывает
     
  4. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    kak perepisat'? tipa sam sebe C compiler?
     
  5. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ну к примеру что сложного переписать это
    Код (Text):
    1. void main()
    2. {
    3.   ...
    4.   HDC hdc=GetDC(hwnd);
    5.   PIXELFORMATDESCRIPTOR pfd;
    6.   pfd.dwSize=sizeof(PIXELFORMATDESCRIPTOR);
    7.   pfd.dwFlags=PDF_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    8.   UINT pfi=ChoosePixelFormat(hdc, &pfd);
    9.   if (pfi)
    10.   {
    11.     SetPixelFormat(hdc, pfi, &pfd);
    12.     HGLRC hrc=wglCreateContext(hdc);
    13.     if (hrc)
    14.     {
    15.       wglMakeCurrent(hdc, hrc);
    16.       ...
    17.     }
    18.     ...
    19.   }
    20.   ...
    21. }
    получим
    Код (Text):
    1. hwnd equ dword [ebp-4]
    2. hdc  equ dword [ebp-8]
    3. hrc  equ dword [ebp-12]
    4. pfi  equ dword [ebp-16]
    5. pfd  equ [ebp-20-pfd.Length]
    6. main:
    7.   ...
    8.   call [GetDC], [hwnd]
    9.   mov [hdc], eax
    10.   mov [pfd.dwSize], pfd.Length
    11.   mov [pfd.dwFlags], PDF_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER
    12.   lea ebx, [pfd]
    13.   call [ChoosePixelFormat], [hdc], ebx
    14.   test eax, eax
    15.   jz .bad_index
    16.     mov [pfi], eax
    17.     call [SetPixelFormat], [hdc], eax, ebx
    18.     call [wglCreateContext], [hdc]
    19.     test eax, eax
    20.     jz .bad_rc
    21.       mov [hrc], eax
    22.       call [wglMakeCurrent], [hdc], eax
    23.       ...
    24. .bad_rc:
    25.     ...
    26. .bad_index:
    27.   ...
    правда это для fasm, от masm уже как-то отвык, но почти похоже (скобочки лишние убрать да ptr дописать)
     
  6. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    max7C4
    nu ya uzh ne takoy profi
     
  7. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    max7C4
    i chto vse funkcii takie zhe nazvaniya/prototipy imeut?
     
  8. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.558
    Адрес:
    Russia
    ragim
    В чем проблема написать на русском ? Транслит тут многим не нравится. Есть к тому же сайты, чтобы переводить транслит в русский язык.

    По поводу названий функций и прототипов - да, такие же.
     
  9. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ragim
    А и не надо быть таким уж профи
    абсолютно. и более того на них нет манглина и прочей гадости
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Asm для 3D не нужен и противопоказан.
     
  11. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    почему Вы так думаете? просто я начал изучать масм и заинтересовался 3д. наверное на си будет проще но я не xочу ставить си (codeblocks)
     
  12. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    ragim
    потому что асм вносит дополнительную сложность проги, ничерта не нужную для базовых хнаний.
    когда будете свободно владеть темой - тогда вот и оптимизируйте)
     
  13. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    wsd
    А кто сказал, что на асм нельзя писать вот так в лоб без оптимизации. Каждый раз использовать те же локальные переменные, а не умещать все в регистрах. С кучей мусорных инструкций и разбивая каждую процедуру/подпрограмму на не зависимые действия (как это происходит, начни писать на си). это не так сложно как кажется на первый взгляд. Да и работать прога будет быстрее без этой закрученной классовой хрени с кучей вложенных вызовов (во многом который декодируются по таблицам, что сложнее предсказывать системе переходов).
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    max7C4
    Кто вам сказал, что яву не оптимизирует? Или вы как обычно смотрите дебаг? И насчёт классовой хрени вы не правы, в 3d ботлнек это отрисовка, а не косвенный вызов.
     
  15. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Booster
    Имелось ввиду, что тут машинная оптимизация доверяется компилятору
    Это пока у вас простые классы, а вот когда дойдет дело до взаимодействия и интеллекта - вот тут начнется. И это часто лепят вперемешку с формированием графики (если без этого не обойтись), особенно всякие эффекты.
     
  16. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.878
    ragim
    В "Сам себе Iczelion" #234, 236, 237 три урока по opengl, всё лишнее выброшено, может быть поможет
     
  17. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    max7C4
    по мне писать что так что так пофигу.
    а для бегинера лучше это осваивать на яву.
    у каждой штуки свои минусы и плюсы, асм вносит ненужную доп сложность для новичка.
    просто у него будет больше проблем, он обламается, забъёт и забросит.
     
  18. ragim

    ragim New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2010
    Сообщения:
    47
    Ваше утверждение меня заинтересовала. буду благодарен если дадите ссыло4ку
     
  19. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    max7C4
    Вы сомневаетесь, что компиляторы на это способны?

    Никто насильно не заставляет использовать виртуальные методы повсюду.
    DirectX целиком построен на виртуальных методах и никто не жаловался, что это снижает перфоманс.
     
  20. dsoft

    dsoft Евгений

    Публикаций:
    0
    Регистрация:
    20 май 2007
    Сообщения:
    54
    Адрес:
    Омск
    Именно, на этом сайте, мало что достаточно простых уроков, исходники имеются на многих языках программирования. Достаточно взять исходник урока на знакомом языке и ассемблере и тупо сравнивать.