Wine@Etersoft 1.0 CAD 1.1.0-eter5/4 1. Запустить КОМПАС 2. Создать текстовый документ 3. Вставка - Символ Диалог Символ поднимается очень долго, у меня порядка 5 сек Если в диалоге был выбран символьный шрифт, например, Symbol Type A, то диалог поднимается примерно 8 сек.
В результате тестирования выяснилось, что под windows этот диалог поднимается тоже с задержкой. Правда в wine она на одну-две секунды больше. Думаю единственное, что можно - это сделать одинаковое время создания диалога независимо от того, какой шрифт в нем выбран по умолчанию. В общем если сформулировать задачу более корректно: GetFontUnicodeRanges для LOGFONT'ов с SYMBOL_CHARSET работает примерно в 2 раза дольше, чем с ANSI_CHARSET. В windows это время одинаковое. Необходимо, чтобы под wine оно тоже было примерно одинаковым.
Проблема связана с функцией GetFontUnicodeRanges. Приложение сначала передает в качестве буфера NULL, для определения необходимого размера. Затем выделяет память и передает указатель на буфер для заполнения. Получается, что перебор всех доступных символов происходит дважды. Никаких разумных способов кэширования придумать не удалось (буфер передается в качестве указателя, память выделяется динамически, поэтому размер знает только сам Компас). Возможно, Компас, работая под wine, вызывает эту функцию большее число раз, чем это необходимо. Но скорее всего, проблема связана именно с алгоритмом перебора всех доступных символов. Не исключено, что это связано с библиотекой libfreetype, функциями которой пользуется wine. Этот алгоритм перебора символов реализован в патче: commit 174c50c096edb916e4751d71eb4649387eddc6fb Author: Alexander Morozov <amorozov@etersoft.ru> Date: Fri Jul 31 19:47:46 2009 +0400 gdi32: Fix problems with "Symbol type A" font (eterbug #2609).
Откладываем, bugs@ в ближайшее время делать ничего не будет.
Cклонировал ВМ AltWS10, заказал сборку wine@etersoft с sales, установил wine-etersoft-common-9.0.9-eter0.p10.1.noarch wine-etersoft-winetricks-20240105-eter2.p10.3.noarch wine-etersoft-full-9.0.9-eter0.p10.1.x86_64 wine32-etersoft-grdwine-0.5.7.1-eter1.p10.2.i586 wine-etersoft-mono-8.1.0-eter0.p10.1.noarch wine32-etersoft-9.0.9-eter0.p10.1.i586 wine-etersoft-network-9.0.2-eter0.p10.1.x86_64 wine-etersoft-programs-9.0.9-eter0.p10.1.x86_64 wine-etersoft-gecko-2.47.4-eter0.p10.1.noarch wine-etersoft-grdwine-0.5.7.1-eter1.p10.2.x86_64 wine-etersoft-9.0.9-eter0.p10.1.x86_64 Перешел в var/ftp/pvt/Windows/CAD/Kompas/KOMPAS-3D_v22_x64/v22/x64/KOMPAS-3D_v22_x64/ и запустил $ wine_install_kompas Компас установился корректно, ошибок при установке не было. Добавил в ~/.winde/drive_c/Program Data/ASKON файл license.ini с содержанием [Common] host = license.server Открыл проводник, открыл компас, создал текстовый документ. В пункте ВСТАВКА выбрал СИМВОЛ. Окно с вставкой символов открывается практически мгновенно. Выполнил те же самые действия на Win10pro для сравнения, окно с вставкой символов открывается с идентичной скоростью. Вывод: Проблема не воспроизводится.
Ставлю "Решена"
Закрыта.