LINUX.ORG.RU

с++ UI MVVM фреймворк(DirectX, Vulkan, Metal)

 , ,


1

3

Разрабатываю кроссплатформенный C++ UI с аппаратным 3D и MVVM

Уже полгода в соло пишу мультиплатформенный C++23 фреймворк для приложений с MVVM-интерфейсом и встроенной 3D-графикой.

Ссылка на страницу проекта (там цели, вин-сборка, 4K-видео и свежие скрины): https://gpu-mvvm.pages.dev/

Почему пишу тут: изначально принял решение о поддержке Linux из коробки так как вижу перспективы развития. Но исторически так сложилось что почти нет опыта использования Linux и в округе нет, активных, знакомых пользователей этой ос, а мне нужна обратная связь чтобы не понаделать того, что не нужно.

Поэтому просьба к сообществу: если у вас наболели конкретные проблемы или грабли, связанные с разработкой или поведением UI-приложений под современный Linux/Wayland — поделитесь, пожалуйста. Постараюсь учесть всё в архитектуре.

P.S. Если у кого-то вызовет гнев то, что пишется своё при живом Qt (и других хороших системах) — не расстраивайтесь и проходите мимо(возможно просмотр страницы проекта сможет ответить на Ваши вопросы). Как говорит шеф: свой велосипед ближе к телу :)

Расскажите, для ъ, планируется или есть редактор форм и какой будет подход к проектированию интерфейсов?

anonymous
()

Во-первых указанный сайт не открывается (РКН?)

Во-вторых название слишком общее, по нему трудно будет найти

В-третьих, стандарт С++ уже 26

То что нет зависимости от кутэ и видимо жтк-хрени - большой плюс проекта.

Основное требование у меня было бы - чтобы можно было взять проект на этом фреймворке и собрать его одной командой цмаке на любой поддерживаемой системе. Чтобы никаких зависимостей от дыбаса, жлибц, сустемд и т.п. И чтобы хдр поддерживался.

Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 1)
Ответ на: комментарий от anonymous

Привет)

Да, редактор будет иначе боль) Пока отложил, ещё кор не до конца сформирован. В начале взялся за него, но понял, что я один, а время не резиновое (стратегическое отступление).

Представление такое: на каждый вариант вёрстки (платформа, конкретика на платформе) можно будет открыть вьюгу и редактировать. Но при этом айдентики элементов на разных платформах могут совпадать (допустим какая-то кнопка, общая для всех форм с одинаковой логикой поведения).

Пока тестовый проект ассетов правлю руками.

k119_55524
() автор топика
Ответ на: комментарий от anonymous

Тут есть проблема: как и сказал опыта с линуксом нет и круга общения нет с пользователями линукса, поэтому потребность не известна. Мои выводы о потребностях в поддержке х11 на основе интернет статистики, то есть весьма поверхностны. Поэтому сюда и написал, чтобы из первых рук, так сказать, познать дзен)

Думаю проблем не должно возникнуть надо только обёртку под х11 платформу делать(но только по потребностям)

k119_55524
() автор топика
Ответ на: комментарий от Lrrr

Привет)

ХЗ, может и РКН, я из РК, не поубегант) , ссылку на ютуб выложу тут, может пролезет: https://www.youtube.com/watch?v=yw834oa1Wu4

Название - что нибудь придуумаю, потом, когда результат будет)

По поводу 26 версии: да, модно, молодёжно только андроид студии побоку модные течения(на модулях с++ тоже обжёгся, не все иде до конца понимают).

По поводу вашего требования - тут у нас они совпадают на 100%, сам так хочу. Сейчас то что видно на видео можно собраться под линукс, виндовс, андроид, макос и айос из одного проекта(уже). Но функционала пока мало поддерживается. Я из геймдева и делаю подобие (повторюсь - подобие) юнити(анрил) но с уклоном в юай.

k119_55524
() автор топика

https://gpu-mvvm.pages.dev/

сайт при скроллинге на адекватном по производительности устройстве выдает 7фпс


Что сразу портит впечатле. Не хочется думать, что фреймворк бцдет такой же.

BruteForce ★★★★★
()
Последнее исправление: BruteForce (всего исправлений: 1)

аналог кутэ в самом деле не нужен. нужно то, на чём можно собрать интерфейс как у сони плюйстейшн только так чтобы и не вникая и чтоб лёгкий был настолько, что RTX 3050 даже частоты не повысил отображая это. впф/авалония не справились

