Bug 3928

Summary: реализовать функцию GdipGetNearestColor
Product: WINE@Etersoft Reporter: Виталий Перов <vitperov>
Component: Графика GDI / DIB / GDIPLUSAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: lav, shpigor, vitperov
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 641    

Description Виталий Перов 2009-05-10 15:34:35 MSD
Сейчас она возвращает NotImplemented.
Возможно из-за этого не работает программа получения обновлений для Консультанта. (comar)
Думаю, если сделать хак, это решит проблему.
Comment 1 Виталий Перов 2009-05-10 15:49:07 MSD
Сделал хак. Возвращаю цвет:
argb = RGB( 0, 0, 0);

В итоге сразу при старте не выдаётся сообщение об ошибке. Форма отрисовывается, но неправильно (не видны текстовые надписи)

Пробовал возвращать:
argb = RGB( 255, 255, 255);
Внешний вид формы никак не изменился.

В gdi32 есть функция GetNearestColor. Возможно с её помощью можно сделать нормальный патч (хотя результат при этом не изменится)
Comment 2 Виталий Перов 2009-05-10 16:24:12 MSD
Реализовал. Требуется написать подтверждающие тесты.
Comment 3 Виталий Перов 2009-05-10 21:04:18 MSD
При дальнейшем рассмотрении оказалось, что функция GetNearestColor возвращает такой же цвет, что и был туда передан. Возможно эта ошибка именно функции GetNearestColor?

Проверил на винде функцию GdipGetNearestColor. Там возвращается другой цвет.
Comment 4 Виталий Перов 2009-05-10 22:18:35 MSD
Проверил в винде GetNearestColor. Она работает немного не так, как на винде.
Ещё возникают сложности в том, что она для конкретного dc вызывает его функцию, и если её нет, обрабатывает сама.
Я нашёл реализованную функцию GetNearestColor только для x11drv: X11DRV_GetNearestColor. Проверил, в конечном итоге именно она и вызывается в тесте. Возможно надо писать тест уже на неё. Ещё надо проверить вызывается ли она при запуске comar
Comment 5 Виталий Перов 2009-05-10 22:32:18 MSD
Выяснил:
1) Тестов на x11drv в принципе не существует.
2) для comar вызывается именно функция этого драйвера.

Думаю всё же стоит писать тест для функции в gdi32
Comment 6 Виталий Перов 2009-05-12 17:55:08 MSD
Довольно сомнительна необходимость данного теста.
Решил оставить как есть (сделать полу-заглушку, исправляющую проблему).