Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 827 - Не отображаются рисунки в диалоге настройки   Make a simular bug
Summary: Не отображаются рисунки в диалоге настройки
Status: DEFERRED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Графика GDI / DIB / GDIPLUS (show other bugs)
Version: unspecified
Hardware: PC ALT Linux
: P5 normal
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact: Andrey Vusik
URL:
Whiteboard:
Keywords:
Depends on: 1935 5157
Blocks: 753 5101 8900 3970
  Show dependency treegraph
 
In work:
Reported: 2007-10-26 14:56 MSD by Виталий Булгаков
Modified: 2015-02-28 16:51 MSK (History)
3 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
скриншот (15.50 KB, image/png)
2010-11-18 03:58 MSK, Виталий Булгаков
Details
скриншотwin (14.81 KB, image/png)
2010-11-18 03:58 MSK, Виталий Булгаков
Details
Проблема с этой картинкой в Windows (127.07 KB, image/jpeg)
2010-11-18 03:58 MSK, Анатолий Лютин
Details
Скриншот на текущей сборке wine (40.94 KB, image/jpeg)
2010-11-18 03:58 MSK, Илья Шпигорь
Details
Тест битмапа в диалоге (24.63 KB, application/zip)
2010-11-18 03:58 MSK, Виталий Булгаков
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Виталий Булгаков 2007-10-26 14:56:04 MSD
Created attachment 189 [details]
скриншот

В диалоге Сервис - Параметры некорректно отображаются (точнее, не отображаются) некоторые рисунки. Пример Сервис - Параметры -Новые документы - Графический документ - Перекрывающиеся объекты -во вложении 2 скриншота, один снят в Windows второй в Linux, на втором рисунка нет.
Проверять рисунки в остальных вкладках диалога.
Comment 1 Виталий Булгаков 2007-10-26 14:57:02 MSD
Created attachment 190 [details]
скриншотwin
Comment 2 Анатолий Лютин 2007-10-26 18:19:49 MSD
В новой версии вайна (1.0.8) этой проблемы быть не должно. По симптомам та же причина, что и в баге № 79
Comment 3 Анатолий Лютин 2007-11-29 15:20:14 MSK
Подтверждаю. Отрисовывается только часть. Приэтом это окно настроек почему-то уходит вниз.
Comment 4 Анатолий Лютин 2007-12-12 21:01:35 MSK
Проблема состоит  в том, что для данных картинок не реализована перерисовка в Компасе. Доказательством служит скриншот, сделанный из-под Windows, на котором окно не перерисовало эту картинку по приходу сообщения WM_PAINT. То, что при создании данная картинка не отображается под Wine не является грубой ошибкой, хотя    возможно стоит сделать такое же отображение картинок при создании, как и в Win. Проблем с другими картинками из этого диалога (в пункте "Шероховатость"), для которых прописана ПЕРЕрисовка, не возникает.
Comment 5 Анатолий Лютин 2007-12-12 21:02:22 MSK
Created attachment 214 [details]
Проблема с этой картинкой в Windows
Comment 6 Денис Баранов 2008-09-21 17:52:33 MSD
(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
Comment 7 Илья Шпигорь 2009-03-05 10:38:05 MSK
Возможно, разумнее будет если разработчики Компаса решат эту проблему. Например, сделав всю отрисовку по WM_PAINT, поскольку бага частично есть и в windows (см. скриншот комментария #5).
Comment 8 Анатолий Лютин 2009-03-05 14:39:11 MSK
(In reply to comment #7)
> Возможно, разумнее будет если разработчики
> Компаса решат эту проблему. Например,
> сделав всю отрисовку по WM_PAINT, поскольку
> бага частично есть и в windows (см. скриншот
> комментария #5).
> 

См. переписку с Компасом на эту тему. 
Comment 9 Илья Шпигорь 2009-04-23 11:41:42 MSD
Created attachment 1162 [details]
Скриншот на текущей сборке wine

На текущей сборке wine ситуация немного изменилась - картинка есть, но ее размер определяется не верно.
Comment 10 Илья Шпигорь 2009-04-23 11:50:18 MSD
Для вывода картинки используется static контрол. При создании ему назначается bitmap, по которому он определяет свой размер. В случае с Компасом, картинка при создании не задается, поэтому размер static'а остается 10x10 пикселей. Также назначить bitmap контролу можно через сообщение STM_SETIMAGE, но как показали трейсы, в Компасе оно не посылается. Кроме этих двух способов в msdn'е больше ничего не сказано.

Чтобы решить багу необходим тест от Аскона, который бы показал, как они назначают картинку static контролу.
Comment 11 Виталий Булгаков 2009-04-24 16:46:32 MSD
Битмапы мы рисуем сами. Static используется только для позиционирования левого верхнего угла. Тест во вложении
Comment 12 Виталий Булгаков 2009-04-24 16:47:38 MSD
Created attachment 1166 [details]
Тест битмапа в диалоге
Comment 13 Илья Шпигорь 2009-04-30 14:37:34 MSD
Выложил патч.

Проблема заключается в том, что вывод картинки происходит в DC контрола. Область, в которой может отрисоваться картинка ограничена visible и clip region'ами конкретного DC. Для static контрола эти регионы определяются его размером.

Решение заключается в том, чтобы назначать всем static контролам со стилем SS_BITMAP (т.е. используемым для вывода изображений) visibe region равный клиентской области родителя. Это назначение происходит в BeginPaint, потому что именно он используется в конструкторе класса CPaintDC для подготовки DC к рисованию.
Comment 14 Денис Баранов 2009-05-10 16:06:23 MSD
Принято.
eter21
Comment 15 Константин Кондратюк 2009-06-11 17:00:06 MSD
Патч вносит ошибку #3997 и нуждается в доработке.
Comment 16 Константин Кондратюк 2009-06-11 17:12:50 MSD
Илья, нужно убедиться, что проблемы не возникнут нигде, кроме 1С.
Для CAD-версии пока оставляем этот патч.
Comment 17 Илья Шпигорь 2009-06-17 11:30:57 MSD
Патч на эту багу необходимо прикладывать с патчему на #3970:

user32: Add the checking to standart static control class (eterbug #3970 #827)

Он есть в рассылке.

Проблема должна решиться, т.к. дополнение добавляет проверку на класс контрола, т.е. расширение области рисования происходит только если BeginPaint вызывается для окна класса Static.

P.S. в ветке eterhack сейчас приложены оба патча, а в eter-1.0.10 только на #827.
Comment 18 Виталий Перов 2010-09-02 17:51:48 MSD
Откатил патчи:
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.

Comment 19 Александр Пликус 2010-10-06 13:23:41 MSD
только эта одна бага блокирует закрытие второго этапа... надо либо перенести ее на доработки... либо закрыть... решив.
Comment 20 Илья Шпигорь 2010-10-06 13:37:37 MSD
(In reply to comment #19)
> только эта одна бага блокирует закрытие
> второго этапа... надо либо перенести ее на
> доработки... либо закрыть... решив.

Насколько понимаю, для Компаса у нас отдельная ветка - etercad. Если да, то багу можно смело закрывать, а на эту проблему в eterhack заводить новую багу.

Если мы хотим, чтобы Компас работал на нашем eterhack, то надо переделывать патч.

Comment 23 Vitaly Lipatov 2014-09-11 18:40:55 MSK
Откладываем задачи, к которым не обращались более 100 дней.