LINUX.ORG.RU

Rust + GUI

 ,


1

7

@RazrFalcon, по мотивам треда Ищу годную либу для 2D графики на чём ты остановился? Мне бы правда с GUI на поиграться с хелловорлдами на расте… QPainter брать и не париться? Хочу графы рисовать, как Graphviz, только мышкой. Хотя даже не графы, деревья.

★★★★★

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

Ответ на: комментарий от RazrFalcon

Ну биндингов к Qt как таковых и нет.

Их и не должно быть. Потому что это слишком упорото: пердолиться с неудобным низкоуровневым языком типа ради безопасности, а в итоге притащить прицепом цистерну крестокода. Биндингов к gtk это тоже касается.

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

Битмап/текстура и фигачим.

На сишке как-то GUI делали и без ООП.

Вы видели сорцы любой GTK проги? Это ад и израиль.

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

На сишке как-то GUI делали и без ООП.

Но для этого там пришлось сделать объектную систему. На расте ничего подобного gobject сделать невозможно в принципе, ибо безопасность!

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

пердолиться с неудобным низкоуровневым языком типа ради безопасности, а в итоге притащить прицепом цистерну крестокода. Биндингов к gtk это тоже касается.

99% либ на расте – это обвязки к сишным библиотекам, так что все в порядке вещей :) главное, чтобы на цветастой коробочке была написана гордая фраза «На 100% растический продукт», а то, что там внутри генномодифицированный код на Ненавистной Сишке, сектанта не волнует :)

anonymous
()

Давно думал вот было бы что-то как Lazarus, только на rust или dlang. Интерфейс чтоб opengl, как в kivy.

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

Nuklear неплох, своим подходом.

Сейчас будет ответ в стиле - «слишком примитивно», «мало звездочек», «шрефты, вы видели шрефты? я эксперт».

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

Ну он действительно примитивный, что бы его можно было встраивать во всякое немощное.

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

Зачем гнаться за этим убожеством?

Это оно сейчас убожество, а примут через несколько лет новый стандарт - и перестанет. А наработки, которые не про web - пропадут…

Einstok_Fair ★★☆
()

C + SDL2 + OpenGL -> GL_POINTS (текстурированные) + GL_LINE_STRIP (халява). Хотя если тебе ещё и над каждой точкой текст рендерить придётся пердолиться чуть дольше. Тебе вроде как десятки миллионов точек со связями надо (вспоминая прошлый тред).

К слову ты хотел умную отрисовку что бы точка если не видна при увеличении не рисовалась вот именно GL_POINTS так и работают на экране 10 000 000 точек но так что видны только 500 000, fps over 1000, а если всё на экране то fps 10~20

Пиши свою кастомку кпаинтер/sdl/etc или чё ещё не важно, главное рендерить самому. На love2d можно ещё сбацать по сути

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Наконец-то «главный» «эксперт» по «OpenGL» на этом сайте отозвался на зов о помощи.

Хотя если тебе ещё и над каждой точкой текст рендерить придётся пердолиться чуть дольше.

Да, «чуть» «дольше», ЛОЛ :)

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

Можно сделать лимит на масштаб. Всё равно оно в кашу превратится на таком масштабе. Для OpenGL - это ни о чём.

RazrFalcon ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

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

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

Если внутри элементов рисуется текст - то всё переворачивается с ног на голову. Тут проще отредерить всё в текстуры и позиционировать уже их. А это бесплатно даже на cpu.

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

Это если вам ехать, а не шашечки.

Кому ехать, а не шашечки, те просто берут проверенные временем и индустрией решения – Православную Сишечку или Католическую Плюсишечку.

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

Так пусть редактируют. Всё равно отдельный окном/вижетом будет. Не inline же.

В общем про Rust можно сразу забыть, увы. Тут или Qt или web.

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

Тогда буду думать, какой другой хеловорлд пилить, раз раст до этого не дошел. Уже без графики, я понял что с ней всё трудно.

peregrine ★★★★★
() автор топика

@vertexua: Я сдался

@RazrFlacon: В общем про Rust можно сразу забыть, увы.

@peregrine: Тогда буду думать, какой другой хеловорлд пилить, раз раст до этого не дошел.

Читайте эти и другие откровения фанатов раста в треде «Казаки пишут проект сложнее, чем println!("Hello World")»

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

Чёт вот такое сделай https://www.youtube.com/watch?v=JvByfe3brpw на любом удобном языке + opengl points/lines у меня там текстурки, а у тебя могут быть текстурки с текстом, челобрек тыкает в нужную точку (у меня произвольные позиции и придётся перебирать, но для скорости лучше сделать сетку и привязку к ней точек) и печатает, жмёт энтер и в текстурку заливается текст 1 раз и всё. Хз короче. В любом случае лучше возьми просто на что глаза глядят и что приятнее самому и просто тупо начни делать. Как минимум будет прототип и явные косяки задумки. Любой язык + любая шняга умеющая в opengl и понеслося. Смысл же всё равно один, отобразить нечто на плоскости, а как это уже вопрос что нужно, удобно или быстро. Удобно это любой тулкит, быстро это восход солнца вручную вулкан/гл/ или около того. Что-то можно совместить. Культя вроде как может в текстурки писать мне барс показывал (ник забыл ой вей)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от anonymous

Наконец-то «главный» «эксперт» по «OpenGL» на этом сайте отозвался на зов о помощи.

Гы. Если бы.

Да, «чуть» «дольше», ЛОЛ :)

Ну, в принципе да KEK. Но тут смотря что юзать, кто запрещает для текста что-то прям готовое готовое взять, а остальное самому

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Вам надо с Флаконом дуэт организовать, ты бы затирал про OpenGL, а он – про «шрефты». Rim Team, ой, Dream Team конечно же.

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

У C++ не туго, разве что синтаксис совсем больной. Я так-то и в связках С++ и OpenGL(правда старый как говно мамонта, сейчас иначе надо писать)/DirectX и C# + OpenGL(правда старый как говно мамонта, сейчас иначе надо писать)/DirectX немного писал. А уж проще клепания форм в Visual Studio на C# тяжело что-то придумать.

peregrine ★★★★★
() автор топика
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

Если GUI - то только Qt. Тут вариантов нет. Если чисто картинки генерировать - то опять Qt. Для раста ничего толкового нет.

Ну с графикой/GUI у всех языков туго.

OK.

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

Дык C# - это win only, что сильно всё упрощает. И то у них там 100500 тулкитов уже. Чёрт ногу сломит. Я же про кроссплатформенный ui толкую.

Ну и у C++ все сложно. Есть морально устаревший Qt и недопиленный QML. Про убогось самих плюсов умолчим.

PS: в глубине души я понимаю почему электрон популярен, ибо альтернатив как таковых и нет. Но тащить целую ОС ради отображения пары кнопок - это трындец.

RazrFalcon ★★★★★
()

Я дико извиняюсь, а из этого вашего раста можно дёргать функции Win32 API? Ну там CreateWindow(), ShowWindow()

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

Example

// ...
let ret = unsafe {
        MessageBoxW(null_mut(), wide.as_ptr(), wide.as_ptr(), MB_OK)
    };
// ...

unsafe уже в первых 10 строках. В этом весь раст, лол :)

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

PS: в глубине души я понимаю почему электрон популярен, ибо альтернатив как таковых и нет. Но тащить целую ОС ради отображения пары кнопок - это трындец.

Никто не мешает написать простую библиотеку рисующую кнопки и сделать ее кроссплатформенной, например способной рисовать и в браузере на canvas и на opengl на десктопе и мобильном софте

Скорей всего таковые уже есть

Тот же Lazarus использует для элементов qt, gtk3, и еще чтото

ism ★★★
()
Последнее исправление: ism (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

Дык C# - это win only, что сильно всё упрощает. И то у них там 100500 тулкитов уже. Чёрт ногу сломит. Я же про кроссплатформенный ui толкую.

У них был и есть Xamarin.Forms(поддерживает Linux), с тех самых пор как они купили компанию Мигеля.

Но видимо Xamarin не пошёл, и они решили сменить название: https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/

теперь Xamarin.Forms будет называться Multi-platform App UI, чтобы уже все узнали, что C# это Multi-platform.

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

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

RazrFalcon ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Nuklear и подобные - это малопригодный треш, который подходит только для отладки игр. К реальному GUI он не имеет ни какого отношения.

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

У C++ не туго, разве что синтаксис совсем больной.

Нормальный там синтаксис. Для такого большого и древнего языка так даже очень приличный. Сложность там не в синтаксисе. Ты лучше посмотри на раст: намного проще крестов, никакого сишного наследия, а синтаксис кошмарный.

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

Никому не сделось писать GUI либы для напрямую десктопа, потому что угнаться за вебом уже официально невозможно.

Интересно. За 20 лет появлись какие-то невероятные виджеты, которых нет или они невозможны на нативном гуе?

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

Прекрасный синтаксис, код очень легко читается. Просто его выучить сначала надо.

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

В смысле невозможны? Все возможно если можно в нужный цвет покрасить пиксель. Просто готового уже больше в вебне

vertexua ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.