Laferadze
()

Android+Vulkan

Звучит как плохая идея, как по мне: я тыкал с SDL3 и получил долгий старт, черный экран при смене окон, краши при восстановлении фокуса(последнее поди сдл3 баг). Остановился на опеглес2.

BruteForce ★★★★★
()
Ответ на: комментарий от Laferadze

Да, верно, ничей аналог не делаю.

Мне надо быстрый старт, малый размер, сбережение батарейки, мввм + 3д(нормального качества) из коробки и сборка с кнопки под любую платформу.

У меня есть конкретное приложение под который делаю фрейворк но за 3 копейки поделюь с другими) А за особо ценные советы организую бесплатную раздачу)

k119_55524
() автор топика
Ответ на: комментарий от BruteForce

Так нигде, репо приватное)

Код не обещал)

Прошу у форумчан поделиться проблемами при разработке приложений с юай на линукс(и не только). Тоесть прошу обратной связи. Если есть возможность. Пожалуйста)

k119_55524
() автор топика
Ответ на: комментарий от k119_55524

И вижу на видево что комменты на русском, ну ок.

На линукс мильион проблем с юай.

Например:

  • malloc на каждый виджет и вообще фризы при изменениях в отображении (как будто бы болячки ретейнд-моде? но я не шарю)
  • бывает что приложение даже закрывается долго
  • неконсистентность стилей приложений на разных фреймворках
  • аппаратное ускорение графики где не надо. Твоё «+вулкан» начнёт будить мою дискретную видимокарту, что неприятно само по себе, а ещё затормозит старт на пару секунд.
BruteForce ★★★★★
()
Ответ на: комментарий от BruteForce

Обратился к друзьям и родственникам в РФ посмотреть сайт. Выборка от Калининграда до Владика. Ни кто не пожадовался с впн, без впн - проблемы) В основном смотрели на телефонах.

Возможно на вашей стороне, временно, проблемы с инетом. Бывает. Время сейчас такое.

k119_55524
() автор топика

...принял решение о поддержке Linux из коробки так как вижу перспективы развития. Но исторически так сложилось что почти нет опыта использования Linux...

У меня одного разрыв шаблона?

sparkie ★★★★★
()
Ответ на: комментарий от k119_55524

Я бы забил на Х11, по крайней мере, на первое время. Как ни крути, а стандарт уходящий, а ты один. Доделай Кор, Вейланд, редактор, или что ты там хочешь. Уже потом можно будет об этом подумать. Или не думать.

bbc69
()
Ответ на: комментарий от bbc69

Честно говоря, по-моему тут можно с тем же успехом в принципе на Линукс забить. Не хочется, чтобы это было воспринято как негатив просто крики «ненужно», но всё же будем честны: очередной фреймворк мог бы быть интересен линуксоидам, если бы он обладал хоть какими-то фичами по сравнению с другими, но при этом хотя бы был тоже открытым. Проприетарный фреймворк без исходников никому (гипербола, хотя не удивлюсь, что прям буквально никому кроме автора) на Линуксе не интересен даже при наличии каких-то преимуществ (если только они не прям революцию в софтостроении делают, а они явно не, да и то не факт).

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от k119_55524

А… Идея интересная, но чтобы в 2026 году заинтересовать кого-либо закрытым фреймворком, когда есть куча открытых – ну это надо очень-очень веские основания иметь.

P.S. И да, сайт у меня на Ростелекоме тоже не открывается.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от k119_55524

Не пытаюсь когото заинтересовать, а прошу обратной связи

Ну как бы обратная связь в отсутствие интереса работать вряд ли будет, так что это вещи взаимосвязанные.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

А что бы Вы хотели? Есть конкретные предложения, просьбы?

Меня домком попросил в подъезде лампочку поменять, поменял, в замен - ничего(кроме общего состояния домовледения). Живу както с этим, не тужу. Никого не напрягаю требованиями - а мне чего с этого!!! Просто попросил обратной связи: ктото выше написалл про х11, в этом сообщении смысла и информации, для меня, больше чем от большинства ответов здесь же.

Кто только какие озабоченности не выражает а мне другое надо) Поделитесь, пожалуйста, опытом)

Ну выложу исходники, и все всё бросят и как начнут всё под лупой изучать и рассматривать??? Я, так точно, такого бы не делал, да и от других такого поведения не ожидаю.

k119_55524
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария