Графический вывод
Функция
DrawScene() обновляет экран в зависимости от состояния логической переменной
update_screen. Если переменная
update_screen равна
FALSE, предполагается, что содержимое первичной поверхности не устарело, и делать ничего не нужно. Функция
DrawScene() выглядит так:
void BmpViewWin::DrawScene(){ if (update_screen && bmpsurf) { ClearSurface( backsurf, 0 ); BltSurface( backsurf, bmpsurf, x, y ); primsurf->Flip( 0, DDFLIP_WAIT ); update_screen=FALSE; } }
|
Поскольку текущее положение поверхности рассчитывается в другом месте программы, а функция
BltSurface() при необходимости автоматически выполняет отсечение, функция
DrawScene() реализуется просто. Если переменная
update_screen равна
TRUE и существует поверхность для вывода, экран обновляется. Если поверхность не заполняет экран целиком, содержимое вторичного буфера стирается; если заполняет, то в стирании буфера нет необходимости. Затем функция
BltSurface() копирует поверхность на вторичный буфер, а функция
Flip() отображает изменения на экране. После того как обновление будет завершено, переменной
update_screen присваивается значение
FALSE.
Содержание Назад Вперед