Постоянное время вывода изображений из формата DDB требует объяснения. Картинка размером 300 х 300 пикселов содержит в сто раз больше точек, чем картинка 30 х 30 пикселов, но для обоих время рисования равно 39-40 микросекунд. Этот результат легко объясним. Дело в том, что данные формата DDB загружаются в невидимую на экране область видеобуфера или (при наличии порта AGP) в нелокальную видеопамять, которая реализована как часть системного ОЗУ, к которой есть доступ у графического ускорителя. Функция BitBltO для копирования картинки в видимую страницу не использует команды процессора, а обращается к графическому ускорителю. Также следует учитывать, что показанные в окне значения - это не время копирования картинки, а время передачи ускорителю заявки на копирование. Поэтому результат измерения не зависит от размеров картинки.

При последовательной передаче нескольких заявок время остается неизменным. Это показывает, что в графических системах с ускорителями предусмотрено хранение очереди заявок на вывод примитивов. Вопрос о том, какое максимальВывод растровых изображений на экран ное количество необслуженных заявок на вывод примитивов может хранить ускоритель, требует отдельного рассмотрения.

В справедливости сделанного объяснения можно убедиться, выключив аппаратное ускорение графики. При этом время рисования битовых карт формата DDB также становится пропорциональным площади рисунка. Итак, при выводе изображения из битовой карты формата DDB графическому ускорителю передается заявка на рисование, после чего основной процессор и графический ускоритель работают параллельно. Основной процессор продолжает вычисления, а графический - рисует. Данных о том, сколько именно времени ускоритель затратит на вывод изображения, на рис. 17.2 нет.

Чтобы ответить на этот вопрос, нужно измерить время чтения функцией GetPi xel () цвета точки с заданными координатами, потом двадцать раз скопировать функцией BitBlt() картинку из одного места экрана в другое, а затем второй раз вызвать функцию GetPixel () и измерить время ее выполнения.


⇐ Предыдущая| |Следующая ⇒