C# WriteableBitmapEx - Рендеринг цикла с фоновым изображением
После долгих поисков я понял, что не понимаю концепции, используемые в найденных мной уроках. (например, быстрое рисование множества прямоугольников по одному в WPF)
Мне кажется, что я должен работать с WritePixes() и заблокировать / разблокировать растровое изображение. но я не смог запустить его.
Я хочу нарисовать движение объектов на карте. Поэтому я использовал writeablebitmap ( https://github.com/teichgraf/WriteableBitmapEx/) и установил карту как backgroundimage. Теперь я хочу нарисовать объекты на этом Writeablebitmap. В настоящее время, когда я очищаю растровое изображение, я теряю фоновое изображение. Как я могу удалить объекты из предыдущего кадра, не теряя фоновое изображение.
GameImageSource = new WriteableBitmap(new BitmapImage(new Uri(path)));
// Called every tick of the game
internal void RenderReplayTick(Tick tick, CombatComponent comp)
{
//
// Update map with all active components, players etc
//
using (GameImageSource.GetBitmapContext())
{
GameImageSource.Clear(); // Deletes old drawings but also image
foreach (var updatedPlayer in tick.GetUpdatedPlayers())
DrawEntity(updatedPlayer);
if (comp != null && comp.links.Count != 0)
foreach (var link in comp.links)
DrawLink(link);
}
}
Сущности нарисованы через:
GameImageSource.DrawEllipseCentered(X, Y, ENTITY_RADIUS, ENTITY_RADIUS, color);
РЕДАКТИРОВАТЬ: дополнительно я выгляжу, как очистка вызывает мерцание. Поэтому я думаю, что должна быть лучшая практика с буферизацией или чем-то вроде:/ ( Как отображать быстро обновляемые изображения без большого выделения памяти?)