Функция RestoreSurfaces()
Все трудное осталось позади, дальше будет легко. Особенно просто реализуется функция
RestoreSurfaces():
void AviPlayWin::RestoreSurfaces() { avisurf->Restore(); }
|
Вспомните — функция
RestoreSurfaces() вызывается только при восстановлении потерянных поверхностей, а класс
DirectDrawWin автоматически восстанавливает первичную поверхность со вторичным буфером. В программе AviPlay остается лишь восстановить поверхность AVI, а для этого достаточно вызвать функцию
Restore() интерфейса
DirectDrawSurface.
В некоторых программах функция
RestoreSurfaces() восстанавливала не только область памяти, но и содержимое поверхности. В нашем случае можно ограничиться восстановлением памяти, потому что ее содержимое будет перезаписано следующим кадром. Если вы вдруг засомневаетесь, напомню — вызов функции
Restore() для поверхности, которая не была потеряна (например, находящейся в системной памяти), не причинит никакого вреда.
Содержание Назад Вперед