Pull to refresh
117
0
Вадим Лопатин @Buggins

User

Send message
Скоро будет возможность загрузки 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 из коробки.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity