Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 22.09.2016, 17:29   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Лампочка WPF

Думаю стоит сделать ее подразделом, хотя пофиг.

Ребятушки, как адекватно отрисовать динамическую сетку WPF на Canvas?.

Сейчас каждый раз, когда происходит какая-то фигня с сеткой(скейл, перемещение) , приходится элементы удалять и перерисовывать (Canvas.Children.Add). В адекватных масштабах сие действие проходит нормально. Типо таких:



А вот если уменьшить сетку, то плохо:



UPD: в профайлере ничего не изменилось толком (*правда нагрузка более равномерной стала), по этому диспетчер задач.

Что посоветуете?
CacheMode включал. Картинка ухудшилась только.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 23.09.2016, 06:15   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: WPF

Может лучше рисовать всё во WritableBitmap, и установить его как Source для Image, сам Image вставить в вёрстку на место канваса или внутрь канваса.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (23.09.2016)
Старый 23.09.2016, 08:36   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: WPF

Прям старый добрый Blitz напомнило.
Что-то мне подсказывает, что если рендрить тот же Path, то получиться то же самое, что и Cached у канвы.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
cherepets (10.10.2016)
Старый 23.11.2016, 13:49   #4
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: WPF

Сообщение от RegIon Посмотреть сообщение
Ребятушки, как адекватно отрисовать динамическую сетку WPF на Canvas?
Любое добавление в Canvas.Children = перестроение лайаута = работа ЦПУ.
Используй ГПУ, для этого нужно простроить график единожды, дальше смещения и скейлинг делать через RenderTransform и Clip, если такое возможно в твоем кейсе.
(Offline)
 
Ответить с цитированием
Старый 23.11.2016, 15:02   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: WPF

Сообщение от johnk Посмотреть сообщение
Любое добавление в Canvas.Children = перестроение лайаута = работа ЦПУ.
Используй ГПУ, для этого нужно простроить график единожды, дальше смещения и скейлинг делать через RenderTransform и Clip, если такое возможно в твоем кейсе.
Спасибо. Оказалось если Группировать объекты, а потом группу добавлять - то все происходит довольно быстро. Скеил у канвы с Траслейтом не работают в паре, это как-то объяснено в справке.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 24.11.2016, 13:21   #6
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: WPF

Сообщение от RegIon Посмотреть сообщение
Скеил у канвы с Траслейтом не работают в паре, это как-то объяснено в справке.
В паре оно все работает, просто сама канва - это панель с не совсем обычным позицинированием и рендером. Чтобы ей манипулировать нормально, её нужно вбросить во ViewBox.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com