Bug 2608

Summary: Некорректно отрисовывается фантом систем координат
Product: [Поддержка проектов] КОМПАС 3D Reporter: Виталий Булгаков <bulgakov>
Component: ТестированиеAssignee: Константин Кондратюк <kondratyuk>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: major    
Priority: P2 CC: baraka, kondratyuk, lav, mais, mx, vitperov
Version: v10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 3101    
Bug Blocks: 753, 1733    
Attachments: скрин
Скрин из Windows
Тест преобразования текста

Description Виталий Булгаков 2008-10-14 16:40:53 MSD
1. Запустить КОМПАС
2. Создать чертеж
3. Вставка - Локальная СК
У фантома ЛСК буквы "х" и "у" расположенеы неправильно, сдвинуты вниз-влево относительно осей.
Comment 1 Vitaly Lipatov 2008-12-26 12:30:06 MSK
Нужно понять, как это должно выглядеть.
Comment 2 Денис Баранов 2009-01-03 19:07:45 MSK
(In reply to comment #1)
> Нужно понять, как это должно выглядеть.
> 

Тут опять как то неправильно пересчитывается область вывода букв.
Красные и серые буквы должны совпадать. Смотреть скрин
Comment 3 Денис Баранов 2009-01-03 19:08:07 MSK
Created attachment 1004 [details]
скрин
Comment 4 Денис Баранов 2009-01-03 19:19:43 MSK
Created attachment 1005 [details]
Скрин из Windows
Comment 5 Vitaly Lipatov 2009-01-03 19:37:24 MSK
Тогда похоже, что это опять несовместимость между 3D-выводом и GDI.
Ждём исправления 3101.
Comment 6 Виталий Булгаков 2009-04-24 14:39:41 MSD
Прикладываю тест иллюстрирующий преобразование текста. Должно помочь также и в 2614.
После запуска приложения лучше еще немного сдвинуть окно, после этого выполнить Option - Convert text to curves. При этом hello сдвигается а world пропадает вовсе
Comment 7 Виталий Булгаков 2009-04-24 14:40:26 MSD
Created attachment 1165 [details]
Тест преобразования текста
Comment 8 Константин Кондратюк 2009-04-27 10:04:41 MSD
Из закономерностей, видных невооружённым глазом:
1) отображается только одно слово
2) искажение в позиции отображаемого текста зависит от расположения окна на экране по горизонтали. В случае, когда левый край окна совпадает с левой границей дисплея, искажения нет. При перемещении окна вдоль горизонтали пропорционально меняется и искажение координат.
Comment 9 Константин Кондратюк 2009-04-27 12:41:21 MSD
В функцию PATH_ExtTextOut передаётся тот же glyphs, что и в ExtTextOut драйвера. Обрезается и смещается уже в path-обработке.
Comment 10 Константин Кондратюк 2009-04-27 13:22:27 MSD
Текст обрезается из-за того, что при обработке пробела(?) dwSize становится нулём.

dwSize = GetGlyphOutlineW(hdc, str[idx], GGO_GLYPH_INDEX | GGO_NATIVE, &gm, 0, NULL, &identity);
if (!dwSize) return FALSE;

Попытка распечатать ("%c\n",str[idx]) выводит пустую строку
Comment 11 Константин Кондратюк 2009-04-27 16:33:39 MSD
Патч, корректирующий PATH_ExtTextOut на использование локальных, а не абсолютных координат.

commit faa9cd0334b8f76cd6e27b35e95219e539dc5535
Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru>
Date:   Mon Apr 27 16:25:07 2009 +0400

    gdi32: PATH_ExtTextOut function uses local coordinates (eterbugs #2608, #2614)

Теперь фантом отрисовывается корректно.
По обрезанию текста заведена новая бага:
http://bugs.etersoft.ru/show_bug.cgi?id=3877
Comment 12 Константин Кондратюк 2009-04-27 16:35:13 MSD
*** Bug 2614 has been marked as a duplicate of this bug. ***
Comment 13 Денис Баранов 2009-05-10 16:05:05 MSD
Принято.
eter21
Comment 14 Денис Баранов 2009-07-29 21:03:05 MSD
Принято
WINE@Etersoft CAD eter2.1/eter2