gridinp 3 29 мая, 2023 Опубликовано 29 мая, 2023 · Жалоба Пользуемся уже третий год малоизвестным пока TGUI, это элементы управления нарисованные SFML, попроще колнечно чем Qt, но для многих embedded самое то Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 27 октября Опубликовано 27 октября · Жалоба On 5/29/2023 at 6:23 PM, gridinp said: Пользуемся уже третий год малоизвестным пока TGUI, это элементы управления нарисованные SFML, попроще колнечно чем Qt, но для многих embedded самое то Вот дошли руки попробовать. После Qt первое впечатление от этой штуки - небольшое отторжение. Вы под Windows ей пользовались? Есть ли реально работающие примеры на этой библиотеки? Стандартный собрал под Windows - при увеличении размера окна мышью образуется черная область, а перерисовка только после того как мышь отпустишь. Походу здесь ручками надо все ивенты обрабатывать и перерисовывать вручную. На embedded таких проблем наверное не было, там окна статичные. Также не понял как качество отрисовки повысить, по умолчанию на скруглениях видны прямоугольники. PS: backend SFML-Graphics Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 28 октября Опубликовано 28 октября (изменено) · Жалоба В 27.10.2024 в 22:08, C2000 сказал: На embedded таких проблем наверное не было, там окна статичные. ну для desktop с переменными размерами она наверное плохо подходит антиалиасинг надо включить в sfml, вот инициализация из нашей программы: sf::ContextSettings settings; settings.antialiasingLevel = 8; char title[100]; sprintf(title, "(%d.%s.%s)", atoi(softwareRevYY)-2000, softwareRevMM, softwareRevNum); if(fullScreen) win = new sf::RenderWindow(sf::VideoMode(displayWidth, displayHeight), title, sf::Style::Fullscreen, settings); else win = new sf::RenderWindow(sf::VideoMode(displayWidth, displayHeight), title, sf::Style::Close, settings); она удобна своей простотой, можно просто влепить кнопку в любое место экрана без parent-виджета, но конечно такого сервиса, как пружинки в qt там нет P.S. да потом же ещё с qt проблема, что для embedded у них своя система лицензирования, в ней нет LGPL и нужно отчислять с каждой установки программы, а не за рабочее мнесто Изменено 28 октября пользователем gridinp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 28 октября Опубликовано 28 октября · Жалоба 1 hour ago, gridinp said: антиалиасинг надо включить в sfml, вот инициализация из нашей программы: Спасибо, то что надо! Еще бы разобраться с автоматическим масштабированием окна при растягивании мыши. И думаю вполне можно пользоваться. Google говорит это проблема Windows, которая в SFML не решена. Надо искать обходные пути. Вроде бы все стандартные компоненты есть, Layout-ы есть(надо пробовать как работает), темы есть - по сути аналог CSS/QSS. Boost signal еще прикрутить(не уверен что под embedded работать будет) и можно MVVP делать. Ну и если что то еще нужно будет можно добавить библиотек. Qt тоже же просто набор множества библиотек в обвертке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 28 октября Опубликовано 28 октября · Жалоба В 28.10.2024 в 11:02, C2000 сказал: Еще бы разобраться с автоматическим масштабированием окна при растягивании мыши. И думаю вполне можно пользоваться. вот наверное https://www.sfml-dev.org/tutorials/2.6/graphics-view.php#showing-more-when-the-window-is-resized Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 28 октября Опубликовано 28 октября · Жалоба 1 hour ago, gridinp said: вот наверное https://www.sfml-dev.org/tutorials/2.6/graphics-view.php#showing-more-when-the-window-is-resized Похоже всё немного сложнее. Проблема как раз в том что sf::Event::Resized возникает только когда отпускаю кнопку мыши. Пока просто растягиваю-сжимаю не отпуская мышь его нет. Надо как-то отслеживать текущий размер с переделённой частотой и обновлять если он изменился. Но проблема в том что window.getSize(); тоже обновляется только после того как отпустишь мышь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 28 октября Опубликовано 28 октября · Жалоба В 28.10.2024 в 12:16, C2000 сказал: Похоже всё немного сложнее. Проблема как раз в том что sf::Event::Resized возникает только когда отпускаю кнопку мыши. ну да похоже, что внутри что-то не то https://en.sfml-dev.org/forums/index.php?topic=25102.0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 28 октября Опубликовано 28 октября · Жалоба 22 minutes ago, gridinp said: ну да похоже, что внутри что-то не то https://en.sfml-dev.org/forums/index.php?topic=25102.0 Да и похоже авторы даже не собираются это решать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 30 октября Опубликовано 30 октября · Жалоба On 10/28/2024 at 2:33 PM, gridinp said: ну да похоже, что внутри что-то не то https://en.sfml-dev.org/forums/index.php?topic=25102.0 Оказалось в SDL3 решили эту проблему - они архитектуру перестроили на колбэки без блокирующего полинга. Но всё равно как то растягивается всё с подтормаживанием, эту черную область видно если быстро мышкой потянуть, но она потом автоматически заполняется и layout-ы автоматом растягиваются. Возможно надо что то в настройках SDL подкрутить, для большей плавности/скорости отрисовки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 30 октября Опубликовано 30 октября · Жалоба на github уже sfml 3.0.0-rc1, может что-то сделают Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 31 октября Опубликовано 31 октября · Жалоба 17 hours ago, gridinp said: на github уже sfml 3.0.0-rc1, может что-то сделают Судя по их обсуждениям у них позиция: это проблема Windows, пусть разработчики Windows исправляют ОС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 31 октября Опубликовано 31 октября · Жалоба 19 hours ago, C2000 said: Возможно надо что то в настройках SDL подкрутить, для большей плавности/скорости отрисовки Использование OpenGL вместо Render решает и эту проблему. В итоге на Windows удалось заставить нормально работать только с бэкендом SDL_OPENGL3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться