Rust + conrod
Запись от Curry размещена 21.09.2019 в 20:36
Показов 4654
Комментарии 9
|
Всё началось с того, что NeoMatrix придумал программистам задачку. Задачка была тривиальная и никому делать её не хотелось. А я решил, если уж делать, то на чём ни будь мало знакомом, используя задание с учебной целью. Rust я как то изучал немного, потом забыл. А язык интересный. Решил сделать на нём. На https://crates.io удалось найти только одну GUI библиотечку (из за простоты назвать её фреймвёком ну никак нельзя), которая поставилась без продолжительного бития в бубен. Это conrod. Понравилось что в деле GUI-строения в Rust процветает модульный подход. К примеру, графика может отрисовываться с помощью OpenGL (у меня этот вариант), а может через игровой движок piston, или через vulkan. Для кроссплатформенного создания окон используется отдельный крейт, для цикла обработки сообщений другой. То есть, в перспективе, можно пилить какую то свою часть. Пока же интегрирующая всё это conrod сыровата и бледновата. Нет даже копипаста из/в поля редактирования текста. Но, по самому минимуму, работает, что и демонстрирую По желанию NeoMatrix-а телефоны сохраняются в текстовых файлах, а не в нормальной базе. Имена файлов создаю по числовым идентификаторам сотовых операторов,а не именам операторов, потому как, кто его знает, какие названия у операторов могут быть, может с недопустимыми для имён файлов символами. Тем более, что у NeoMatrix-а linux, а пробелы в именах операторов бывают. Кодировка опять же. В общем, по кодам имена файлов, а имена операторов первой строкой в файле. Для простоты номера телефонов можно вводить только как 10 цифр без минусов и пр. Если NeoMatrix-у очень потребно вводить с минусами - приделаю. Впереди номера подразумевается +7, что, впрочем, из картинки, думаю, ясно. Программа выполняет только то что заказано - позволяет ввести номер, проверяет у Мегафона, какой это оператор и добавляет в базу. Вставка из буфера обмена отсутствует, т.к. её нет в conrod. В принципе, можно повесить на горячую клавишу или отдельную кнопку вставку. Наверняка для Rust уже сделали крейт для кроссплатформенного использования буфера обмена. Исходник phone_db.0.1.1.zip. Большую часть размера архива занимают шрифты которые взяты из демок к conrod-у. Инструкция по сборке: 1. Установить rust. Линуксоиды наверняка предпочтут устаревшие версии из репок своих линуксов. 2. Убедится что cargo доступно в PATH. 3. Распаковать архив с исходниками, перейти в него и выполнить
| |||||
Размещено в Rust
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 9
Комментарии
-
Запись от Black Fregat размещена 23.09.2019 в 15:19
-
Запись от Curry размещена 23.09.2019 в 15:43
-
После обновления скомпилировалось на трёх системах, на двух даже запустилось )
На третей
Code 1 2
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: GlutinCreationError(NoAvailablePixelFormat)', src/libcore/result.rs:999:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
Запись от Black Fregat размещена 24.09.2019 в 13:04
-
Остаётся понять чем отличается третья.
https://github.com/PistonDevel... ssues/1031
Третья - VM? Поддерживается ли OpenGL?
Пишут что можно попробовать закомментировать в main.rs вот это
C 1
.with_multisampling(4)
Запись от Curry размещена 24.09.2019 в 15:29
-
Запись от Black Fregat размещена 24.09.2019 в 16:11
-
http://lux.graphics/doc/glium/... ments.html
Скорее всего виртуалка это не поддерживает. Или федора. Может, даже, в ней можно как то openGL апгрейнуть.
В общем, работать и без неё может, но, в теории, медленее. Для такого приложения всё равно.Запись от Curry размещена 24.09.2019 в 16:26
-
Запись от Curry размещена 06.05.2020 в 22:33
-
Запись от XLAT размещена 06.05.2020 в 22:46
-
Запись от Curry размещена 20.07.2022 в 20:16


