Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: WPFPS Добавлено: 11.07.10 21:20  

Автор вопроса:  VβÐUηìt | Web-сайт: смекаешь.рф
Народ, есть ли нормальный способ управлять FPS в WPF? Частоту кадров по-моему можно настраивать у TimeLine, а мне нужно, чтобы она настраивалась у всей сцены сразу. То есть, поставить, чтобы он стремился не 60 кадрам в секунду, как он обычно любит, а к, скажем, 35. Стандартными средствами это вроде бы не сделать, тогда как? Хукнуть перерисовку и натыкать слипом? Или как?

Заранее благодарен.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 11.07.10 22:27
Попробуй
  1. Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline), new FrameworkPropertyMetadata { DefaultValue = 30 });


Можно еще попробовать создать для класса Timeline стиль с указанием значения свойства Timeline.DesiredFrameRate

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 12.07.10 00:17
Да, я эту васю уже пробовал. Но она - для таймлайна, ибо событие CompositionTarget.Rendering все равно вызывается кучу раз и произвольно. Мне необоходимо как-то контролировать процесс рендеринга кадров, чтобы выводить равномерно n кадров в секунду (если конечно производительности хватает), при этом анимаций может быть несколько и они могут быть созданы не встроенными средствами, а, скажем кодом. Или тем же FarseerPhysics.

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 12.07.10 08:22
Какая разница чем они созданы, они все равно должны наследоваться от Timeline. Если они наследуются от чего-то другого, значит стандартные механизмы для них будут неприменимы.

Ответить

Номер ответа: 4
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #4
Добавлено: 12.07.10 10:19
В этом и суть. Они созданы с помощью кода в CompositionTarget.Rendering. Не уверен, что этот код как-то наследуется от TimeLine. Нужно как то заставить WPF перерисовывать все по команде, а не по собственному усмотрению. Стандартных средств здесь нет, вопрос, как подлезть? Неужели никто не сталкивался с этой проблемой?

Ответить

Номер ответа: 5
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 18.07.10 15:27
Нашел как сделать. Но не расскажу :)

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 18.07.10 23:24
Интересно было бы узнать как решил проблему. Хотя и не нужно пока.

А ты уверен что в следующий раз на твой вопрос не ответят "Я знаю как сделать. Но не скажу"?

Ответить

Номер ответа: 7
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #7
Добавлено: 19.07.10 18:31
Будет стимул сразу разбираться самому :) Могу сказать, что проблема частоты кадров никак не связана с анимациями, и их обеих пришлось решать отдельно. Лютое, бешеное и очень-очень сложное извращение, которое позволило получить 100% управление над процессом, но из-за своею лютости и сложности стало технологическим секретом. Так-то.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам