IAsyncAction DetailPage::InitializeEffectPreview()

in PhotoEditor/DetailPage.cpp [413:428]


    IAsyncAction DetailPage::InitializeEffectPreview(IInspectable compEffect, Image image)
    {
        Photo* implType = get_self<Photo>(Item());
        image.Source(co_await implType->GetImageThumbnailAsync());
        image.InvalidateArrange();

        auto destinationBrush = m_compositor.CreateBackdropBrush();
        auto graphicsEffectFactory = m_compositor.CreateEffectFactory(compEffect.as<IGraphicsEffect>());
        auto combinedBrush = graphicsEffectFactory.CreateBrush();
        auto effectSprite = m_compositor.CreateSpriteVisual();

        combinedBrush.SetSourceParameter(L"source", destinationBrush);
        effectSprite.Size(float2{ 188,88 });
        effectSprite.Brush(combinedBrush);
        ElementCompositionPreview::SetElementChildVisual(image, effectSprite);
    }