Как увеличить скорость отрисовки на canvas?
Модератор: Модераторы
Чето вас не в ту степь понесло.
>>запущенный на RaspberryPi неприлично медлено отрисовывает элементы интерфейса.
Элементы интерфейса в LCL рисуются "нативными" средствами на данной платформе т.е. winapi, gtk2, qt, carbon - основные и еще несколько в alpha состоянии. Зачем всякие OpenGL и OpenCL+OpenCV для интерфейса? им место в специализированных графических приложениях
>>Если дело дошло до низко-уровневой отрисовки, то есть лучшая (становящаяся стандартом де-факто) альтернатива чем OpenGL : OpenCL+OpenCV
Для нужд топикстартера вполне хватит OpenGL который сейчас и еще долго будет основным стандартом в (3D)графике. ТС только начал ковырять данную тему а уже хочет "впечатляющих" результатов)) Подход "рисовать влоб" при отрисовке больших объемов данных будет тормозным на любом гапи, поэтому выбор гапи существенной роли не играет, важно загрузить его по полной не "пустой" работой
>>запущенный на RaspberryPi неприлично медлено отрисовывает элементы интерфейса.
Элементы интерфейса в LCL рисуются "нативными" средствами на данной платформе т.е. winapi, gtk2, qt, carbon - основные и еще несколько в alpha состоянии. Зачем всякие OpenGL и OpenCL+OpenCV для интерфейса? им место в специализированных графических приложениях
>>Если дело дошло до низко-уровневой отрисовки, то есть лучшая (становящаяся стандартом де-факто) альтернатива чем OpenGL : OpenCL+OpenCV
Для нужд топикстартера вполне хватит OpenGL который сейчас и еще долго будет основным стандартом в (3D)графике. ТС только начал ковырять данную тему а уже хочет "впечатляющих" результатов)) Подход "рисовать влоб" при отрисовке больших объемов данных будет тормозным на любом гапи, поэтому выбор гапи существенной роли не играет, важно загрузить его по полной не "пустой" работой
debi12345 писал(а):Это такой маленький одноплатный компьютер.
Надо смотреть что является узким местом, создающим медленную отрисовку. Загружен ли проц под 100% при отрисовке, есть ли аппаратная акселерация графики (DirectX, OpenGL, OpenCL,..) и поддержка оной драйверами операционки. Если проц слабый, двойная буферизация не помогает и нет акселерации то придется искать оптимальную (для начала эффективнее чем FPImage) GUi-библиотеку - ту же Qt. Насколько помню, LCL имеет вариант настройки на оную.
Аппаратная акселерация есть - OpenGL ES 2.0, но увы LCL ее не задействует, даже через Qt (в версии 4), привязка LCL - Qt5 в самой начальной альфе.
zub писал(а):Зачем всякие OpenGL и OpenCL+OpenCV для интерфейса? им место в специализированных графических приложениях
Вот и ищу способы отрисовки интерфейса с использованием аппаратной акселерации.
>>Вот и ищу способы отрисовки интерфейса с использованием аппаратной акселерации.
LCL и не должен задействовать никакие акселерации. Это дело внутренней реализации qt, gtk или что там у вас.
LCL и не должен задействовать никакие акселерации. Это дело внутренней реализации qt, gtk или что там у вас.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Аппаратная акселерация есть - OpenGL ES 2.0
Она точно работает ? Не софтварная эмуляция случайно ?
LCL и не должен задействовать никакие акселерации. Это дело внутренней реализации qt, gtk или что там у вас.
ИМХО, именно LCL должна вызывать GL-команды (вместо GDI-команд) для отрисовки примитивов - после нее GDI этим заниматься не будет (кроме нескольких блоковых операций).
Исключение - GDI32+ автоматом использующая DirectX (начиная кажется с Висты) не только для игр, но и для всего.
Функция LCL - свести особенности работы с различными тулкитами к VCL синтаксису. Чтото рисовать самостоятельно надо только если конечный тулкит не поддерживает это чтото, ну или если понадобятся всякие кустомдравные контролы. Причем рисовать желательно LCLными методами рисования
>>LCL должна вызывать GL-команды
LCL должна вызывать команды того тулкита который ей указан в качестве библиотеки виджетов LCL. Пока из "саморисуемых" бакэндов имееются только fpGUI и customdraw - оба в непотребном состоянии. Запилите OpenGL бакэнд и всё будет рисоваться средствами OpenGL))
>>LCL должна вызывать GL-команды
LCL должна вызывать команды того тулкита который ей указан в качестве библиотеки виджетов LCL. Пока из "саморисуемых" бакэндов имееются только fpGUI и customdraw - оба в непотребном состоянии. Запилите OpenGL бакэнд и всё будет рисоваться средствами OpenGL))
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Получается, что сейчас если хочешь быстрого GUIя на LCL - ставь Win7+. Если конечно аппаратура позволит 
Как в MSE что ли ? (есть такая опция)
Запилите OpenGL бакэнд и всё будет рисоваться средствами OpenGL))
Как в MSE что ли ? (есть такая опция)
Что значит быстрого гуя? Гуй это кнопки-менюшки-едиты и т.д. Современные компы уже давно его не тормозят (бороздят просторы
) какбы тупо он небыл написан. даже утюг сейчас наверно трудно купить чтоб 2д акселерацию не поддерживал)) у MiniQ явно дровишки какиенибудь непоставлены
>>Как в MSE что ли ? (есть такая опция)
Хз как в мсе, но напрямую лцл не занимается отрисовкой виджетов - это дело системного тулкита или "саморисующего" виджетного бакенда
>>Как в MSE что ли ? (есть такая опция)
Хз как в мсе, но напрямую лцл не занимается отрисовкой виджетов - это дело системного тулкита или "саморисующего" виджетного бакенда
Не разу не замечал тормозов. Могу предположить тормоза кода бездумно напиханого в обработчики onЧетоТам 100500 наформошлепаных контролов, но никак не тормоза отрисовки самих контролов.
Меня недавно один пользователь с lazarus.freepascal.org агитировал перейти на fpGUI, аргументируя тормозами LCL. Адекватных примеров тормозов мы так и ненашли))
Меня недавно один пользователь с lazarus.freepascal.org агитировал перейти на fpGUI, аргументируя тормозами LCL. Адекватных примеров тормозов мы так и ненашли))
Oк. Проинструктируйте MiniQ как заюзать MSE. Оценим получаемый от OpenGL для GUЯ на "утюгах" профит. Но по большому счету это крайность
Вот и этот пример тормозов и выиграша оказался неадекватным))
