Суббота, 23 Ноября 2024, 00:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Двойная буферизация
[ALeX]Дата: Пятница, 23 Апреля 2010, 10:31 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Недавно начал заниматься программированием (выбрал для изучения Basic на примере Visual Basic 2005). Столкнулся с мерцанием экрана при загрузке и движении элемента PictureBox на форме. В интернете поглядел: как я понял для устранения этой проблемы нужно использовать двойную буферизацию. Объясните, пожалуста что это такое и как ее использовать.
el_reyДата: Пятница, 23 Апреля 2010, 11:42 | Сообщение # 2
почетный гость
Сейчас нет на сайте
[ALeX],
Навряд ли я смогу помочь тебе с Visual Basic, последний раз запускал лет 10 назад. Но могу объяснить что такое двойная буферизация.

В программах WinAPI (стандартные программы windows) для вывода графики используется система GDI. Система очень медленная. Для анимации не подходит.

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

Самый лучший вариант - изучить DirectX, так как здесь поддерживается аппаратная двойная буферизация, что намного быстрее.


Пишу учебник
[ALeX]Дата: Суббота, 24 Апреля 2010, 07:43 | Сообщение # 3
почетный гость
Сейчас нет на сайте
el_rey, спасибо. Немного понятно стало. Но все таки хотелось бы относительно Basic'а.

Добавлено (24.04.2010, 07:43)
---------------------------------------------
Помогите же кто-нибудь!!! Это мерцание просто невыносимо больше терпеть.

el_reyДата: Суббота, 24 Апреля 2010, 10:14 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Quote (|ALeX|)
Немного понятно стало. Но все таки хотелось бы относительно Basic'а.

В Basic (в WinAPI) нет стандартных средств решения этой проблемы. Двойную буферизацию тебе придётся писать самому. Как? Я уже объяснил в предыдущем сообщении.


Пишу учебник
[ALeX]Дата: Суббота, 24 Апреля 2010, 10:55 | Сообщение # 5
почетный гость
Сейчас нет на сайте
el_rey, ясно. Спасибо.
hunter86Дата: Четверг, 05 Августа 2010, 19:59 | Сообщение # 6
был не раз
Сейчас нет на сайте
На моем сайте есть пример двойной буферизации на GDI+.

скачать ретро игры

Сообщение отредактировал hunter86 - Четверг, 05 Августа 2010, 20:03
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг