Войти
ПроектыФорумОцените

Фреймворк LDL (21 стр)

Страницы: 120 21 22 2327 Следующая »
#300
8:02, 3 дек 2023

JordanCpp
Конгратс! Кстати на гитхабе имхо неверно описана main idea в заголовке. Звучит как "я хочу перевелосипедить sdl". Я бы перефразировал, сделав акцент как раз на работу под старым софтом и железом.

#301
8:12, 3 дек 2023

Vitorio
Спасибо. Исправлю и дополню редми.

#302
18:45, 3 дек 2023

Новость ещё опубликована на opennet.ru

#303
21:52, 3 дек 2023

А где же DOS?

#304
21:58, 3 дек 2023

gamedevfor
> А где же DOS?
Обязательно будет. Проект собирается OpenWatcom компилятором. Но просто не хватает времени, всё свои хотелки воплотить сразу. Делаю поочерёдно по мере приоритетности

#305
22:02, 3 дек 2023

Хочу всех поблагодарить за советы, ответы и критику фреймворка. Особенно помощь по графике, общих вопросов по программированию и архитектуре.

Спасибо!

#306
22:25, 3 дек 2023

Особенно за терпение. Потому, что когда в форум залетает чел, с вопросами про OpenGL и Windows 95. Это воспринимается  от лица ответчика странно:)

#307
23:29, 4 дек 2023

JordanCpp
> Windows 95

Ну ваще то на неё ставился DirectX 8.0, так что врядли эту систему можно считать Retro.
В DOS конечно проблем было ну очень много, но как мне кажется основная это очень мало памяти.
Портировать под DOS более менее современную инди игру не реально так как нужен минимум гиг памяти как видео так и оперативной. А вот поддержка консолей возможно была бы уместной.

#308
7:43, 5 дек 2023

gamedevfor
Вий
64 мб это не так уж и мало. OpenWatcom v2 позволяет сделать порт под dos не переписывая проект. Поддерживает C++ вроде даже 11, STL и  исключения. Нужно переделать рендер и события ОС. И только 32 битный режим.

#309
7:44, 5 дек 2023

gamedevfor
> Ну ваще то на неё ставился DirectX 8.0, так что врядли эту систему можно
> считать Retro.
Рендер directx 8 будет. Так как dx 7,8,9  очень похожи. Будет +- копипаст.

#310
(Правка: 10:01) 7:49, 6 дек 2023

gamedevfor
> В DOS конечно проблем было ну очень много, но как мне кажется основная это
> очень мало памяти.
С переходом на Win3.11 (Win1.0) появились "проблемы" создания программ
  под графическую оболочку и поддержки её драйверами для видеокарт
(хотя теже игры лишь с Win95/98 стали появлятся под Windows, а память DOS расширялась
использованием разных расширителей).

Под Win3.11 ограниченное количество видеокарт с поддержкой 3D (вопрос поднимался на old-dos.ru
в обсуждение). Под Linux (тех времён) с этим наверное ещё хуже.

P.S. Предположу, что для DOS может оказаться полезным для целей топика и использование
графического окружения как в проектах Gem оболочки (исходники открыты) или NanoX (XFDOS)

Изображение

Интересно, что на исходниках оболочки Caldera на рубеже 2000-х был сделан проект
OpenLinux

#311
(Правка: 18:19) 9:44, 6 дек 2023

KPG
Надо будет посмотреть. Сейчас приоритет это полный редми на гитхабе и уроки по LDL, допил оставшегося функционала.

#312
11:22, 19 дек 2023

Сделал некоторые обновления, последующие обновления буду делать в новогодние праздники.
И ещё раз предлагаю всем желающим присоединиться к проекту.

Добавил базовую поддержку 3dfx Glide
Добавил поддержку сборки для Borland C++ 6.0 и выше.
Добавляю поддержку d3d11

Теперь общий список поддерживаемых компиляторов. И библиотека не просто собирается, но и корректно работает. Код очень портабелен и уверен соберется и на других компиляторах.
1. GCC 3 и выше
2. MinGW 3 и выше
3. OpenWatcom V2 и выше
4. Visual C++ 6.0 и выше
5. Borland C++ 6.0 и выше

Как всё это работает:
Библиотека поддерживает 2D API под капотом в зависимости от выбранного рендера это API работает на OpenGL, Directx и теперь Glide.
Но так же есть доступ к нативному программированию графических API напрямую, OpenGL, DirectX. Glide. К примеру можно написать игру на Glide и запускать как на нативном железе, так и используя врапперы.
Для разработки и тестирования интеграции с Glide я использую dgVoodoo.

Можно используя Glide создать игру и воспользоваться библиотекой LDL для управлениями окнами и событиями ОС. Работать будет на Windows, Linux + на нативном железе. Вполне не плохо.
Linux версия немного отстаёт от Windows, до нового года подтяну.

Заинтересовался портированием под Android. Пока гуглю информацию, настраиваю Android студию.

#313
13:21, 19 дек 2023

Пример кода на Glide. Заливаем экран зелёным цветом.

#include <LDL/Core/RuntimeError.hpp>
#include <LDL/Graphics/Window.hpp>
#include <LDL/Graphics/Render.hpp>
#include <LDL/Enums/RenderMode.hpp>
#include <LDL/APIs/Glide/GlideLoader.hpp>

#include <iostream>

using namespace LDL::Glide;
using namespace LDL::Graphics;
using namespace LDL::Events;
using namespace LDL::Enums;
using namespace LDL::Core;
using namespace LDL::Math;

int main()
{
  try
  {
    GlideLoader glideLoader;
    RenderContext renderContext(RenderMode::Glide);
    Window window(&renderContext, Vec2u(0, 0), Vec2u(800, 600), "01_Glide_Line");

    Event report;
    FxU32 handle = (FxU32)window.NativeHandle();

    grGlideInit();
    grSstSelect(0);

    FxBool result = grSstWinOpen(handle, GR_RESOLUTION_800x600, GR_REFRESH_60Hz, GR_COLORFORMAT_RGBA, GR_ORIGIN_UPPER_LEFT, 2, 1);

    if (!result)
      throw RuntimeError("grSstWinOpen failed");

    grVertexLayout(GR_PARAM_XY, 0, GR_PARAM_ENABLE);
    grColorCombine(GR_COMBINE_FUNCTION_LOCAL, GR_COMBINE_FACTOR_NONE, GR_COMBINE_LOCAL_CONSTANT, GR_COMBINE_OTHER_NONE, FXFALSE);

    Color screenColor(34, 177, 76);

    while (window.Running())
    {
      grBufferClear(screenColor.toInt(), 0, 0);

      while (window.GetEvent(report))
      {
        if (report.Type == IsQuit)
        {
          window.StopEvent();
        }
      }

      grBufferSwap(1);

      window.PollEvents();
    }

    grGlideShutdown();
  }
  catch (const RuntimeError& error)
  {
    std::cout << error.what() << '\n';
  }

  return 0;
}
#314
14:43, 19 дек 2023

Заливаем экран зелёным цветом.

А выглядит код, словно игра змейка 2д будет.

Страницы: 120 21 22 2327 Следующая »
ПроектыФорумОцените