Spec-Zone .ru
спецификации, руководства, описания, API
След: Премия
Урок: полноэкранный Монопольный API Режима
BufferStrategy и BufferCapabilities
Домашняя страница > Премия > Полноэкранный Монопольный API Режима

BufferStrategy и BufferCapabilities

BufferStrategy

В Java 2 Standard Edition, Вы не должны волноваться о видео указателях или видеопамяти, чтобы в полной мере воспользоваться или двойной буферизацией или зеркальным отражением страницы. Новый class java.awt.image.BufferStrategy был добавлен для удобства контакта с рисованием на поверхности и компоненты общим способом, независимо от числа используемых буферов или метод, используемый, чтобы вывести на экран их.

Буферная стратегия дает Вам два универсальных метода для рисования: getDrawGraphics и show. Когда Вы хотите начать тянуть, получать графику ничьей и использовать ее. Когда Вы заканчиваетесь, таща и хотите представить свою информацию экрану, вызовите show. Эти два метода разрабатываются, чтобы соответствовать скорее корректно циклу рендеринга:

BufferStrategy myStrategy;

while (!done) {
    Graphics g = myStrategy.getDrawGraphics();
    render(g);
    g.dispose();
    myStrategy.show();
}

Буферные стратегии были также установлены, чтобы помочь Вам контролировать проблемы VolatileImage. Когда в полноэкранном монопольном режиме, проблемы VolatileImage особенно важны, потому что система управления окнами может иногда возвращать видеопамять, это дало Вам. Один важный пример - то, когда пользователь нажимает сочетание клавиш ALT+TAB в Windows - внезапно, Ваша полноэкранная программа работает в фоновом режиме, и Ваша видеопамять теряется. Можно вызвать метод contentsLost, чтобы узнать, произошло ли это. Точно так же, когда система управления окнами возвращает Вашу память Вам, можно узнать использование метода contentsRestored.

BufferCapabilities

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

class java.awt.BufferCapabilities инкапсулирует эти возможности. Каждой буферной стратегией управляют ее буферные возможности, так выбор правильных для Вашего приложения очень крайне важен. Чтобы узнать, какие возможности доступны, вызовите метод getBufferCapabilities от объектов GraphicsConfiguration, доступных на Вашем графическом устройстве.

Возможности, доступные в Java 2 Standard Edition версия 1.4:

Чтобы создать буферную стратегию компонента, вызовите метод createBufferStrategy, предоставляя число требуемых буферов (это число включает основную поверхность). Если какой-либо определенный метод буферизации требуется, предоставьте соответствующий объект BufferCapabilities. Отметьте, что, когда Вы используете эту версию метода, следует поймать AWTException, когда Ваш выбор не доступен. Также отметьте, что эти методы только доступны на Canvas и Window.

Как только определенная буферная стратегия была создана для компонента, можно управлять ею использующий метод getBufferStrategy. Отметьте, что этот метод также только доступен для холстов и окон.

Программирование Подсказок

Некоторые подсказки об использовании буферных возможностей и буферных стратегий:


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Двойная буферизация и Зеркальное отражение Страницы
Следующая страница: Примеры