WPF более эффективный рендеринг () визуального элемента управления для растрового изображения

#wpf #effects #shader #rendertargetbitmap

#wpf #эффекты #шейдер #rendertargetbitmap

Вопрос:

Есть ли более эффективный способ рендеринга визуального элемента для растрового изображения? Я пытаюсь использовать эффекты шейдера для элементов пользовательского интерфейса, а затем я хочу изменить результат в коде попиксельно. Теперь я использую что-то вроде этого:

         Button btn = new Button();
        btn.Effect = new BlurEffect();
        RenderTargetBitmap rbmp = new RenderTargetBitmap(64, 64, 96d, 96d, PixelFormats.Pbgra32);
        rbmp.Render(btn); // this is very slow
        byte[] pixels = new byte[64 * 64 * 4];
        int str = width * PixelFormats.Pbgra32.BitsPerPixel / 8;
        rbmp.CopyPixels(pixels, str, 0);
  

Есть ли какой-либо способ преобразовать эти пиксели кнопки после обработки в массив без использования медленного рендеринга, используемого в RenderTargetBitmap?

Ответ №1:

Хорошо, я нашел ответ… Это невозможно :/ В настоящее время есть запрос к MS на реализацию аппаратно ускоренного рендеринга для RenderTargetBitmap, но, на мой взгляд, MS не желает этого делать. Дело закрыто:(

Комментарии:

1. Включение ссылки или ссылки на источник сделает ваш ответ более полезным.