Summary: | Не отображаются рисунки в диалоге настройки | ||
---|---|---|---|
Product: | [Поддержка проектов] КОМПАС 3D | Reporter: | Виталий Булгаков <bulgakov> |
Component: | Тестирование | Assignee: | Евгений Шиц <sea> |
Status: | CLOSED FIXED | QA Contact: | Олег Шевченко <olezha> |
Severity: | minor | ||
Priority: | P5 | CC: | kondratyuk, lav, mais, mx, vitperov |
Version: | v10 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | ALT Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | 3997 | |
Дата напоминания: | |||
Bug Depends on: | 17256, 1935, 5157 | ||
Bug Blocks: | 753, 3970, 5101, 8900 | ||
Attachments: |
скриншот
скриншотwin Проблема с этой картинкой в Windows Скриншот на текущей сборке wine Тест битмапа в диалоге скриншот |
Created attachment 190 [details]
скриншотwin
В новой версии вайна (1.0.8) этой проблемы быть не должно. По симптомам та же причина, что и в баге № 79 Подтверждаю. Отрисовывается только часть. Приэтом это окно настроек почему-то уходит вниз. Проблема состоит в том, что для данных картинок не реализована перерисовка в Компасе. Доказательством служит скриншот, сделанный из-под Windows, на котором окно не перерисовало эту картинку по приходу сообщения WM_PAINT. То, что при создании данная картинка не отображается под Wine не является грубой ошибкой, хотя возможно стоит сделать такое же отображение картинок при создании, как и в Win. Проблем с другими картинками из этого диалога (в пункте "Шероховатость"), для которых прописана ПЕРЕрисовка, не возникает. Created attachment 214 [details]
Проблема с этой картинкой в Windows
(In reply to comment #4) > Проблема состоит в том, что для данных > картинок не реализована перерисовка в > Компасе. Доказательством служит скриншот, > сделанный из-под Windows, на котором окно не > перерисовало эту картинку по приходу > сообщения WM_PAINT. То, что при создании данная > картинка не отображается под Wine не > является грубой ошибкой, хотя возможно > стоит сделать такое же отображение > картинок при создании, как и в Win. Проблем с > другими картинками из этого диалога (в > пункте "Шероховатость"), для которых > прописана ПЕРЕрисовка, не возникает. > Такая же картина наблюдается на новой сборке. wine-1.0.9-alt23 wine-etersoft-sql-1.0.9-alt7 libwine-1.0.9-alt23 libwine-gl-1.0.9-alt23 Возможно, разумнее будет если разработчики Компаса решат эту проблему. Например, сделав всю отрисовку по WM_PAINT, поскольку бага частично есть и в windows (см. скриншот комментария #5). (In reply to comment #7) > Возможно, разумнее будет если разработчики > Компаса решат эту проблему. Например, > сделав всю отрисовку по WM_PAINT, поскольку > бага частично есть и в windows (см. скриншот > комментария #5). > См. переписку с Компасом на эту тему. Created attachment 1162 [details]
Скриншот на текущей сборке wine
На текущей сборке wine ситуация немного изменилась - картинка есть, но ее размер определяется не верно.
Для вывода картинки используется static контрол. При создании ему назначается bitmap, по которому он определяет свой размер. В случае с Компасом, картинка при создании не задается, поэтому размер static'а остается 10x10 пикселей. Также назначить bitmap контролу можно через сообщение STM_SETIMAGE, но как показали трейсы, в Компасе оно не посылается. Кроме этих двух способов в msdn'е больше ничего не сказано. Чтобы решить багу необходим тест от Аскона, который бы показал, как они назначают картинку static контролу. Битмапы мы рисуем сами. Static используется только для позиционирования левого верхнего угла. Тест во вложении Created attachment 1166 [details]
Тест битмапа в диалоге
Выложил патч. Проблема заключается в том, что вывод картинки происходит в DC контрола. Область, в которой может отрисоваться картинка ограничена visible и clip region'ами конкретного DC. Для static контрола эти регионы определяются его размером. Решение заключается в том, чтобы назначать всем static контролам со стилем SS_BITMAP (т.е. используемым для вывода изображений) visibe region равный клиентской области родителя. Это назначение происходит в BeginPaint, потому что именно он используется в конструкторе класса CPaintDC для подготовки DC к рисованию. Принято. eter21 Патч вносит ошибку #3997 и нуждается в доработке. Илья, нужно убедиться, что проблемы не возникнут нигде, кроме 1С. Для CAD-версии пока оставляем этот патч. Патч на эту багу необходимо прикладывать с патчему на #3970: user32: Add the checking to standart static control class (eterbug #3970 #827) Он есть в рассылке. Проблема должна решиться, т.к. дополнение добавляет проверку на класс контрола, т.е. расширение области рисования происходит только если BeginPaint вызывается для окна класса Static. P.S. в ветке eterhack сейчас приложены оба патча, а в eter-1.0.10 только на #827. Откатил патчи: commit 00d681664584241bc56ea2c7a9bda2e24e4278dc Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Thu Apr 30 11:57:06 2009 +0400 user32: Set the visible region of the static control with SS_BITMAP style to the parent client rect (eterbug #827) и commit dbc6137153c41d8cc3de27dd1da03c10c3d49195 Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Fri May 22 07:46:02 2009 +0400 user32: Add the checking to standart static control class (eterbug #3970 #827) Функции SelectVisRgn больше не существует. Чем её заменить пока не понятно. Возможно теперь она больше не требуется и можно просто убрать строчку SelectVisRgn( lps->hdc, vis ); Надо разобраться и переделать патчи. Изменения касаются только ветки eterhack. только эта одна бага блокирует закрытие второго этапа... надо либо перенести ее на доработки... либо закрыть... решив. (In reply to comment #19) > только эта одна бага блокирует закрытие > второго этапа... надо либо перенести ее на > доработки... либо закрыть... решив. Насколько понимаю, для Компаса у нас отдельная ветка - etercad. Если да, то багу можно смело закрывать, а на эту проблему в eterhack заводить новую багу. Если мы хотим, чтобы Компас работал на нашем eterhack, то надо переделывать патч. Откладываем задачи, к которым не обращались более 100 дней. Склонировал ВМ на AltWS10, заказал сборку wine@etersoft c sales, установил $ epmqp wine wine-etersoft-9.0.14-eter0.p10.1.x86_64 wine-etersoft-winetricks-20240223-eter0.p10.1.noarch wine-etersoft-grdwine-0.5.7.1-eter1.p10.2.x86_64 wine32-etersoft-grdwine-0.5.7.1-eter1.p10.2.i586 wine-etersoft-gecko-2.47.4-eter0.p10.1.noarch wine-etersoft-network-9.0.4-eter0.p10.1.x86_64 wine-etersoft-programs-9.0.14-eter0.p10.1.x86_64 wine-etersoft-mono-8.1.0-eter0.p10.1.noarch wine32-etersoft-9.0.14-eter0.p10.1.i586 wine-etersoft-full-9.0.14-eter0.p10.1.x86_64 wine-etersoft-common-9.0.14-eter0.p10.1.noarch Перешел в /var/ftp/pvt/Windows/CAD/Kompas/KOMPAS-3D_v22_x64/v22/x64/KOMPAS-3D_v22_x64 и выполнил $ wine_install_kompas Компас установил, ошибок при установке не было. В ~/.wine/drive_c/ProgramData/ASCON создал license.ini с содержанием: [Common] host = license.server Перешел в настройки -> параметры -> текущий чертеж Линии -> осевая линия Итог: ошибка воспроизводится, некорректно отображается рисунок ( отображается лишь часть) Created attachment 6076 [details]
скриншот
Ошибка воспроизвелась в W@E 9.0.14 Необходимо завести задачу в разработку. Закрываю. |
Created attachment 189 [details] скриншот В диалоге Сервис - Параметры некорректно отображаются (точнее, не отображаются) некоторые рисунки. Пример Сервис - Параметры -Новые документы - Графический документ - Перекрывающиеся объекты -во вложении 2 скриншота, один снят в Windows второй в Linux, на втором рисунка нет. Проверять рисунки в остальных вкладках диалога.