Положение сохраненных данных формы в элементе управления WPF Webbrowser

Здесь мы делаем (для меня это работает при 200fps без загрузки CPU (около 5%)):

    private WriteableBitmap PrepareForRendering(VideoBuffer videoBuffer) {
        PixelFormat pixelFormat;
        if (videoBuffer.pixelFormat == PixFrmt.rgb24) {
            pixelFormat = PixelFormats.Rgb24;
        } else if (videoBuffer.pixelFormat == PixFrmt.bgra32) {
            pixelFormat = PixelFormats.Bgra32;
        } else if (videoBuffer.pixelFormat == PixFrmt.bgr24) {
            pixelFormat = PixelFormats.Bgr24;
        } else {
            throw new Exception("unsupported pixel format");
        }
        var bitmap = new WriteableBitmap(
            videoBuffer.width, videoBuffer.height,
            96, 96,
            pixelFormat, null
        );
        _imgVIew.Source = bitmap;
        return bitmap;
    }

    private void DrawFrame(WriteableBitmap bitmap, VideoBuffer videoBuffer, double averangeFps) {
        VerifyAccess();
        if (isPaused) {
            return;
        }

        bitmap.Lock();
        try {
            using (var ptr = videoBuffer.Lock()) {
                bitmap.WritePixels(
                    new Int32Rect(0, 0, videoBuffer.width, videoBuffer.height),
                    ptr.value, videoBuffer.size, videoBuffer.stride,
                    0, 0
                );
            }
        } finally {
            bitmap.Unlock();
        }
        fpsCaption.Text = averangeFps.ToString("F1");
    }
0
задан finnk 18 January 2019 в 07:59
поделиться