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);

РЕДАКТИРОВАТЬ: дополнительно я выгляжу, как очистка вызывает мерцание. Поэтому я думаю, что должна быть лучшая практика с буферизацией или чем-то вроде:/ ( Как отображать быстро обновляемые изображения без большого выделения памяти?)

0 ответов

Другие вопросы по тегам