Понедельник, 11 Ноября 2024, 10:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как бороться с мерцанием изображения?
TheWickerManДата: Четверг, 20 Декабря 2012, 19:33 | Сообщение # 1
частый гость
Сейчас нет на сайте
UPD:
Подскажите пожалуйста, как еще можно избавится от мерцания изображения, кроме использования двойной буфферизации? Дело в том, что при его использовании мерцание становится гораздо меньше, но убирается не полностью. Если можно, подскажите пожалуйста решение для С++


Богам спешить некуда - у них впереди вечность.

Сообщение отредактировал TheWickerMan - Четверг, 20 Декабря 2012, 20:12
ArchidoДата: Четверг, 20 Декабря 2012, 19:44 | Сообщение # 2
Сэнсэй
Сейчас нет на сайте
Надо больше кода, чтобы посмотреть где и как создается объект, где изменяются его координаты + где вызывается его же отрисовка. Так будет понятнее.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
TheWickerManДата: Четверг, 20 Декабря 2012, 20:10 | Сообщение # 3
частый гость
Сейчас нет на сайте
Боже ну я и болван smile Сам нашел ошибку, тупейшая была) Я работаю в Embarcadero, проблемный код находился в функции OnKeyPress. Сейчас хотел выложить код и увидел что у меня там два раза повторяется if(Key=="1") и с разным кодом внутри)) Ей богу, для решения большинства моих проблем с С++ нужно просто больше спать и смотреть на код свежими глазами.

Добавлено (20.12.2012, 20:10)
---------------------------------------------
Обновил первый пост, помогите пожалуйста с еще одной проблемой


Богам спешить некуда - у них впереди вечность.

Сообщение отредактировал TheWickerMan - Четверг, 20 Декабря 2012, 20:12
ArchidoДата: Четверг, 20 Декабря 2012, 20:12 | Сообщение # 4
Сэнсэй
Сейчас нет на сайте
Quote (TheWickerMan)
Боже ну я и болван Сам нашел ошибку, тупейшая была) Я работаю в Embarcadero, проблемный код находился в функции OnKeyPress. Сейчас хотел выложить код и увидел что у меня там два раза повторяется if(Key=="1") и с разным кодом внутри)) Ей богу, для решения большинства моих проблем с С++ нужно просто больше спать и смотреть на код свежими глазами.

Ну что тут скажешь - бывает happy

Quote (TheWickerMan)
Простите, не могу найти как удалить тему.

Никак.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
TimKruzДата: Четверг, 20 Декабря 2012, 20:58 | Сообщение # 5
старожил
Сейчас нет на сайте
TheWickerMan, порча тем (слишком сильное изменение содержания первого и последующих сообщений) запрещена, можно в баню попасть.
Новый вопрос нужно было задать в следующем сообщении (#3) или создать новую тему. А то теперь непонятно, что означают второе и третье сообщения.
Удалить тему могут только модераторы (и старше), но только если тема слишком сильно правила нарушает или совершенно бесполезна; обычно темы чистят и помещают в раздел "корзина", а не удаляют совсем.

Quote (TheWickerMan)
Подскажите пожалуйста, как еще можно избавится от мерцания изображения, кроме использования двойной буфферизации? Дело в том, что при его использовании мерцание становится гораздо меньше, но убирается не полностью. Если можно, подскажите пожалуйста решение для С++

С помощью чего делаешь вывод графики? Двойная буферизация спасает от мерцания в 99% случаев. Если, конечно, процедура вывода итоговой картинки выполняется достаточно быстро (доли миллисекунд), а компьютер и монитор достаточно современные. Так что, скорей всего, у тебя функция вывода картинки сильно тормозит, либо ты неправильно используешь буфер. Если пишешь для Windows, но не используешь DirectX/OpenGL - используй функцию BitBlt из WinAPI. А ещё, если выводишь прямо на канву формы - не помешает отключить её автообновление (и обновлять вручную), т.к. автообновление может затирать твою картинку и она будет мигать цветом формы.


TheWickerManДата: Пятница, 21 Декабря 2012, 12:36 | Сообщение # 6
частый гость
Сейчас нет на сайте
Quote (TimKruz)
С помощью чего делаешь вывод графики? Двойная буферизация спасает от мерцания в 99% случаев. Если, конечно, процедура вывода итоговой картинки выполняется достаточно быстро (доли миллисекунд), а компьютер и монитор достаточно современные. Так что, скорей всего, у тебя функция вывода картинки сильно тормозит, либо ты неправильно используешь буфер. Если пишешь для Windows, но не используешь DirectX/OpenGL - используй функцию BitBlt из WinAPI. А ещё, если выводишь прямо на канву формы - не помешает отключить её автообновление (и обновлять вручную), т.к. автообновление может затирать твою картинку и она будет мигать цветом формы.

Да, вероятно дело в скорости. Спасибо, попробую WinAPI


Богам спешить некуда - у них впереди вечность.
  • Страница 1 из 1
  • 1
Поиск:

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