Как уверяет MS библиотека GDI+ работает чуть ли не напрямую с драйвером видео карты, логично предположить, что скорость должна быть высокой. Но на деле оказывается, что время вывода обыкновенной линии почти в 10 раз больше, чем в обычном GDI. Теперь вопрос, это свойство самой библиотеки, или может что-то я не учел? В чем дело то?
Здравствуйте, Аноним, Вы писали:
А>Как уверяет MS библиотека GDI+ работает чуть ли не напрямую с драйвером видео карты, логично предположить, что скорость должна быть высокой. Но на деле оказывается, что время вывода обыкновенной линии почти в 10 раз больше, чем в обычном GDI. Теперь вопрос, это свойство самой библиотеки, или может что-то я не учел? В чем дело то?
1. GDI тоже работает с драйвером видеокарты
2. Производительность меняется в зависимости от функции и карты
3. Что ты хотел от более сложной библиотеки
4. Функция рисования линии, насколько я помню, может делаться видеокартой и в GDI
5. Пройдись по ссылка здесь. Найдешь массу интересного.
Здравствуйте, Аноним, Вы писали:
А>Как уверяет MS библиотека GDI+ работает чуть ли не напрямую с драйвером видео карты, логично предположить, что скорость должна быть высокой. Но на деле оказывается, что время вывода обыкновенной линии почти в 10 раз больше, чем в обычном GDI. Теперь вопрос, это свойство самой библиотеки, или может что-то я не учел? В чем дело то?
Не пытаясь оправдать медленность GDI+, тем не менее замечу, что прямая линия рисуемая GDI+ может быть полупрозрачной, поэтому логично, что она отрисовывается медленнее.
Когда я писал графическое приложение, то обычные прямые линии рисовал обычным GDI, а все остальное GDI+.
Здравствуйте, Аноним, Вы писали:
А>Как уверяет MS библиотека GDI+ работает чуть ли не напрямую с драйвером видео карты, логично предположить, что скорость должна быть высокой. Но на деле оказывается, что время вывода обыкновенной линии почти в 10 раз больше, чем в обычном GDI. Теперь вопрос, это свойство самой библиотеки, или может что-то я не учел? В чем дело то?
Если хочешь увеличить скорость — отключай все сглаживания и не пользуйся прозрачностью:
SetSmoothingMode
SetInterpolationMode
SetTextRenderingHint
Konstantin Trunin http://blog.trunin.com — эффективное управление людьми, проектами, собой
Здравствуйте, <Аноним>, Вы писали:
А>Как уверяет MS библиотека GDI+ работает чуть ли не напрямую с драйвером видео карты, логично предположить, что скорость должна быть высокой. Но на деле оказывается, что время вывода обыкновенной линии почти в 10 раз больше, чем в обычном GDI. Теперь вопрос, это свойство самой библиотеки, или может что-то я не учел? В чем дело то?
GDI+ всегда был тормозом. МС хотели его переделать... Потом хотели сделать GDI+ 2... Потом плюнули и в Лонгхорне сделали новую библиотеку которая действительно акселерируется железом. GDI+ никогда не работал с драйверами напрямую. Он работает через GDI и в добавок может делать много крутых выпендрежей софтрверным способом. Эти выпендрежи в основмно делаются за счет отрисовки в контекст основанный на памяти. В добавок используется куча крутых алгоритмов обеспечивающих плавную прозрачность, градиентные заливки, сглаживание и т.п. Все это в софтвере, а значит очень медленно.
В принципе многие функции GDI+ напрямую отражаются в GDI. Но при условии соблюдения некоторых требований. Например, нельзя включать двойную буферизацию.
Ну, и на современном железе GDI+ смотрится уже довольно прилично. Мултипликацию на нем конечно делать не стоит. Но для создания красивого GUI и отчетов более чем.
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.