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); }
TNode NodeFor(ICompositionSurface obj) { return(obj switch { CompositionObject compositionObject => _graph[compositionObject].Canonical, LoadedImageSurface loadedImageSurface => _graph[loadedImageSurface].Canonical, _ => throw new InvalidOperationException(), });
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(); } }
public CompositionSurfaceBrush CreateSurfaceBrush(ICompositionSurface surface) => new CompositionSurfaceBrush(this, surface);
internal CompositionSurfaceBrush(ICompositionSurface surface) { Surface = surface; }
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; }
public CompositionSurfaceBrush(Compositor compositor, ICompositionSurface surface) : base(compositor) { Surface = surface; }