Скорость чтения графических форматов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 11:46:43

alexey38 писал(а):И все было гладко, быстро и без моргания даже на тем компах.

Речь, даже не о выводе картинок... речь о выводе стандартных компонентов... По идее Лазару сам должен подготовить картинку, а потом вывести, но лазарус рисует последовательно... выводя каждый компонент по очереди - это и даёт мигание. И переделать это никак... Но если речь о картинках, то действительно можно выводить сразу на канвас... но тогда нужно переписать половину стандартных компонентов или найти альтернативные. Где и как их искать? :arrow: (Если кто знает - прлиииииз оставьте ссылку) :cry: А главное как их безболезненно подменить на уже сформированной форме?

alexey38 писал(а):10 МБ JPEG имеет разрешение явно не по разрешению конкретного TImage

Возможно Вы правы и это - тормозит загрузку файла (здесь обсуждаются два вопроса), первый благодаря debi12345 - выяснили экспериментально, а задержка при загрузке - это второй второй вопрос...

debi12345 писал(а):(=асинхронной отрисовкой отдельных "канвасиков")

Мне непонятно, почему системщики не делают вывод как все gamer-ы собирая всё на одну битмапку которую потом выводят на канву?
Зачем и кому нужно последовательное разделение???


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 12:22:28

Мне непонятно, почему системщики не делают вывод как все gamer-ы

Авторы ОС ? Они не должны париться оптмимзацией отрисовки стэка канвасов - у них и так много работы по части аксселерации атомарных операций.
И они с этой работой справляются на отлично :)

Добавлено спустя 15 минут 33 секунды:
Кстати, в каком виде хранятся картинки в файле ? В моем примере (MSE) - в виде битмапов (это сильно раздувает файл), поэтому не нужна конверсия при отрисовке. А в ВАшем сулчае ? Если в оригинальном формате (JPEG,..) - то возможно выполняются лишние конверсии.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 12:57:28

debi12345 писал(а):в каком виде хранятся картинки

в виде битмапов в TImage.
debi12345 писал(а):у них и так много работы по части аксселерации атомарных операций.

А по моему, вопросами отрисовки стандартных компонентов - не должны заниматься программисты высокого уровня.
Лично я хочу положить 1000 стандартных компонентов на форму и не хочу думать об их выводе т.к. уверен, что - этим занимается ОС.
Зачем программистам высокого уровня в каждой программе изобретать велосипед?


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 13:06:14

Лично я хочу положить 1000 стандартных компонентов на форму и не хочу думать об их выводе т.к. уверен, что - этим занимается ОС

Она и занимается - используя оптимизированные графически API-функции. Используя эти функции столько раз, сколько "попросила" программа. И если "попросила" будет сотню раз на одном месте где надо и не надо, то от оптимизации не останется и следа. А программисты высокого уровня проявляют свой уровень в минимизации "попросила" - как команда QT, которая понимала что смена спсосба отрисовки во всем виджетките будет нелегка но "absolutely doable" :) Проблемой нового дизайна был роутинг событий мыши, клавиатуры и т.п. от субконтролов - нужно вычислять его самим (потому что субконтролов по сути нет - их заменяют зоны на канвасе формы), а не получать в виде готовых событий от ОС.

Добавлено спустя 6 минут 25 секунд:
А программисты высокого уровня проявляют свой уровень в минимизации "попросила"

Оопс, конечно программисты виджеткитов :) QT, GTK, MSEgui, LCL, VCL, MFC, Aero, Metro, dotNET,..
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 13:20:20

debi12345 писал(а): их заменяют зоны на канвасе формы

Касаемо роутинга событий, то все методы давно уже продуманы в игровых движках и там ничего не мерцает и присутствуют всё те же пресловутые окна, а главное есть гораздо более сложные объекты. Соответственно если, бы такая система была бы заведомо продумана и заложена в ОС - это облегчило бы всем программистам жизнь, но внешне - этого бы никто и не заметил.

Это долгая и нелёгкая тема, но к сожалению бессмысленная т.к. ни код Лазаруса ни код ОС - лично я изменить не в состоянии (наверное и Вы тоже).




.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 13:38:30

то все методы давно уже продуманы в игровых движках и там ничего не мерцает

Уровень игрового движка = уровень Qt =уровень MSEgui = уровень LCL,...

ни код Лазаруса ни код ОС - лично я изменить не в состоянии

Код Лазаруса еще как можно измеить :) Почему никто не просветит как дела с нативным LCL-виджеткитом ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 14:20:26

debi12345 писал(а):Код Лазаруса еще как можно измеить

И потом помнить все изменения... А когда выйдет новый релиз - всё переделывать...
Что такое LCL?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 14:24:31

И потом помнить все изменения

Не помнить, а выложить для всеобщего тестированеия - чтобы потом закоммитить в LAZARUS - и народ большое спасибо скажет. Привыкайте - таков опен-сорс :) Какой-есть :)

Что такое LCL

То, на чем базируется графика (и не только) Lazarus. Его движок :)

Добавлено спустя 5 минут 4 секунды:
Или пробуйте что-нибудь альтерантивное одноканвасное - MSEgui (практически нет доки, но есть неплохие туториалы и экзамплы) или QT 4+ (это С++ с мета-компилятором- поэтому нет пошаговой отладки). Или много-канвасный но легковесный FpGUI.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 14:29:44

debi12345 писал(а):и народ большое спасибо скажет.

Если я начну вносить изменения в Лазарус...
Народ начнёт за мной с дубинками бегать... Я же художник, у меня все формы ромашечками будут...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 14:35:45

Если я начну вносить изменения в Лазарус...

А никто и не даст внести новичку. Есть "allowed commiters", они и внесут - после всеобщего "одобрямс" :)

Я же художник, у меня все формы ромашечками будут...

Хм.. убьют за любое отступление от "native OS look"

ПС:
Кстати, в MSEgui очень хорошо сделана поддржка работы с БД, наверное лучше чем в любом коммерческом продукте. А также очень хороша подсистема печати и отчетов.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 14:51:29

Я не понимаю как пользоваться виджетами FpGUI и MSEgui ???
Что там нужно запустить? там одни исходники и примеры...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 14:56:13

Я не понимаю как пользоваться виджетами FpGUI и MSEgui ???

Там есть обычные drag-n-drop "мышовые" IDE. Есть палитра компонентов и т.п.
Все выглядит аналогично LAZARUS, только названия компронентов и свойства чуток другие.

Добавлено спустя 4 минуты 29 секунд:
Есть полноценные инстлляторы с готовыми банарниками, создающими нужные ярлыки и т.п.
http://msegui.org/content/download
http://sourceforge.net/projects/fpgui/files/

Добавлено спустя 2 минуты 10 секунд:
Хмм.. FpGUI выглядит "abandoned". Жаль если Грэм забросил свой отличный проект.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 15:15:47

Всё! Ура! Сделал в лазарусе, чтоб не мигало... (Нужно выводить на один и тот же TImage и не пользоваться TPageControl///)
Осталось победить ScrollBox///



.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Скорость чтения графических форматов

Сообщение debi12345 » 02.02.2013 15:34:01

и не пользоваться TPageControl

Так не пойдет. Это значит уйти от решения реально имеющейся проблемы :) Надо всей толпоq оптимизирвать TPageControl.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость чтения графических форматов

Сообщение vitaly_l » 02.02.2013 15:50:25

debi12345 писал(а):Надо всей толпоq оптимизирвать TPageControl.

Согласен - давайте её победим!
И ещё давайте победим ScrollBox, который почему-то идентифицирует размер Timage - только со второго запуска...
Принудительное указание размера и например,
Application.ProcessMessages; в onPaint у ScrollBox - не помогло :( (хотя ProcessMessages - здесь наверно лишнее...)

Добавлено спустя 25 минут 10 секунд:
При этом если в Timage делать LoadFromFile, то ScrollBox идентифицирует размер с первого раза, а если задавать размер вот так:
Image.Height := 1111;
Image.Width := 1111;
и вот так
Image.Picture.Bitmap.Height :=1111;
Image.Picture.Bitmap.Width := 1111;
То ScrollBox определяет размер только при втором ShowModal формы с изображением, которое draw в Image на ScrollBox...


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 250

Рейтинг@Mail.ru
cron