Exemple #1
0
        private CompositionBrush CreateNormalMapBrush(Compositor compositor, ICompositionSurface normalMapImage, ICompositionSurface colorMapImage)
        {
            var colorMapParameter  = new CompositionEffectSourceParameter("ColorMap");
            var normalMapParameter = new CompositionEffectSourceParameter("NormalMap");

            var compositeEffect = new ArithmeticCompositeEffect()
            {
                Source1 = colorMapParameter,
                Source2 = new SceneLightingEffect()
                {
                    NormalMapSource = normalMapParameter
                }
            };

            var normalMapBrush = compositor.CreateSurfaceBrush(normalMapImage);
            var colorMapBrush  = compositor.CreateSurfaceBrush(colorMapImage);

            normalMapBrush.Stretch = CompositionStretch.Fill;
            colorMapBrush.Stretch  = CompositionStretch.Fill;

            var brush = compositor.CreateEffectFactory(compositeEffect).CreateBrush();

            brush.SetSourceParameter(colorMapParameter.Name, colorMapBrush);
            brush.SetSourceParameter(normalMapParameter.Name, normalMapBrush);

            return(brush);
        }
Exemple #2
0
 TNode NodeFor(ICompositionSurface obj)
 {
     return(obj switch
     {
         CompositionObject compositionObject => _graph[compositionObject].Canonical,
         LoadedImageSurface loadedImageSurface => _graph[loadedImageSurface].Canonical,
         _ => throw new InvalidOperationException(),
     });
Exemple #3
0
        private CompositionBrush CreateEffectBrushFromSurface(ICompositionSurface surface)
        {
            EnsureEffectFactory();
            var surfaceBrush = _compositor.CreateSurfaceBrush(surface);
            var effectBrush  = s_effectFactory.CreateBrush();

            effectBrush.SetSourceParameter("source", surfaceBrush);

            return(effectBrush);
        }
            TNode NodeFor(ICompositionSurface obj)
            {
                switch (obj)
                {
                case CompositionObject compositionObject:
                    return(_graph[compositionObject].Canonical);

                case LoadedImageSurface loadedImageSurface:
                    return(_graph[loadedImageSurface].Canonical);

                default:
                    throw new InvalidOperationException();
                }
            }
        ICompositionSurface GetCompositionSurface(ICompositionSurface obj)
        {
            switch (obj)
            {
            case CompositionVisualSurface compositionVisualSurface:
                return(GetCompositionVisualSurface(compositionVisualSurface));

            case LoadedImageSurface loadedImageSurface:
                return(GetLoadedImageSurface(loadedImageSurface));

            default:
                throw new InvalidOperationException();
            }
        }
Exemple #6
0
 public CompositionSurfaceBrush CreateSurfaceBrush(ICompositionSurface surface)
 => new CompositionSurfaceBrush(this, surface);
 internal CompositionSurfaceBrush(ICompositionSurface surface)
 {
     Surface = surface;
 }
Exemple #8
0
 internal CompositionSurfaceBrush CreateSurfaceBrush(ICompositionSurface surface) => _compositor.CreateSurfaceBrush(surface);
 TC CanonicalObject <TC>(ICompositionSurface obj) => (TC)NodeFor(obj).Object;
 internal CompositionSurfaceBrush(Compositor compositor, ICompositionSurface surface) : base(compositor)
 {
     Surface = surface;
 }
Exemple #11
0
 public CompositionSurfaceBrush(Compositor compositor, ICompositionSurface surface) : base(compositor)
 {
     Surface = surface;
 }