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

Здесь можно обсудить ваш любимый плагин.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.

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



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


PS: API как было убогим в Far 2, так и осталось...
Attachments
PictureView3_20140813_last_xp.7z
Последняя версия, работающая на WinXP
(321.22 KiB) Downloaded 789 times
2useven10
Posts: 4071
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 189 times

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

Post by 2useven10 »

Latest post of the previous page:

Smitis wrote: Mon 12 Nov, 2018 15:48 В плагине присутствует вызов GetGestureInfo из user32, который отсутствует в XP/2003.
В 'последней версии, работающей под XP' нет.
Smitis
Posts: 1626
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 20 times
Been thanked: 41 times

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

Post by Smitis »

2useven10 wrote: Mon 12 Nov, 2018 16:23 В 'последней версии, работающей под XP' нет.
Это в версии, которая официально задекларирована под XP (2014.08.13). В реальности, вплоть до предыдущей версии 2017.10.18 работало и под XP и под 2003, хотя они официально вроде как и не поддерживались. Хотя 586 не написал версию, но брал "из шапки", у него скорее всего версия от 2014. Каюсь, не посмотрел, что в шапке только эта версия, поэтому моё замечание к нему, скорее всего, не относится. :wacko:
Last edited by Smitis on Mon 12 Nov, 2018 17:56, edited 2 times in total.
Разум когда-нибудь победит.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Могу порекомендовать запустить Process Monitor и отфильтровать по статусу Access Denied.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Ещё мысль: антивирус. Если он есть – попробуйте его удалить (не просто 'выключить', а именно удалить).
586
Posts: 10
Joined: Wed 02 Sep, 2009 23:52
Been thanked: 1 time

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

Post by 586 »

Посмотрел Process Monitor'ом - ошибка возникает при обращении к direct draw:

Image


UPD Всё, спасибо, разобрался. Слетели атрибуты безопасности к файлу ddraw.dll, из-за этого и возникала ошибка.
Last edited by 586 on Wed 14 Nov, 2018 15:05, edited 1 time in total.
DV
Posts: 427
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 22 times
Been thanked: 15 times

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

Post by DV »

Какой-то эпичный глюк нашёл... Воспроизводится с PictureView3_20140813_last_xp под Far30b5005.x86, Far30b5226.x86 и Far30b5317.x86.
Есть у меня папка %USERPROFILE%\Downloads, и в ней - штук 300 разных файлов, в их числе файл "scan1.jpg".
Если нажать на нём F3 (просмотр картинки в PictureView) и нажать "+" (увеличение масштаба), то при обычной сортировке по имени файлов всё в порядке.
А теперь, почему я вспомнил про сортировку. Если в файловой панели нажать Ctrl+F5 (сортировка по дате/времени) и теперь на том же файле "scan1.jpg" нажать F3 и "+", то FAR или подвисает или вылетает.
Воспроизводится с чистым FAR, с созданным с нуля профилем (настройками) у которого в папке Plugins только PictureView.
Однако, если этот же самый файл "scan1.jpg" скопировать из папки %USERPROFILE%\Downloads в другую папку, и проделать описанные выше действия там, то FAR не подвисает и не вылетает. Какая-то мистика. Как исследовать?

Возможно, в исследованиях мог бы помочь FExcept - но я не представляю, как его активировать в FAR3...
Last edited by DV on Fri 16 Nov, 2018 21:57, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

DV wrote: Fri 16 Nov, 2018 21:47Как исследовать?
Первым делом скачайте PDB ровно для своей сборки Фара (в т.ч. той же битности). Файл Far.pdb положите рядом с Far.exe, запустите Фар без прочих плагинов и воспроизведите ошибку. Если подвиснет, то создайте мини-/дамп процесса (например, с помощью Task Manager'а — в контекстном меню процесса на вкладке Details пункт Create Dump). Если всё время вылетает, притом без красного окошка в Фаре, где тоже можно создать дамп, то надо действовать, как говорит Майкрософт. А если вылетает с красным окошком, то для начала откройте так call stack и скопируйте его сюда как текст.
DV wrote: Fri 16 Nov, 2018 21:47 Возможно, в исследованиях мог бы помочь FExcept - но я не представляю, как его активировать в FAR3...
Надо папку FExcept положить в папку Фара — до всего, что написано выше.

P.S. Кстати, а если в той же папке Downloads сделать копии этого файла, одна из которых чуть-чуть (на долю секунды) новее, а другая чуть-чуть старше (можно выставить через свойства файла), то падение/зависание воспроизводится?
Фар есть инструмент, а не нянька. © 2009 DrKnS
DV
Posts: 427
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 22 times
Been thanked: 15 times

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

Post by DV »

Удалось получить call stack в Visual Studio:


Выходит, в opengl32.dll падает?
Last edited by DV on Fri 16 Nov, 2018 22:24, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 9524
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 228 times

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

Post by HaRT »

DV wrote: Fri 16 Nov, 2018 22:14 в opengl32.dll падает?
Похоже на то, но причины могут быть разнообразные.

Попробуйте то, что я написал в P.S..
Ну и посмотрите, наисвежайшие ли у вас драйверы видяшки, — от них очень многое зависит.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 310 times

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

Post by DrKnS »

DV wrote: Fri 16 Nov, 2018 21:47 Воспроизводится с чистым FAR, с созданным с нуля профилем (настройками) у которого в папке Plugins только PictureView.
DV wrote: Fri 16 Nov, 2018 22:14
ConEmuHk.dll!7e12eddb() Unknown
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 310 times

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

Post by DrKnS »

Вообще стек дивный:

Code: Select all

 	0. 0PictureView.dll!0fe48572()
 	1. [External Code]	
 	2. Far.exe!compare_natural_base           Line 257
 	3. Far.exe!compare_natural_numeric_icase  Line 286
 	4. 0PictureView.dll!0fe49058()
 	5. Far.exe!Plugin::ExecuteFunctionSeh     Line 364
Я представляю, как могло получиться 5-4-3: фар вызвал плагин, плагин захотел что-то посортировать, используя LStrnicmp API.
Но 2-1-0 - это дичь: compare_natural_base Line 257 - это вызов WinAPI CompareStringW.
Без мутных хуков, видимо, не обошлось.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Падает внутри opengl32.dll на вызове TexSubImage2D. То, что на отдельном файле не наблюдается легко объяснить: в PV же опережающее декодирование – оно сразу переходит декодировать соседние, и проблемы, скорее всего, именно на соседних.

DrKnS, что дивного то? "[External Code]" явно говорит о том, что дальше стек VS просто придумала, и он не имеет ничего общего с реальностью.
DV
Posts: 427
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 22 times
Been thanked: 15 times

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

Post by DV »

Замечание насчёт соседней картинки - это в самую точку!
Нашёл картинку, которая в одиночку подвешивает PictureView3 в свежераспакованном FAR3 просто по нажатию F3: прикрепленная "Techn.sepcification_800_New Korea.jpg". Уж не знаю, что с ней не так. (Проблема воспроизводится, даже когда единственную эту картинку скопировать в свежую папку с FAR3 и нажать F3 там).
Кстати, после обновления драйверов NVidia проблема не исчезла:

Возможно, библиотека opengl32 не входит в драйвер NVidia - или просто давно не обновлялась?
Attachments
Techn.sepcification_800_New Korea.jpg
Last edited by DV on Sat 17 Nov, 2018 17:24, edited 2 times in total.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Что за видеокарта хотя бы? И версия её драйверов.
Что PV пишет в заголовке (если успевает что-то написать)? Если не успевает – другие jpeg'и каким декодером декодируются (опять же, в заголовке)?

opengl32.dll – это системная библиотека. Честно говоря, я бы рекомендовал перейти на Win7: не на столько уж она больше ест ресурсов, а проблем куда меньше.
DV
Posts: 427
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 22 times
Been thanked: 15 times

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

Post by DV »

SEt wrote: Sat 17 Nov, 2018 22:33 Что за видеокарта хотя бы? И версия её драйверов.
Windows 7 SP1 64-bit, nVidia GeForce GTX 770, версия драйверов последняя (416.94).

Уже, как советует Майкрософт, полностью удалил старый драйвер nVidia вместе с видеоадаптером из Диспетчера Устройств. После перезагрузки
система предложила стандартный драйвер VGA - и тогда установил драйвер версии 416.94. А проблема с Picture View и этой картинкой осталась.
Пробовал в настройках плагина из декодеров оставлять только PVD и только GDI+ - проблема остаётся и с тем, и с другим; только с PVD сразу вылетает весь FAR3, а с GDI+ он подвисает.
Пробовал также убирать галочки [x] Use mipmaps for resize, [x] Use shaders for resize, [x] Optimize shaders speed и [x] Dither - без двух последних вылетает весь FAR3, а с ними подвисает.
Иногда при подвисании фон консоли становится ярко-синим (не тёмно-синим, как у FAR3, а ярко-синим), и на этом фоне можно прочитать что-то вроде "application does not have enough memory to perform this operation".
Во все случаях call stack указывает на всё тот же opengl32.

Другие фотографии в Picture View просматриваются и масштабируются нормально.
Last edited by DV on Mon 19 Nov, 2018 23:17, edited 2 times in total.
SEt
Posts: 469
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Во-первых, если система Windows 7 SP1 64-bit, то почему старинная версия PV для XP? Возьмите же новую версию.

Во-вторых, у драйверов nVidia начиная с некоторой версии конфликт с хаками 32-битного Far'а. Попробуйте 64-битный Far.
Post Reply

Return to “Обсуждение плагинов”