Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / RenderCapability.cs / 1 / RenderCapability.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // The RenderCapability class allows clients to query for the current // render tier associated with their Dispatcher and to register for // notification on change. // //----------------------------------------------------------------------------- using System; using System.Diagnostics; namespace System.Windows.Media { ////// RenderCapability - /// The RenderCapability class allows clients to query for the current /// render tier associated with their Dispatcher and to register for /// notification on change. /// public static class RenderCapability { ////// Tier Property - returns the current render tier for the Dispatcher associated /// with the current thread. /// public static int Tier { get { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); return mediaContext.Tier; } } ////// Returns whether the specified PixelShader major/minor version is /// supported by this version of WPF, and whether Effects using the /// specified major/minor version can run on the GPU. /// public static bool IsPixelShaderVersionSupported(short majorVersionRequested, short minorVersionRequested) { bool isSupported = false; // For now, we only support PS 2.0. Can only return true if this is // the version asked for. const short majorVersionRequired = 2; const short minorVersionRequired = 0; if (majorVersionRequested == majorVersionRequired && minorVersionRequested == minorVersionRequired) { // Now actually check. MediaContext mediaContext = MediaContext.CurrentMediaContext; byte majorVersion = (byte)((mediaContext.PixelShaderVersion >> 8) & 0xFF); byte minorVersion = (byte)((mediaContext.PixelShaderVersion >> 0) & 0xFF); // We assume here that a higher version does in fact support the // version we're requiring. if (majorVersion >= majorVersionRequired) { isSupported = true; } else if (majorVersion == majorVersionRequired && minorVersion >= minorVersionRequired) { isSupported = true; } } return isSupported; } ////// Returns whether Effects can be rendered in software on this machine. /// public static bool IsShaderEffectSoftwareRenderingSupported { get { MediaContext mediaContext = MediaContext.CurrentMediaContext; return mediaContext.HasSSE2Support; } } ////// TierChanged event - /// This event is raised when the Tier for a given Dispatcher changes. /// public static event EventHandler TierChanged { add { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); mediaContext.TierChanged += value; } remove { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); mediaContext.TierChanged -= value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // The RenderCapability class allows clients to query for the current // render tier associated with their Dispatcher and to register for // notification on change. // //----------------------------------------------------------------------------- using System; using System.Diagnostics; namespace System.Windows.Media { ////// RenderCapability - /// The RenderCapability class allows clients to query for the current /// render tier associated with their Dispatcher and to register for /// notification on change. /// public static class RenderCapability { ////// Tier Property - returns the current render tier for the Dispatcher associated /// with the current thread. /// public static int Tier { get { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); return mediaContext.Tier; } } ////// Returns whether the specified PixelShader major/minor version is /// supported by this version of WPF, and whether Effects using the /// specified major/minor version can run on the GPU. /// public static bool IsPixelShaderVersionSupported(short majorVersionRequested, short minorVersionRequested) { bool isSupported = false; // For now, we only support PS 2.0. Can only return true if this is // the version asked for. const short majorVersionRequired = 2; const short minorVersionRequired = 0; if (majorVersionRequested == majorVersionRequired && minorVersionRequested == minorVersionRequired) { // Now actually check. MediaContext mediaContext = MediaContext.CurrentMediaContext; byte majorVersion = (byte)((mediaContext.PixelShaderVersion >> 8) & 0xFF); byte minorVersion = (byte)((mediaContext.PixelShaderVersion >> 0) & 0xFF); // We assume here that a higher version does in fact support the // version we're requiring. if (majorVersion >= majorVersionRequired) { isSupported = true; } else if (majorVersion == majorVersionRequired && minorVersion >= minorVersionRequired) { isSupported = true; } } return isSupported; } ////// Returns whether Effects can be rendered in software on this machine. /// public static bool IsShaderEffectSoftwareRenderingSupported { get { MediaContext mediaContext = MediaContext.CurrentMediaContext; return mediaContext.HasSSE2Support; } } ////// TierChanged event - /// This event is raised when the Tier for a given Dispatcher changes. /// public static event EventHandler TierChanged { add { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); mediaContext.TierChanged += value; } remove { MediaContext mediaContext = MediaContext.CurrentMediaContext; // The Dispatcher auto-creates if there is no Dispatcher associated with this // thread, and the MediaContext does the same. Thus, mediaContext should never // be null. Debug.Assert(mediaContext != null); mediaContext.TierChanged -= value; } } } } // 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
- PtsHost.cs
- ImageFormatConverter.cs
- SwitchLevelAttribute.cs
- XmlNamespaceMappingCollection.cs
- _SpnDictionary.cs
- _SpnDictionary.cs
- SchemaImporterExtensionElement.cs
- SspiWrapper.cs
- UIntPtr.cs
- IPipelineRuntime.cs
- BoolLiteral.cs
- ExclusiveTcpListener.cs
- RequestNavigateEventArgs.cs
- CodeDirectoryCompiler.cs
- HtmlInputSubmit.cs
- JsonReaderWriterFactory.cs
- SecurityException.cs
- TextLine.cs
- BinaryObjectInfo.cs
- EnumBuilder.cs
- BuildTopDownAttribute.cs
- TraceEventCache.cs
- CatalogZone.cs
- UniqueEventHelper.cs
- FrugalMap.cs
- PolygonHotSpot.cs
- OleDbEnumerator.cs
- Cloud.cs
- Image.cs
- SimpleMailWebEventProvider.cs
- ConfigurationManagerInternalFactory.cs
- TextureBrush.cs
- HttpResponse.cs
- ClockGroup.cs
- Row.cs
- AttributeXamlType.cs
- ZipIOExtraFieldElement.cs
- Tuple.cs
- SplayTreeNode.cs
- XmlBoundElement.cs
- Help.cs
- SafeNativeMethods.cs
- CodeCastExpression.cs
- RoleBoolean.cs
- CompilationSection.cs
- OracleConnectionFactory.cs
- MetadataSerializer.cs
- AppSettingsSection.cs
- CodeStatementCollection.cs
- WindowPatternIdentifiers.cs
- ReadOnlyMetadataCollection.cs
- RowVisual.cs
- SingleTagSectionHandler.cs
- CacheModeConverter.cs
- ClosureBinding.cs
- DesigntimeLicenseContextSerializer.cs
- SetStoryboardSpeedRatio.cs
- TraceHandler.cs
- DataGridCommandEventArgs.cs
- ZipIOExtraField.cs
- HttpServerVarsCollection.cs
- StrokeNode.cs
- OracleDateTime.cs
- RuntimeWrappedException.cs
- PlainXmlDeserializer.cs
- TraceUtils.cs
- HtmlElement.cs
- RecordsAffectedEventArgs.cs
- PointKeyFrameCollection.cs
- RegexFCD.cs
- AnonymousIdentificationModule.cs
- DesignerActionGlyph.cs
- Token.cs
- UnsafeMethods.cs
- IgnoreFlushAndCloseStream.cs
- DataBinder.cs
- WebCategoryAttribute.cs
- XMLSchema.cs
- ReadOnlyActivityGlyph.cs
- manifestimages.cs
- QilUnary.cs
- NameValueCollection.cs
- PermissionSet.cs
- PackUriHelper.cs
- IEnumerable.cs
- WCFBuildProvider.cs
- MeasureData.cs
- Vertex.cs
- PolicyAssertionCollection.cs
- GrammarBuilderWildcard.cs
- WebPartHeaderCloseVerb.cs
- ServiceModelConfigurationSectionGroup.cs
- NonDualMessageSecurityOverHttp.cs
- HttpAsyncResult.cs
- IgnoreFileBuildProvider.cs
- DataGridViewTopRowAccessibleObject.cs
- RuleConditionDialog.Designer.cs
- SmiContextFactory.cs
- ConfigurationElementCollection.cs
- XmlSchemaAttribute.cs