Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / Effects / BitmapEffectDrawing.cs / 1 / BitmapEffectDrawing.cs
using System; using System.Diagnostics; using System.Collections.Generic; using MS.Internal; using MS.Internal.Collections; using MS.Internal.PresentationCore; using MS.Utility; using System.Windows; using System.Windows.Media; using System.Windows.Media.Composition; namespace System.Windows.Media.Effects { ////// This class is used by Bitmap Effects to marshal the world transforms /// and the corresponding realizations (bitmaps) for each world transform /// internal sealed partial class BitmapEffectDrawing : Drawing { #region Constructors ////// Default BitmapEffectDrawing constructor. /// Constructs an object with all properties set to their default values /// internal BitmapEffectDrawing() { } #endregion #region Internal methods ////// BitmapEffectDrawing should never have WalkCurrentValue called /// internal override void WalkCurrentValue(DrawingContextWalker ctx) { Debug.Assert(false); } ////// /// internal override void PrecomputeCore() { } ////// Add the transform if it is a new one and mark it for update /// internal override void UpdateRealizations(RealizationContext realizationContext) { Matrix transform = realizationContext.TransformStack.Peek(); if (realizationContext.BaseTransform.IsIdentity == false) { transform *= realizationContext.BaseTransform; } int index = ContainsTransform(transform); if (index == -1) { WorldTransforms.Add(new MatrixTransform(transform)); index = WorldTransforms.Count - 1; } _transformsToKeep.Add(index); _windowClip.Union(realizationContext.WindowClip); } ////// Given the transform, find the index of the corresponding effect drawing /// If there is none, return -1 /// /// ///internal int ContainsTransform(Matrix transform) { int count = Drawings.Count; TransformCollection worldTransforms = WorldTransforms; for (int i = 0; i < count; i++) { Matrix worldTransform = worldTransforms.Internal_GetItem(i).Value; if (worldTransform == transform) { return i; } } return -1; } /// /// Remove all transforms that are not marked to keep. /// If fRemoveDrawings is true, remove the drawings as well /// internal void UpdateTransformAndDrawingLists(bool fRemoveDrawings) { TransformCollection worldTransforms = WorldTransforms; DrawingCollection drawings = Drawings; for (int i = WorldTransforms.Count - 1; i >= 0; i--) { if (!_transformsToKeep.Contains(i)) { worldTransforms.RemoveAt(i); if (fRemoveDrawings) { drawings.RemoveAt(i); } } } _transformsToKeep.Clear(); } ////// Clear both the Drawings and Transform lists /// internal void Clear(DUCE.Channel channel) { TransformCollection vWorldTransforms = WorldTransforms; DrawingCollection vDrawings = Drawings; for (int j = vWorldTransforms.Count - 1; j >= 0; j--) { vWorldTransforms.Internal_GetItem(j).ReleaseOnChannelCore(channel); vDrawings.Internal_GetItem(j).ReleaseOnChannelCore(channel); } vDrawings._collection.Clear(); vWorldTransforms._collection.Clear(); } #endregion Internal methods #region Internal properties internal bool ScheduleForUpdates { get { return _scheduleForUpdates; } set { _scheduleForUpdates = value; } } ////// Gets the window clip /// internal Rect WindowClip { get { return _windowClip; } set { _windowClip = value; } } internal bool IsOnChannel { get { return _duceResource.IsOnAnyChannel; } } #endregion Internal properties #region Private Fields List_transformsToKeep = new List (); bool _scheduleForUpdates = true; Rect _windowClip = Rect.Empty; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Diagnostics; using System.Collections.Generic; using MS.Internal; using MS.Internal.Collections; using MS.Internal.PresentationCore; using MS.Utility; using System.Windows; using System.Windows.Media; using System.Windows.Media.Composition; namespace System.Windows.Media.Effects { /// /// This class is used by Bitmap Effects to marshal the world transforms /// and the corresponding realizations (bitmaps) for each world transform /// internal sealed partial class BitmapEffectDrawing : Drawing { #region Constructors ////// Default BitmapEffectDrawing constructor. /// Constructs an object with all properties set to their default values /// internal BitmapEffectDrawing() { } #endregion #region Internal methods ////// BitmapEffectDrawing should never have WalkCurrentValue called /// internal override void WalkCurrentValue(DrawingContextWalker ctx) { Debug.Assert(false); } ////// /// internal override void PrecomputeCore() { } ////// Add the transform if it is a new one and mark it for update /// internal override void UpdateRealizations(RealizationContext realizationContext) { Matrix transform = realizationContext.TransformStack.Peek(); if (realizationContext.BaseTransform.IsIdentity == false) { transform *= realizationContext.BaseTransform; } int index = ContainsTransform(transform); if (index == -1) { WorldTransforms.Add(new MatrixTransform(transform)); index = WorldTransforms.Count - 1; } _transformsToKeep.Add(index); _windowClip.Union(realizationContext.WindowClip); } ////// Given the transform, find the index of the corresponding effect drawing /// If there is none, return -1 /// /// ///internal int ContainsTransform(Matrix transform) { int count = Drawings.Count; TransformCollection worldTransforms = WorldTransforms; for (int i = 0; i < count; i++) { Matrix worldTransform = worldTransforms.Internal_GetItem(i).Value; if (worldTransform == transform) { return i; } } return -1; } /// /// Remove all transforms that are not marked to keep. /// If fRemoveDrawings is true, remove the drawings as well /// internal void UpdateTransformAndDrawingLists(bool fRemoveDrawings) { TransformCollection worldTransforms = WorldTransforms; DrawingCollection drawings = Drawings; for (int i = WorldTransforms.Count - 1; i >= 0; i--) { if (!_transformsToKeep.Contains(i)) { worldTransforms.RemoveAt(i); if (fRemoveDrawings) { drawings.RemoveAt(i); } } } _transformsToKeep.Clear(); } ////// Clear both the Drawings and Transform lists /// internal void Clear(DUCE.Channel channel) { TransformCollection vWorldTransforms = WorldTransforms; DrawingCollection vDrawings = Drawings; for (int j = vWorldTransforms.Count - 1; j >= 0; j--) { vWorldTransforms.Internal_GetItem(j).ReleaseOnChannelCore(channel); vDrawings.Internal_GetItem(j).ReleaseOnChannelCore(channel); } vDrawings._collection.Clear(); vWorldTransforms._collection.Clear(); } #endregion Internal methods #region Internal properties internal bool ScheduleForUpdates { get { return _scheduleForUpdates; } set { _scheduleForUpdates = value; } } ////// Gets the window clip /// internal Rect WindowClip { get { return _windowClip; } set { _windowClip = value; } } internal bool IsOnChannel { get { return _duceResource.IsOnAnyChannel; } } #endregion Internal properties #region Private Fields List_transformsToKeep = new List (); bool _scheduleForUpdates = true; Rect _windowClip = Rect.Empty; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- cryptoapiTransform.cs
- HMACSHA384.cs
- TableParagraph.cs
- UnsignedPublishLicense.cs
- CDSsyncETWBCLProvider.cs
- sqlmetadatafactory.cs
- ValidationHelper.cs
- TemplateBindingExtensionConverter.cs
- GACMembershipCondition.cs
- ScrollBarRenderer.cs
- ObjectDisposedException.cs
- OutputCacheProfileCollection.cs
- AnnotationComponentChooser.cs
- HtmlHistory.cs
- ScrollEventArgs.cs
- EntityCollection.cs
- TextTreePropertyUndoUnit.cs
- ScriptIgnoreAttribute.cs
- PrintController.cs
- RootBrowserWindowAutomationPeer.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- ProcessingInstructionAction.cs
- DataObject.cs
- FillErrorEventArgs.cs
- ColumnMapCopier.cs
- JsonReaderDelegator.cs
- DateTimeConverter.cs
- BehaviorService.cs
- AuthenticationManager.cs
- ToolStripDropTargetManager.cs
- _UncName.cs
- DocumentViewerBase.cs
- FormConverter.cs
- DataServiceRequestOfT.cs
- ViewCellRelation.cs
- DataServiceSaveChangesEventArgs.cs
- ListMarkerLine.cs
- DataRecord.cs
- SelectionRangeConverter.cs
- TextElementEnumerator.cs
- Helper.cs
- XhtmlBasicPanelAdapter.cs
- WindowsAuthenticationEventArgs.cs
- NameScopePropertyAttribute.cs
- Border.cs
- BookmarkScopeInfo.cs
- NullableFloatMinMaxAggregationOperator.cs
- XamlReader.cs
- SmtpAuthenticationManager.cs
- AttributeUsageAttribute.cs
- VerificationException.cs
- OleDbStruct.cs
- GridViewEditEventArgs.cs
- OletxTransactionHeader.cs
- __ConsoleStream.cs
- StaticTextPointer.cs
- MetadataItemSerializer.cs
- Console.cs
- IndexedEnumerable.cs
- XmlQuerySequence.cs
- VScrollBar.cs
- RuntimeComponentFilter.cs
- PagePropertiesChangingEventArgs.cs
- TemplateControl.cs
- CodeGotoStatement.cs
- FixedSOMLineRanges.cs
- XamlTypeMapperSchemaContext.cs
- SessionStateItemCollection.cs
- BuildProvidersCompiler.cs
- PointAnimationUsingKeyFrames.cs
- StructureChangedEventArgs.cs
- DataTableClearEvent.cs
- PassportAuthenticationModule.cs
- IdentityHolder.cs
- MbpInfo.cs
- AuthenticationException.cs
- XmlHierarchyData.cs
- FixedSOMPage.cs
- DesignerImageAdapter.cs
- CompositionAdorner.cs
- IntranetCredentialPolicy.cs
- DoubleUtil.cs
- FormViewCommandEventArgs.cs
- TabControlAutomationPeer.cs
- TraceListeners.cs
- SByteStorage.cs
- PersonalizationDictionary.cs
- GetMemberBinder.cs
- PerformanceCounter.cs
- StylusPointProperty.cs
- XDeferredAxisSource.cs
- InputLanguageEventArgs.cs
- VarRemapper.cs
- CodeAttachEventStatement.cs
- CollectionsUtil.cs
- HybridDictionary.cs
- CodeCastExpression.cs
- _NTAuthentication.cs
- Facet.cs