Как стать автором
Обновить

Комментарии 28

А вы как-нибудь учитываете DPI экрана в своём UI? Например, чтобы элементы управления имели одинаковый физический размер на любых устройствах.
В целом очень интересный проект, желаю вам творческих успехов!

Кстати, только что прочитал статью и захотел спросить тоже самое.
В своё время пришлось очень сильно извращаться чтобы заставить Qt приложение выглядеть одинаково на Windows и на MacOS с ретина дисплеями. QtQuick тогда был ещё в зачаточном состоянии.

В Qt сейчас есть поддержка High DPI мониторов, я упоминал об этом в своей статье.

Да, спасибо, я читаю ваши статьи :)

Пока что размер всегда 1 к 1 в пикселях. В процессе как раз разработка решения для разных размеров. Так как графика вся растровая, то будут готовиться «паки» под разные разрешения, автоматически. То есть закидываешь все в максимальном разрешении, движок сам делает уменьшенные копии. Затем, в зависимости от реального разрешения и физического размера выбирается соответствующий «пак» с нужным размером текстур. При этом система координат уже будет не 1 к 1, ее можно будет настраивать либо как какое-то фиксированное разрешение, либо в физических единицах (дюймы, сантиметры, миллиметры).

Еще есть идея сделать векторную графику. Перед рендерингом формировать полигональные меши, без текстур, но с подкрашенными вершинами. Затем уже рисовать только меш. Причем, с ними можно провернуть тот же трюк как и с линиями, добавив «обводку с альфой» по краям

С таким подходом у вас сразу возникнут проблемы с рендерингом на низких разрешениях. Очень часто иконка 32х32 при уменьшении до 16х16 даёт много визуальных артефактов, которые правятся только вручную.

Согласен. Думаю для таких случаев сделаю возможность самому добавлять уменьшенные версии некоторых текстур. Отчасти еще хочу бороться с этим эффектом с помощью кратного уменьшения х2, х4. Учитывая это можно подготавливать графику так, чтобы она хорошо уменьшалась.

Но лучше всего конечно будет векторная графика

Векторная графика при размере 16х16 вряд ли как-то поможет.

Тут может быть интересным как иконки реализованы в BeOS/Haiku

Эх, где Вы были с этой статьей шесть лет назад… Статью добавил в избранное, может в будущем пригодится.
При запуске PetStory.exe серый экран (весь реп рядом). Это нормально?
Да, это нормально :) Вы запускаете игру, и пока там ничего нет. Попробуйте запустить Editor.exe

Шикарная работа!

Спасибо!
Выглядит отлично! А как у вас устроен state management? А то мне после реакта ничего в голову не приходит.
Не совсем понял что подразумевается под state management… Реакция на клики и другие сообщение от виджетов?
Ваши 9-slice спрайты, очень похожи на nine-path png, из Android. (https://habr.com/ru/post/113623/) Если вы их не подсмотрели, а сами придумали, то рекомендую ознакомиться с nine-path.
Так-же, посмотрите как в Android решена проблема с разными разрешениями. Это может натолкнуть вас на правильные мысли.
Интересно, посмотрю, спасибо
Мощно! В одиночку такой редактор запилил.
НЛО прилетело и опубликовало эту надпись здесь
Да, все это поверх opengl
НЛО прилетело и опубликовало эту надпись здесь
Честно говоря даже не знаю… Можно смотреть на другие UI-библиотеки в качестве примеров

Layout и функциональность очень напоминает Unity Editor. Но то что имплементировано с нуля — выше всяких похвал.

Как дела с потоками?
Классика с UI thread? Как можно из другого потока выполнить что-то в UI thread? Например добавить новую кнопку.
Пока что у меня однопоточность

Очень похоже на Godot Engine.

Выглядит очень круто

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории