Обновить
118
Вадим Лопатин@Buggins

Пользователь

19
Подписчики
Отправить сообщение
Скоро будет возможность загрузки layout из xml (как в Android) или чего-то похожего на QML. Выбираю формат. (Issue #58 в трекере)

Планируется автоматическая привязка загруженных виджетов к полям класса при совпадении ID виджета и названия переменной (например, в ресурсе есть Button с id=«button1», а в классе — переменная Button _button1 — после загрузки ссылка на созданный виджет будет сохранена в эту переменную), а так же автоматическое назначение обработчиков сигналов — по id виджета и названию (например, если есть виджет с id=«button1» а в классе — метод bool onButton1Click(Widget src) — этот метод будет назначен на onClickListener загруженного виджета.
Подумаю, что интересного можно рассказать.

А если коротко, используется двухфазная модель measure / layout как в Android.
Перерисовка всегда идет полностью.
При включенном OpenGL все равно только полностью можно перерисовывать.

Есть разделение на основную часть и backend — код для поддержки конкретной платформы (создание окон, отрисовка bitmap или создание OpenGL контекста, трансляция событий мыши и клавиатуры, ...).

Графика может рисоваться в bitmap буфер c помощью software renderer, или в OpenGL контекст. Общий интерфейс прячет реализацию.
LDC я попробовал — он тормозной. Один файл компилирует столько же времени, сколько DMD — проект из сотни файлов.
Для разработки не очень подходит из-за тормознутости.
Скорее для финального билда.
Пока еще не догнал.
CTFE и метапрограммирование в D все еще на порядок лучше.
Чистый синтаксис.
Многое без garbage collector реализовать сложно или невозможно.
mixins — навряд ли когда-нибудь будут в C++.
Windows — dmd2.0.66 helloworld (подсчет средней длины строки с stdin) занимает 189K
Это нормально, окно только маленькое. Надо вручную растянуть.
Для Qt 4 есть пара биндингов.

Не знаю, насколько эти проекты живые.
Можно сделать темы под каждую систему похожие на нативные.
Еще проблемы — меню на маке и Unity. Должно быть в системном меню, вместо этого — в верхней части окна. Смотрится чужеродно.

Под windows 32bit — 1.4Mb, linux 64bit — 4Mb
Почему под Linux больше — непонятно.
Примера/туториала нет, но можно сделать.
Есть какой-нибудь DSFML проект, на котором можно поэкспериментировать?
Надо реализовать Platform и Window под DSFML.
Добавил скриншот для Ubuntu.
На Маке проверить не могу — нет его у меня.
Могу добавить. Выглядит точно так же, только рамка окна другая и шрифты.
Пакетный менеджер и билдер — два в одном.
DUB — очень полезная штука.
Практически стандарт.
Копируется указатель на первый элемент и количество элементов. Элементы массива не копируются.
Запишутся ли указатель с длиной сразу в rvalue или лишний раз скопируется — не уверен.
Оффтоп, но надеюсь, что кому-нибудь будет интересно.
Я разрабатываю GUI библиотеку на D — DlangUI
  • Кроссплатформенная, с поддержкой ускорения отрисовки с помощью OpenGL.
  • API напоминает Android UI.
  • Не враппер — написано на D, поэтому легко расширять, добавлять новые виджеты.
  • Внешний вид можно значительно изменять с помощью тем (похожи на темы Android).
  • Unicode и поддержка нескольких языков интерфейса.
  • Адаптация интерфейса под разные размеры и разрешения экрана.

Демо, нужны GIT, DUB и DMD:
    # Скачать исходники с GitHub
    git clone https://github.com/buggins/dlangui.git
    cd dlangui
    # example 1 - демо, в котором используется большинство виджетов
    dub run dlangui:example1 --build=release
    # tetris - демо, игра TETRIS
    dub run dlangui:tetris --build=release

А если так?

auto power2 = delegate(int X) { return X * X; };
Поддержка NDK там появилась?
Последняя версия CoolReader на маркете уже поддерживает tor proxy для .onion из коробки.

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность