Bug 1151

Summary: Meta Trader и значки на черном фоне, либо их полное отсутствие
Product: WINE@Etersoft Reporter: Denis V. Chernosov <denis0.ru>
Component: ОбщееAssignee: BUGS@Etersoft <bugs>
Status: CLOSED INVALID QA Contact: Илья Шпигорь <shpigor>
Severity: normal    
Priority: P5 CC: kondratyuk, lav, olezha
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 100, 1143    
Attachments: Иконки в МетаТрейдере обесцвечиваются.

Description Denis V. Chernosov 2008-02-14 09:19:05 MSK
Про черные иконки:
 По утверждению разработчиков Meta Trader-а,
корень бед лежит в кривой реализации
функции alphablend из mfc42.dll (точнее, наверное, в
кривой интерпретации результатов работы
этой функции в команды X-серверу). Поскольку
есть только одна версия этой библиотеки,
которая позволяет себя использовать
легально и версия эта довольно устаревшая,
то, используя ее, нужно выставлять эмуляцию
win98. Если подкладывать более позднюю версию
библиотеки, то наверное таких проблем не
будет.

 Если иконки не отображаются вообще, то
значит нужно лезть в xorg.conf
Section "Screen"
....
        DefaultDepth     24
        DefaultFbBpp     32 #!!!
....
EndSection

N.B.! На старых машинах (особенно с новыми мониторами большой дюймовости), 24 бита могут очень серьезно грузить видеокарту (а если она интегрированная, то и систему в целом), но меньше выставить не получится - работает только такое сочетание. Если получится наладить нормальный вывод на 16 битах, то это будет хороший подарок обладателям старых маломощных машинок.

Важно! Если у вас и без этого всё нормально,
то не надо эту опцию включать "про запас".
Насколько я знаю, она снижает
быстродействие видеокарты. И еще: на очень
древних машинах (где видеокарты еще
втыкаются в PCI), даже это может не помочь.
 Хотя, замечу, что те же машины, под виндой отображают все нормально, т.е. это глюки wine или X-сервера и кривые/урезанные драйверы видеокарт.

Если возможно как-то автоматически решать эти проблемы (к примеру, определять версию mfc42 и принудительно выставлять параметры эмуляции для приложения) - было бы просто чудесно.
Comment 1 Denis V. Chernosov 2010-01-21 16:22:33 MSK
Created attachment 1466 [details]
Иконки в МетаТрейдере обесцвечиваются.
Comment 2 Denis V. Chernosov 2010-01-21 16:22:52 MSK
"Апну" тему...

На данный момент есть следующая статистика:
1) Максимальное число инсталляций без этого бага у меня получилось с эмуляцией win98 + 24 битный цвет в настройках X-ов.
2) При эмуляции winXP в навигаторе однозначно появляется черный фон у значков.
3) При 16-битном цвете иконки на панелях становятся бесцветными. Тоже практически везде.
4) На некоторых слабеньких интегрированных видеокартах не помогает ничего - значки панелей бесцветные или вовсе не видны, в Навигаторе либо черный фон, либо тоже никаких значков.

5) DefaultFbBpp     32  давно не использую, толку от неё никакого.
6) На wine Etersoft@Local mfc42.dll уже лежит, но проблемы это не решает.

Наверное излишне говорить, что под виндой всё корректно работает на тех же самых машинах и с 16-битным цветом и с 24-битным...
Comment 3 Denis V. Chernosov 2010-01-21 16:28:40 MSK
"Апну" тему...

На данный момент есть следующая статистика:
1) Максимальное число инсталляций без этого бага у меня получилось с эмуляцией win98 + 24 битный цвет в настройках X-ов.
2) При эмуляции winXP в навигаторе однозначно появляется черный фон у значков.
3) При 16-битном цвете иконки на панелях становятся бесцветными. Тоже практически везде.
4) На некоторых слабеньких интегрированных видеокартах не помогает ничего - значки панелей бесцветные или вовсе не видны, в Навигаторе либо черный фон, либо тоже никаких значков.

5) DefaultFbBpp     32  давно не использую, толку от неё никакого.
6) Тестировал на всех версиях wine. И ванильной и от Этерсофта и платный и бесплатный.

Наверное излишне говорить, что под виндой всё корректно работает на тех же самых машинах и с 16-битным цветом и с 24-битным...

Comment 4 Vitaly Lipatov 2010-01-21 17:23:49 MSK
Илья, что мы тут можем сделать?
Comment 5 Илья Шпигорь 2010-01-22 11:20:17 MSK
> Илья, что мы тут можем сделать?

В оригинальном wine проблема с обесцвечиванием иконок решилась. Насколько знаю, благодаря реализации AlphaBlending.

С черным фоном все не очень хорошо. Там у них не приавильно работает отрисовка масок в функциях DrawIcon.
Comment 6 Илья Шпигорь 2010-01-22 11:26:28 MSK
Мы можем сделать хак для нашего eterhack, но к wine-public я бы его прикладывать не стал. Т.к. в оригинальном wine в последнее время эти функции достаточно часто меняются, причем в лучшую сторону.

Можно еще потратить кучу времени на исследование проблемы и попробовать сделать корректный патч для winehq.
Comment 7 Vitaly Lipatov 2012-01-18 02:55:57 MSK
Больше не поручаем заданий bugs@.
Comment 8 Олег Шевченко 2024-03-20 23:15:16 MSK
Задача относится к релизу 2.1. , который больше не поддерживается. Аннулирую.