internal override DUCE.ResourceHandle AddRefOnChannelCore(DUCE.Channel channel) { if (_duceResource.CreateOrAddRefOnChannel(this, channel, System.Windows.Media.Composition.DUCE.ResourceType.TYPE_VISUALBRUSH)) { Transform vTransform = Transform; if (vTransform != null) { ((DUCE.IResource)vTransform).AddRefOnChannel(channel); } Transform vRelativeTransform = RelativeTransform; if (vRelativeTransform != null) { ((DUCE.IResource)vRelativeTransform).AddRefOnChannel(channel); } Visual vVisual = Visual; if (vVisual != null) { vVisual.AddRefOnChannelForCyclicBrush(this, channel); } AddRefOnChannelAnimations(channel); UpdateResource(channel, true /* skip "on channel" check - we already know that we're on channel */); } return(_duceResource.GetHandle(channel)); }
internal override DUCE.ResourceHandle AddRefOnChannelCore(DUCE.Channel channel) { if (_duceResource.CreateOrAddRefOnChannel(this, channel, System.Windows.Media.Composition.DUCE.ResourceType.TYPE_BITMAPCACHEBRUSH)) { Transform vTransform = Transform; if (vTransform != null) { ((DUCE.IResource)vTransform).AddRefOnChannel(channel); } Transform vRelativeTransform = RelativeTransform; if (vRelativeTransform != null) { ((DUCE.IResource)vRelativeTransform).AddRefOnChannel(channel); } BitmapCache vBitmapCache = BitmapCache; if (vBitmapCache != null) { ((DUCE.IResource)vBitmapCache).AddRefOnChannel(channel); } Visual vInternalTarget = InternalTarget; if (vInternalTarget != null) { vInternalTarget.AddRefOnChannelForCyclicBrush(this, channel); } AddRefOnChannelAnimations(channel); UpdateResource(channel, true /* skip "on channel" check - we already know that we're on channel */); } return(_duceResource.GetHandle(channel)); }
// Implement functions used to addref and release resources in codegen that need // to be specialized for Visual which doesn't implement DUCE.IResource internal void AddRefResource(Visual visual, DUCE.Channel channel) { if (visual != null) { visual.AddRefOnChannelForCyclicBrush(this, channel); } }