1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Пишу фреймворк LDL, аналог SDL но на С++ и с поддержкой старых систем

Тема в разделе "Мастерская", создана пользователем Jordan 63, 26 окт 2022.

  1. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    137
    --- добавлено 12 ноя 2022, предыдущее сообщение размещено: 12 ноя 2022 ---
    @Jordan 63, от современного fatware тоже устал
     
    Последнее редактирование: 12 ноя 2022
  2. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Да я тоже от этих жиреющих программ устал. Весят много, грузят цпу так как будто я вселенную со всеми галактиками рассчитываю. Озу потребляют будто я киберпанк 2077 на максималках запустил.

    Но нужно отдать должное, у старых компиляторов проблема с оптимизацией.
    --- добавлено 12 ноя 2022 ---
    Современные компиляторы серьезно оптимизируют код. Об асме реально можно забыть. Лучше уже не сделать на асме.
     
    Чёрный Думер нравится это.
  3. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.940
    "И как раз это решило проблему с выводом CpuImage с помощью glTexSubImage2D."
    Минус - накладные расходы на дополнительную операцию, как я понимаю. Но если иначе невозможно, значит будет так.
    По поводу прозрачности... А как оно определяет какой цвет должен быть прозрачным? может все же тупит сугубо из-за wine.
     

    Вложения:

  4. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Поправил альфу для CpuRender. Примеры перекомпилировал. Wine не виноват. Виноват сырой фреймворк и мои небольшие знания в графике и обработке изображений.
    --- добавлено 13 ноя 2022, предыдущее сообщение размещено: 13 ноя 2022 ---
    @Bobbie, смотрю исходники твоего движка и вижу код который можно утянуть к себе:)
    --- добавлено 13 ноя 2022 ---
    @Tigoro, вы писали, что юзаете linux. Когда я добавлю поддержку linux следует выложить бинарники или вы скомпилите с помощью CMake? Я не уверен, насчет совместимости бинарников между разными дистрами linux.
     
  5. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    137
    @Jordan 63, спасибо за комплимент.
    --- добавлено 13 ноя 2022, предыдущее сообщение размещено: 13 ноя 2022 ---
    @Jordan 63, несовместимость бинарников вызвана разными версиями библиотек в разных дистрибутивах. А так ELF стандартный формат.
     
    Tigoro нравится это.
  6. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.940
    @Jordan 63, оба варианта устроят.
     

    Вложения:

  7. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Пока времени на проект нет. Но думаю, для будущих версий адаптировать свою версию STL с поддержкой старых компиляторов к примеру Borland C++ 3.1

    Нашел для него реализацию, думаю, что следует перенести код и подправить STL до соответствия стандарта С++98.

    Пример реализации
    GitHub - ViktorSlavkovic/bcc3.1_stl: STL Implementation for Borland C++ compiler from 1992

    Сделать полный обвяз STL, std::allocator, std::numeric и т.д

    Более простой вариант взять реализацию из gcc старых версий и уже вручную адаптировать под список старых компиляторов. Если вдруг у вас возник вопрос, а собственно зачем? Отвечаю: потому, что можем:)
    --- добавлено 17 ноя 2022, предыдущее сообщение размещено: 17 ноя 2022 ---
    Сейчас в приоритете написание тестов к уже реализованному функционалу + доделать порт для Linux(xlib и по возможности wayland). Основная моя идея, добиться полной кроссплатформенности, как для старых, так и для новых систем.

    Пока проект разрабатываю один, ограничусь следующими платформами: Windows начиная с Windows 95. Linux c библиотекой xlib(gcc c поддержкой С++ 98) это все дистры с 2000-го года.
     
    Последнее редактирование: 17 ноя 2022
  8. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Чёрный Думер и Tigoro нравится это.
  9. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Добавил поддержку компилятора Open Watcom v2. Должен работать и с более старыми версиями, но я не проверял. Будет основа для порта Dos.
     
    Чёрный Думер и Tigoro нравится это.
  10. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Всё ни как не доделаю порт под Linux. Сейчас добавляю классы для работы с окном и монитором.

    Добавлю класс WindowResizer который позволяет, узнать в каком режиме находится окно или изменить режим на полный экран, в окне, зафиксировать размер.
    Сейчас идёт проработка событий клавиатуры и мыши.

    Начинаю добавлять документацию при помощи программы Doxigen.

    Ещё нужно облагородить гитхаб. Дополнить редми, скриншоты и примеры.

    Как то так:) Буду держать всех в курсе.
     
  11. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Переделал платформозависимые классы в абстрактные классы для сокрытия информации.
     
  12. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Переписал зависимые от операционной системы классы с помощью идиомы fast pimpl.
    --- добавлено 12 дек 2022, предыдущее сообщение размещено: 12 дек 2022 ---
    Для первого выпуска осталось.
    1. Отрефакторить код.
    2. Допилить минимальный функционал 2D графики.
    3. Исправить вывод текстур на Windows 95, 98, Me.
    4. Добавить больше примеров.
    5. Реализовать классы заглушек.
    6. Запилить документацию. Уже начал.

    Посмотрю по загруженности. Возможно всё и сделаю на этой неделе.
     
    Tigoro нравится это.
  13. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Проект развивается. Просто основное общение происходит на gamedev.ru

    Обновил гитхаб, добавил скриншоты, дополнил описание. Портировал первые 5 уроков по OpenGL от Nehe.

    На данный момент, исправляю баги и доделываю рендер 2D графики.
     
    Чёрный Думер, Gamerun и Tigoro нравится это.
  14. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.940
    Тесты все работают. 1 и 2 - черное окно с счетчиком в заголовке. Вращения плавные. Динозавр таскается. Куб крутится. 8 и 9 почти похожий вывод картинки (драконыч на синем фоне и серой тенью). Разница только в том что в 8-ке морда тоже в одном месте синяя. Спонсор запуска - wine последней версии со всеми нашлепками сверху.
     
  15. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Спасибо за тест. Вроде как все правильно работает.
    --- добавлено 19 янв 2023, предыдущее сообщение размещено: 19 янв 2023 ---
    Ты компилировал и запускал тесты через Tests_x86.bat?
     
  16. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.940
    Вывод
    Батники не совместимы, запуск напрямую wine имя-файла, вывода в терминал не было.
     
    Последнее редактирование: 19 янв 2023
  17. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    137
    @Jordan 63, в методе Check из класса GpuUtil лучше использовать оператор switch. Это немного улучшит читабельность кода
     
  18. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Спасибо, поправлю.
    --- добавлено 25 янв 2023, предыдущее сообщение размещено: 25 янв 2023 ---
    Все правильно, порта под Linux еще нет. Я портирую в виртуалке под Lubuntu 22.10 Изменения касающие linux на гитхаб не пушил.
     
    Tigoro нравится это.
  19. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Приобрел ПК для ретро разработки. Теперь могу нативно тестировать фреймворк, на Windows 9X версиях.
     
    Чёрный Думер и Gamerun нравится это.
  20. Jordan 63

    Jordan 63

    Регистрация:
    26 янв 2010
    Сообщения:
    480
    Приветствую.

    На данный момент исправил баги и немного отрефакторил код. Дополнил примеры.

    Вывод простенькой тайловой карты.
    agithub.com_JordanCpp_Lib_LDL_raw_master_Screenshots_12_TileMap2.jpg

    Сами тайлы взял из интернета.
    aopengameart.org_sites_default_files_seasons_tiles.png

    Код примера.

    По графике осталось добавить функционал масок и доработать графический функционал для поддержки квадратных текстур. И в принципе минимальный 2D функционал будет готов.

    Следующим шагом, добавлю поддержку звука.
     
    Последнее редактирование: 9 мар 2023
    Чёрный Думер и Tigoro нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление