Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двойная буферизация в C# 
:(
    Опции темы
tdebugger
Дата 1.9.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.1.2007

Репутация: 2
Всего: 4



Вот зря я с тобой мучился...про контексты рассказывал...
 Все, что нарисовано в окне (форме, контроле), есть содержимое памяти видеоадаптера (чуть не сказал монитора- вот бы дал повода для смеха...), то есть, если мы задвинули окно за пределы монитора, то его изображение теряется из-за отсутствия памяти ТАМ, а когда перекрыли другим окном - соответственно преписали память содержимым ТОГО окна. К счастью нам не нужно беспокоиться о перемещении участков памяти при передвигании окна, это работа системы, а вот восстановление потерянного изображения - уже наша забота. Скинуть заранее приготовленный битмап или нарисовать все заново - это зависит от требований оптимизации, но без обработчика сообщения WM_PAINT не обойтись никак...

 SetStyle(ControlStyles.UserPaint, true); - устраняет прорисовку фона(перекрывает WM_ERASEBKGND). Ну это уже в конце подбирается, когда все готово, помогло - хорошо, нет - обратно закомментировать, потому как оптимизация графики, вещь сугубо индивидуальная и 100%-го рецепта на эту тему нет...
--------------------
ТЕХНОЛОГИЯ "JAVA"  НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt
PM MAIL MSN   Вверх
CyraxZ
Дата 10.9.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 10.12.2006

Репутация: нет
Всего: нет



Цитата

восстановление потерянного изображения - уже наша забота

Ну так ОС же сама перерисовывает изображение под курсором мыши. Почему бы ей не перерисовывать его для случая другого окна. Какая разница - курсор мыши или другое окно - всё равно перерисовывать нужно. В случае с курсором перерисовывает, а в случае с другим окном - нет. Не совсем логично...
PM MAIL   Вверх
mr.DUDA
Дата 11.9.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Цитата(CyraxZ @  10.9.2007,  23:23 Найти цитируемый пост)
Какая разница - курсор мыши или другое окно - всё равно перерисовывать нужно. В случае с курсором перерисовывает, а в случае с другим окном - нет. Не совсем логично...

Курсор - отдельная песня, у него размер более-менее небольшой и к тому же вроде как обычная видеокарта имеет аппаратную поддержку отрисовки курсора "поверх" всего. Что касается окон - каждое окно имеет область в памяти, где хранится текущее содержимое. Сохранять и восстанавливать это содержимое на каждый чих было бы заметной тратой ресурсов CPU.


--------------------
user posted image
PM MAIL WWW   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0993 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.