Page 46 of 47

PictureView 3 — просмотр изображений различных форматов

Posted: Sun 07 Apr, 2013 22:25
by SEt
В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.

Дальнейшее развитие версии 1.5, переделано под API Far 3.0.



Об извлечении плагинов из дистрибутивов ACDSee.


PS: API как было убогим в Far 2, так и осталось...

PictureView 3 — просмотр изображений различных форматов

Posted: Sat 07 Sep, 2019 23:06
by SEt

Latest post of the previous page:

Да, есть такое, в PV вызывался CoUninitialize при не успешном CoInitializeEx. В следующей версии будет исправлено.

Но в данном случае – это была очень полезная ошибка, так как иначе вот это прошло бы тихо:
drkns 02.09.2019 21:09:11 +0100 - build 5463
1. Инициализируем COM как multithreaded, вроде бы так правильнее в нашем случае.
Какая прекрасная идея: "вроде бы так правильнее"! А что должны сделать плагины? Как им понять, что теперь COM работает по-другому?

EDIT:
Ну и MSDN говорит, что
Because OLE technologies are not thread-safe, the OleInitialize function calls CoInitializeEx with the COINIT_APARTMENTTHREADED flag. As a result, an apartment that is initialized for multithreaded object concurrency cannot use the features enabled by OleInitialize.
Applications that use the following functionality must call OleInitialize before calling any other function in the COM library:
  • Clipboard
  • Drag and Drop
  • Object linking and embedding (OLE)
Так что в плагинах ещё что-то может принципиально отвалиться, если они теперь обязаны жить в COINIT_MULTITHREADED.

PictureView 3 — просмотр изображений различных форматов

Posted: Sun 08 Sep, 2019 02:40
by DrKnS
SEt wrote:
Sat 07 Sep, 2019 23:06
А что должны сделать плагины?
Плагины не должны строить предположения и зависеть от состояния по умолчанию.

Вы не можете предполагать, что COM инициализиован.
Вы не можете предполагать, что COM не инициализиован.
Вы не можете предполагать, что COM инициализирован как multithreaded.
Вы не можете предполагать, что COM инициализирован как не multithreaded.

Почему?
Потому что плагинов - легион.
Представьте, что фар вообще не трогает COM (раньше так и было).
Любой другой плагин может быть вызван до вас и сделать по-другому.
Любой shell extension, загруженный EMenu до вас, может сделать по-другому.
Это не сейчас изменилось, это всегда так было.
Как им понять, что теперь COM работает по-другому?
Пример "как понять" - в предыдущем сообщении.
Если режим вам безразличен - отлично.
Если принипиально надо апартмент - всегда можно создать новый тред и инициализировать его там.

PictureView 3 — просмотр изображений различных форматов

Posted: Sun 08 Sep, 2019 03:36
by SEt
DrKnS wrote:
Sun 08 Sep, 2019 02:40
Это не сейчас изменилось, это всегда так было.
Не было этого всегда. Вот специально проверил на довольно старой версии Far3 без плагинов: COM инициализирован в COINIT_APARTMENTTHREADED, то есть кто-то там случайно изменить это не мог.
DrKnS wrote:
Sun 08 Sep, 2019 02:40
Если режим вам безразличен - отлично.
Мне то без разницы – легко перекомпилировать.
А вот зачем потребовалось изменять это в Far'е и потенциально ломать плагины – не ясно. Не всё можно пересобрать.

PictureView 3 — просмотр изображений различных форматов

Posted: Tue 10 Sep, 2019 11:26
by 2useven10
SEt wrote:
Sun 08 Sep, 2019 03:36
Мне то без разницы – легко перекомпилировать.
Когда ожидается обновлениие?

PictureView 3 — просмотр изображений различных форматов

Posted: Tue 10 Sep, 2019 15:13
by SEt
Новая версия:
  • Полная поддержка увеличения изображений методом ближайшего соседа.
  • Новый декодер на основе libtiff.
  • Обновлены многие декодеры.

PictureView 3 — просмотр изображений различных форматов

Posted: Tue 10 Sep, 2019 22:57
by pukan1
Microsoft Windows [Version 6.1.7601]
GeForce GT 630

Far Manager v3.0.0.5454
PictureView v3.2019.9.10

Вместо любых JPG картинок показывает серый прямоугольник.
PNG, GIF, WDP работают нормально.

Замена JpegRec.pvd на предшествовавшую версию проблему решило.
Прошу разобраться в чем может быть причина такого поведения JpegRec.pvd в новой версии.

PictureView 3 — просмотр изображений различных форматов

Posted: Tue 10 Sep, 2019 23:18
by HaRT
pukan1 wrote:
Tue 10 Sep, 2019 22:57
GeForce GT 630

Far Manager v3.0.0.5454
PictureView v3.2019.9.10
У меня на Nvidia GeForce GT 640 всё нормально. Windows 8.1 x64, Far 3.0.0.5470 x86, PictureView v3.2019.9.10.
Проверьте на сайте Nvidia, свежие ли у вас драйверы.

PictureView 3 — просмотр изображений различных форматов

Posted: Tue 10 Sep, 2019 23:28
by pukan1
HaRT wrote:
Tue 10 Sep, 2019 23:18
Проверьте на сайте Nvidia, свежие ли у вас драйверы.
Драйверы 391.35 и согласно https://www.geforce.com/drivers это самые актуальные для моей конфигурации.

Еще раз подчеркну что предыдущий JpegRec.pvd работает отлично в точно тех же условиях, в которых новый - нет.


PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 08:23
by 2useven10
pukan1 wrote:
Tue 10 Sep, 2019 22:57
Вместо любых JPG картинок показывает серый прямоугольник.
+1

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 08:27
by 2useven10
JpegRec.pvd подозрительно сильно похудел.

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 10:21
by Pasha_ZZZ
Win 10 Pro x64, Far x64 3.0.0.5472, GeForce 1030, дрова 430-е. Серые прямоугольники на JpegRec

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 11:28
by Pasha_ZZZ
Обновил дрова до вчерашних 436.30 - ничего не изменилось. Снес настройки плагина (SQLite) - ничего не изменилось.

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 14:38
by DVall
Win 7 SP1 x64, Far x64 3.0.0.5472, Intel(R) HD Graphics 4600 (драйвер 14.12.2017) - Работает.

Win 7 SP1 x64, Far x64 3.0.0.5472, GeForce 1080 (драйвер 436.30) - Работает.

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 16:51
by SEt
Это не драйвера.
Единственное крупное изменение с JpegRec – эта версия собрана Clang, а предыдущие ICC.
Вот, попробуйте пересобранную в ICC (хоть и другой версии) x86:
JpegRec.pvd.7z

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 17:26
by Pasha_ZZZ
х86 не катит, фар не той системы ;-)

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 17:42
by SEt
Так и знал, что кто-то захочет x64... Вот, смотрите:
JpegRec_x64.pvd.7z

PictureView 3 — просмотр изображений различных форматов

Posted: Wed 11 Sep, 2019 17:45
by skipik
У меня этот плагин вообще странно работает. Взял чистый фар (ночную сборку), добавил плагин, смотрю одну картинку (Enter) - ок, Esc, другую картинку (Enter) - показывается всё равно первая. Настройки все по умолчанию, ничего не трогал.
Видео - Intel HD 3000, драйвер - тот, который десятка ставит сама 9.17.10.4459.
Как добиться нормально работы плагина?