Уроки от NeHe на masm64

Тема в разделе "WASM.OpenGL", создана пользователем Mikl___, 13 сен 2020.

  1. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708

    Вложения:

    • Lesson30.zip
      Размер файла:
      157,6 КБ
      Просмотров:
      210
    calidus, TermoSINteZ и Rel нравится это.
  2. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Привет Mikl___,

    можно ли ожидать общий архив со всеми лекциями? Ты часто обновляешь баги, легко запутаться. Урок со стрельбой, 32 урок у меня падает если слишком быстро нажимать и потом сделать выстрел мимо цели. В отладчике пока не смотрел ..
     
  3. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Привет, calidus!
    Нет, не планировал, часть уроков (например #35) не идет в Windows 10, хотя в семерке работают без проблем... Смысл выкладывать в архиве, если, как выясняется, приложения не доведены "до ума"? Да и хотелось бы живого общения, :scratch_one-s_head:как это не странно...
     
    mantissa нравится это.
  4. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Привет Mikl,

    в чём были ошибки на тех примерах, что были исправлены? Стек? Ну не знаю, общение будет, когда уроки будут отдельно отсортированы и собраны в одном месте, больше шансов же?!
     

    Вложения:

  5. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    calidus,
    я-то, думал, что это какая-то новая pdf, а оказалось, что это отсылка к моему же вложению в одном из сообщений... ;)
    А если серьезно, сейчас разбираю урок 43 (FreeType шрифты в OpenGL), можешь помочь создать структуры для 64-разрядного masm? FT_Face, FT_Library, FT_Bitmap, FT_BitmapGlyph, FT_Glyph и т.д., которые встречаются в тексте урока. Использовал FreeType-2.10.4 API Reference Можешь перевести это FT_дерьмо в структуры с нормальными, гетеросексуальными, православными real4, real8, qword и dword ? :)


    Код (Text):
    1. FT_Int  = signed int
    2. FT_Long = signed long
    3. FT_String*
    4. FT_Bitmap_Size*
    5. FT_CharMap*
    6. FT_Pos = signed long
    7. FT_Generic =
    8. ---------------------------------------
    9. typedef struct  FT_BBox_
    10.   {
    11.     FT_Pos  xMin, yMin;
    12.     FT_Pos  xMax, yMax;
    13.   } FT_BBox;
    14. ---------------------------------------------------
    15. FT_UShort = unsigned short
    16. FT_Short  = signed short
    17. -------------------------------------------------------
    18. typedef struct  FT_Bitmap_
    19.   {
    20.     unsigned int    rows;
    21.     unsigned int    width;
    22.     int             pitch;
    23.     unsigned char*  buffer;
    24.     unsigned short  num_grays;
    25.     unsigned char   pixel_mode;
    26.     unsigned char   palette_mode;
    27.     void*           palette;
    28.   } FT_Bitmap;
    29. ----------------------------------------------------
    30. typedef struct  FT_BitmapGlyphRec_
    31.   {
    32.     FT_GlyphRec  root;
    33.     FT_Int       left;
    34.     FT_Int       top;
    35.     FT_Bitmap    bitmap;
    36.   } FT_BitmapGlyphRec;
    37. -------------------------------------------------------
    38. typedef struct  FT_GlyphRec_
    39.   {
    40.     FT_Library             library;
    41.     const FT_Glyph_Class*  clazz;
    42.     FT_Glyph_Format        format;
    43.     FT_Vector              advance;
    44.   } FT_GlyphRec;
    45. ---------------------------------------------------
    46. typedef struct FT_LibraryRec_   *FT_Library
    47. -----------------------------------------------------
    48. typedef struct  FT_Vector_
    49.   {
    50.     FT_Pos  x;
    51.     FT_Pos  y;
    52.   } FT_Vector
    53. ------------------------------------------------
    54. typedef struct FT_FaceRec_*  FT_Face
    55. {
    56.     FT_Long           num_faces;
    57.     FT_Long           face_index;
    58.     FT_Long           face_flags;
    59.     FT_Long           style_flags;
    60.     FT_Long           num_glyphs;
    61.     FT_String*        family_name;
    62.     FT_String*        style_name;
    63.     FT_Int            num_fixed_sizes;
    64.     FT_Bitmap_Size*   available_sizes;
    65.     FT_Int            num_charmaps;
    66.     FT_CharMap*       charmaps;
    67.     FT_Generic        generic;
    68.     /*# The following member variables (down to `underline_thickness`) */
    69.     /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size    */
    70.     /*# for bitmap fonts.                                              */
    71.     FT_BBox           bbox;
    72.     FT_UShort         units_per_EM;
    73.     FT_Short          ascender;
    74.     FT_Short          descender;
    75.     FT_Short          height;
    76.     FT_Short          max_advance_width;
    77.     FT_Short          max_advance_height;
    78.     FT_Short          underline_position;
    79.     FT_Short          underline_thickness;
    80.     FT_GlyphSlot      glyph;
    81.     FT_Size           size;
    82.     FT_CharMap        charmap;
    83.     /*@private begin */
    84.     FT_Driver         driver;
    85.     FT_Memory         memory;
    86.     FT_Stream         stream;
    87.     FT_ListRec        sizes_list;
    88.     FT_Generic        autohint;   /* face-specific auto-hinter data */
    89.     void*             extensions; /* unused                         */
    90.     FT_Face_Internal  internal;
    91.     /*@private end */
    92.   } FT_FaceRec;
     
  6. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Mikl___, не заметил PDF, со структурами нет универсального решения, необходима ручная корректировка и проверка ..

    Код (ASM):
    1. FT_BBox    STRUCT DEFALIGNMASM
    2.     yMin DWORD ?
    3.     yMax DWORD ?
    4. FT_BBox        ENDS
    5.  
    6. FT_Bitmap    STRUCT DEFALIGNMASM
    7.     rows DWORD ?
    8.     awidth DWORD ?
    9.     pitch DWORD ?
    10. buffer PTR ?
    11.     num_grays WORD ?
    12.     pixel_mode BYTE ?
    13.     palette_mode BYTE ?
    14. palette PTR ?
    15. FT_Bitmap        ENDS
    16.  
    17. FT_BitmapGlyphRec    STRUCT DEFALIGNMASM
    18.     root FT_GlyphRec <>
    19.     left SDWORD ?
    20.     top SDWORD ?
    21.     bitmap FT_Bitmap <>
    22. FT_BitmapGlyphRec        ENDS
    23.  
    24. FT_GlyphRec    STRUCT DEFALIGNMASM
    25.     library PTR ?
    26. clazz PTR ?
    27.     format DWORD ?
    28.     advance FT_Vector <>
    29. FT_GlyphRec        ENDS
    30.  
    31. FT_Vector    STRUCT DEFALIGNMASM
    32.     x FT_Pos ?
    33.     y FT_Pos ?
    34.     ENDS
    35.     face_index SDWORD ?
    36.     face_flags SDWORD ?
    37.     style_flags SDWORD ?
    38.     num_glyphs SDWORD ?
    39. family_name PTR ?
    40. style_name PTR ?
    41.     num_fixed_sizes SDWORD ?
    42. available_sizes PTR ?
    43.     num_charmaps SDWORD ?
    44. charmaps PTR ?
    45.     generic FT_Generic <>
    46.     bbox FT_BBox <>
    47.     units_per_EM WORD ?
    48.     ascender SWORD ?
    49.     descender SWORD ?
    50.     height SWORD ?
    51.     max_advance_width SWORD ?
    52.     max_advance_height SWORD ?
    53.     underline_position SWORD ?
    54.     underline_thickness SWORD ?
    55.     glyph PTR ?
    56.     asize PTR ?
    57.     charmap PTR ?
    58.     driver PTR ?
    59.     memory PTR ?
    60.     stream PTR ?
    61.     sizes_list FT_ListRec <>
    62.     autohint FT_Generic <>  ;/* face-specific auto-hinter data */
    63. extensions PTR ?
    64.     aInternal PTR ?
    65. FT_Vector        ENDS
    Ищи типы во вложении, всё добавлять не стоит, только то, что нужно ..
     

    Вложения:

    • FTTypes.7z
      Размер файла:
      38 КБ
      Просмотров:
      153
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    calidus,

    Это тип или размер данных структуры ?

    Что такое ptr" ?

    Абсолютно без понятия описана структура, что это вообще такое ?
     
  8. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Indy_, привет,

    это поинтер -
    [[distance]] PTR type
    Specifies a pointer to type.
    (Microsoft Macro Assembler 6.11 Reference Manual_Macro Assembler Reference)
     
  9. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Урок 43. FreeType шрифты в OpenGL
    Еще один независимый способ получить красивые буквы на экране, используя двухбайтные растры.
    43.jpg
    Во вложении 43.zip asm-\exe-файлы, курсор, freetype.dll, freetype.lib и freetype.inc.
    Внимание! Писалось и проверялось под Window seven, под Windows 10 не проверял :scratch_one-s_head:
     

    Вложения:

    • 43.zip
      Размер файла:
      405,6 КБ
      Просмотров:
      158
    Aiks нравится это.
  10. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708

    Вложения:

    • 43.zip
      Размер файла:
      405,4 КБ
      Просмотров:
      158
    • 43.jpg
      43.jpg
      Размер файла:
      36,4 КБ
      Просмотров:
      459
  11. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Урок 39. Введение в физический симулятор

    • Симуляция поведения массы в условиях воздействия на нее сил гравитации,
    • Симуляция поведения пружины,
    • Симуляция поведения массы движущейся с постоянной скоростью.

    39.jpg
    Во вложении 39.zip asm-\exe-файлы и курсор.
    Работает под Window seven и Windows 10
     

    Вложения:

    • 39.zip
      Размер файла:
      9 КБ
      Просмотров:
      152