D3DImage Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ImageSource Kullanıcı tarafından oluşturulan bir Direct3D yüzeyi görüntüleyen.
public ref class D3DImage : System::Windows::Media::ImageSource
public class D3DImage : System.Windows.Media.ImageSource
type D3DImage = class
inherit ImageSource
Public Class D3DImage
Inherits ImageSource
- Devralma
Örnekler
Aşağıdaki kod örneği, XAML'de nasıl D3DImage bildir yapılacağını gösterir. Varsayılan XAML ad alanlarına dahil edilmediğinden ad alanını eşlemeniz System.Windows.Interop gerekir. Daha fazla bilgi için bkz . İzlenecek yol: WPF'de Direct3D9 İçeriği barındırma.
<Window x:Class="D3DHost.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interop;assembly=PresentationCore"
Title="MainWindow" Height="300" Width="300" Background="PaleGoldenrod">
<Grid>
<Image x:Name="imgelt">
<Image.Source>
<i:D3DImage x:Name="d3dimg" />
</Image.Source>
</Image>
</Grid>
</Window>
Açıklamalar
D3DImage Windows Presentation Foundation (WPF) uygulamasında Direct3D içeriğini barındırmak için sınıfını kullanın.
Lock tarafından görüntülenen Direct3D içeriğini değiştirmek için yöntemini çağırınD3DImage. SetBackBuffer bir Direct3D yüzeyi atamak için D3DImageyöntemini çağırın. Direct3D yüzeyindeki AddDirtyRect güncelleştirmeleri izlemek için yöntemini çağırın. Unlock Değiştirilen alanları görüntülemek için yöntemini çağırın.
D3DImage sınıfı, arka arabellek ve ön arabellekolarak adlandırılan iki görüntüleme arabelleği yönetir. Arka tampon, Direct3D yüzeyinizdir. Arka arabellekte yapılan değişiklikler, donanımda görüntülendiği Unlock yöntemini çağırdığınızda ön arabelleğe kopyalanır. Bazen ön arabellek kullanılamaz duruma gelir. Bu kullanılabilirlik eksikliğine ekran kilitleme, tam ekran özel Direct3D uygulamaları, kullanıcı değiştirme veya diğer sistem etkinlikleri neden olabilir. Bu durum oluştuğunda, WPF uygulamanıza IsFrontBufferAvailableChanged olayı işlenerek bildirim gönderilir. Uygulamanızın ön arabelleğin kullanılamaz duruma gelmesine nasıl yanıt verdiği WPF'nin yazılım işlemeye geri dönmek için etkinleştirilip etkinleştirilmediğine bağlıdır. SetBackBuffer yöntemi, WPF'nin yazılım işlemeye geri dönüp dönmeyeceğini belirleyen bir parametre kabul eden bir aşırı yükleme içerir.
WPF Yazılım İşlemeye Geri Dönmediğinde Kullanılamayan Bir Ön AraBelleğe Yanıt Verme
SetBackBuffer(D3DResourceType, IntPtr) aşırı yüklemesini çağırdığınızda veya SetBackBuffer(D3DResourceType, IntPtr, Boolean) parametresi enableSoftwareFallbackolarak ayarlanmış false aşırı yüklemesini çağırdığınızda, ön tampon kullanılamaz hale geldiğinde ve hiçbir şey görüntülenmediğinde, işleme sistemi arka tampona referansını bırakır. Ön tampon yeniden kullanılabilir olduğunda, render sistemi WPF uygulamanıza bildirmek için IsFrontBufferAvailableChanged olayını tetikler. geçerli bir Direct3D yüzeyiyle işlemeyi yeniden başlatmak üzere IsFrontBufferAvailableChanged olayı için bir olay işleyicisi oluşturabilirsiniz. İşlemeyi yeniden başlatmak için SetBackBufferçağırmalısınız.
WPF Yazılım İşlemeye Geri Döndüğünde Kullanılamayan Bir Ön AraBelleğe Yanıt Verme
SetBackBuffer(D3DResourceType, IntPtr, Boolean) parametresi enableSoftwareFallbackolarak ayarlanmış true aşırı yüklemesini çağırdığınızda, ön arabellek kullanılamaz duruma geldiğinde işleme sistemi arka arabelleğe başvurusunu korur, bu nedenle ön arabellek yeniden kullanılabilir olduğunda SetBackBuffer çağırmaya gerek kalmaz. Kullanıcının cihazının kullanılamadığı durumlar olabilir. Bu gerçekleştiğinde, WPF'nin arka arabelleğe başvuruyu serbest bırakmak için çağrısında SetBackBuffer bulunur. Cihazınızı sıfırlamanız gerekiyorsa, SetBackBuffer parametresi backBufferolarak ayarlanmış null çağırın ve ardından SetBackBuffer geçerli bir Direct3D yüzeyine ayarlanmış backBuffer yeniden çağırın.
Note
Performans, Direct3D yüzeyinin ayarlarına büyük ölçüde bağlıdır. Daha fazla bilgi için bkz. Direct3D9 ve WPF Birlikte Çalışabilirlikiçin Performans Konuları.
Note
D3DImage Parametresini çağırıp SetBackBuffer(D3DResourceType, IntPtr, Boolean) belirtmediğiniz trueenableSoftwareFallback sürece, WPF Uzak Masaüstü bağlantısı gibi bir yazılımda işlendiğinde sınıfı Direct3D içeriği görüntülemez.
Oluşturucular
| Name | Description |
|---|---|
| D3DImage() |
D3DImage sınıfının yeni bir örneğini başlatır. |
| D3DImage(Double, Double) |
Belirtilen görüntü çözünürlüğüne sahip sınıfın D3DImage yeni bir örneğini başlatır. |
Alanlar
| Name | Description |
|---|---|
| IsFrontBufferAvailableProperty |
IsFrontBufferAvailable Bağımlılık özelliğini tanımlar. |
Özellikler
| Name | Description |
|---|---|
| CanFreeze |
Nesnenin değiştirilemez hale getirilip getirilemeyeceğini gösteren bir değer alır. (Devralındığı yer: Freezable) |
| DependencyObjectType |
DependencyObjectType Bu örneğin CLR türünü sarmalayan öğesini alır. (Devralındığı yer: DependencyObject) |
| Dispatcher |
Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini alır. (Devralındığı yer: DispatcherObject) |
| HasAnimatedProperties |
Bir veya daha fazla AnimationClock nesnenin bu nesnenin bağımlılık özelliklerinden herhangi biriyle ilişkili olup olmadığını gösteren bir değer alır. (Devralındığı yer: Animatable) |
| Height |
değerinin yüksekliğini D3DImagealır. |
| IsFrontBufferAvailable |
Ön arabellek olup olmadığını gösteren bir değer alır. |
| IsFrozen |
Nesnenin şu anda değiştirilebilir olup olmadığını gösteren bir değer alır. (Devralındığı yer: Freezable) |
| IsSealed |
Bu örneğin şu anda korumalı (salt okunur) olup olmadığını gösteren bir değer alır. (Devralındığı yer: DependencyObject) |
| Metadata |
Görüntü kaynağıyla ilişkili meta verileri alır. |
| PixelHeight |
piksel cinsinden yüksekliğini D3DImagealır. |
| PixelWidth |
piksel cinsinden genişliğini D3DImagealır. |
| Width |
genişliğini D3DImagealır. |
Yöntemler
| Name | Description |
|---|---|
| AddDirtyRect(Int32Rect) |
Arka arabelleğin değişen alanını belirtir. |
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Belirtilen AnimationClocköğesine bir DependencyProperty uygular. Özellik zaten animasyonluysa, belirtilen HandoffBehavior kullanılır. (Devralındığı yer: Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Belirtilen AnimationClocköğesine bir DependencyProperty uygular. Özelliği zaten animasyonlu ise, SnapshotAndReplace iletim davranışı kullanılır. (Devralındığı yer: Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Belirtilen DependencyPropertyöğesine bir animasyon uygular. Animasyon, sonraki çerçeve işlendiğinde başlatılır. Belirtilen özellik zaten animasyonluysa, belirtilen HandoffBehavior kullanılır. (Devralındığı yer: Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Belirtilen DependencyPropertyöğesine bir animasyon uygular. Animasyon, sonraki çerçeve işlendiğinde başlatılır. Belirtilen özellik zaten animasyonluysa, SnapshotAndReplace iletim davranışı kullanılır. (Devralındığı yer: Animatable) |
| CheckAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler. (Devralındığı yer: DispatcherObject) |
| ClearValue(DependencyProperty) |
Bir özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyProperty tanımlayıcı tarafından belirtilir. (Devralındığı yer: DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik tarafından DependencyPropertyKeybelirtilir. (Devralındığı yer: DependencyObject) |
| Clone() |
Bu nesnenin değiştirilebilir bir kopyasını oluşturarak bu D3DImage nesnenin değerlerinin derin kopyalarını oluşturur. Bağımlılık özelliklerini kopyalarken, bu yöntem kaynak başvurularını ve veri bağlamalarını (artık çözümlenmeyebilir) kopyalar, ancak animasyonları veya geçerli değerlerini kopyalar. |
| CloneCore(Freezable) |
Temel (animasyonsuz) özellik değerlerini kullanarak örneği belirtilenlerin Freezable bir kopyası (derin kopya) yapar. |
| CloneCurrentValue() |
Bu nesnenin değiştirilebilir bir kopyasını oluşturarak bu D3DImage nesnenin geçerli değerlerinin derin kopyalarını oluşturur. Kaynak başvuruları, veri bağlamaları ve animasyonlar kopyalanmaz, ancak geçerli değerleri kopyalanır. |
| CloneCurrentValueCore(Freezable) |
Geçerli özellik değerlerini kullanarak örneği belirtilenlerin Freezable değiştirilebilir bir kopyası (derin kopya) yapar. |
| CoerceValue(DependencyProperty) |
Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, çağrısında CoerceValueCallbackvar olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir DependencyObject işlevi çağırarak gerçekleştirilir. (Devralındığı yer: DependencyObject) |
| CopyBackBuffer() |
öğesinin D3DImageyazılım kopyasını oluşturur. |
| CreateInstance() |
Freezable sınıfının yeni bir örneğini başlatır. (Devralındığı yer: Freezable) |
| CreateInstanceCore() |
Türetilmiş bir sınıfta uygulandığında, türetilmiş sınıfın D3DImage yeni bir örneğini oluşturur. |
| Equals(Object) |
Sağlanan DependencyObject öğesinin geçerli DependencyObjectile eşdeğer olup olmadığını belirler. (Devralındığı yer: DependencyObject) |
| Finalize() |
kaynakları boşaltıp atık toplama tarafından geri kazanılmadan önce D3DImage diğer temizleme işlemlerini gerçekleştirir. |
| Freeze() |
Geçerli nesneyi değiştirilemez hale getirir ve özelliğini olarak IsFrozenayarlar |
| FreezeCore(Boolean) |
D3DImage Değiştirilemez hale getirir veya değiştirilemez hale getirilip getirilemeyeceğini belirler. |
| GetAnimationBaseValue(DependencyProperty) |
Belirtilen DependencyPropertyöğesinin animasyonsuz değerini döndürür. (Devralındığı yer: Animatable) |
| GetAsFrozen() |
temel (animasyonsuz) özellik değerlerini kullanarak donmuş bir kopyasını Freezableoluşturur. Kopya dondurulacağından, dondurulan alt nesneler başvuruyla kopyalanır. (Devralındığı yer: Freezable) |
| GetAsFrozenCore(Freezable) |
Temel (animasyonsuz) özellik değerlerini kullanarak örneği belirtilenlerin Freezable donmuş bir kopyası yapar. |
| GetCurrentValueAsFrozen() |
Geçerli özellik değerlerini kullanarak donmuş Freezable bir kopyasını oluşturur. Kopya dondurulacağından, dondurulan alt nesneler başvuruyla kopyalanır. (Devralındığı yer: Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Geçerli örneği, belirtilen Freezableöğesinin donmuş bir kopyası yapar. Nesne animasyonlu bağımlılık özelliklerine sahipse, geçerli animasyonlu değerleri kopyalanır. |
| GetHashCode() |
Bu DependencyObjectiçin bir karma kodu alır. (Devralındığı yer: DependencyObject) |
| GetLocalValueEnumerator() |
Hangi bağımlılık özelliklerinin bu DependencyObjectüzerinde yerel olarak ayarlı değerlere sahip olduğunu belirlemek için özel bir numaralandırıcı oluşturur. (Devralındığı yer: DependencyObject) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| GetValue(DependencyProperty) |
Bir öğesinin bu örneğindeki bir bağımlılık özelliğinin DependencyObjectgeçerli etkin değerini döndürür. (Devralındığı yer: DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir. (Devralındığı yer: DependencyObject) |
| Lock() |
öğesini kilitler D3DImage ve arka arabellekte işlemleri etkinleştirir. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| OnChanged() |
Geçerli Freezable nesne değiştirildiğinde çağrılır. (Devralındığı yer: Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. (Devralındığı yer: Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Yeni ayarlanmış bir DependencyObjectType veri üyesi için uygun bağlam işaretçilerinin oluşturulmasını sağlar. (Devralındığı yer: Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
türündeki DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs)değişen bağımlılık özelliğine yanıt olarak herhangi Changed bir işleyici çağırmak için uygulamasını Freezable geçersiz kılar. (Devralındığı yer: Freezable) |
| ReadLocalValue(DependencyProperty) |
Varsa, bağımlılık özelliğinin yerel değerini döndürür. (Devralındığı yer: DependencyObject) |
| ReadPreamble() |
Freezable geçerli bir iş parçacığından erişildiğinden emin olur. öğesinin Freezable devralanları, bağımlılık özellikleri olmayan veri üyelerini okuyan herhangi bir API'nin başında bu yöntemi çağırmalıdır. (Devralındığı yer: Freezable) |
| SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar. |
| SetBackBuffer(D3DResourceType, IntPtr) |
Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar. |
| SetCurrentValue(DependencyProperty, Object) |
Bir bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar. (Devralındığı yer: DependencyObject) |
| SetValue(DependencyProperty, Object) |
Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bir bağımlılık özelliğinin yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Bağımlılık özelliğinin tanımlayıcısı tarafından belirtilen salt okunur bağımlılık özelliğinin DependencyPropertyKey yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Serileştirme işlemlerinin sağlanan bağımlılık özelliği için değeri serileştirmesi gerekip gerekmediğini gösteren bir değer döndürür. (Devralındığı yer: DependencyObject) |
| ToString() |
Geçerli kültüre göre bu nesnenin dize gösterimini oluşturur. (Devralındığı yer: ImageSource) |
| ToString(IFormatProvider) |
Geçirilen öğesini temel alarak bu nesnenin dize gösterimini IFormatProvider oluşturur. Sağlayıcı ise |
| TryLock(Duration) |
öğesini kilitlemeye D3DImage çalışır ve belirtilen süreyi bekler. |
| Unlock() |
için kilit sayısını geri alır D3DImage. |
| VerifyAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar. (Devralındığı yer: DispatcherObject) |
| WritePostscript() |
Changed için Freezable olayını oluşturur ve yöntemini çağırırOnChanged(). öğesinden Freezable türetilen sınıflar, bağımlılık özellikleri olarak depolanmayan sınıf üyelerini değiştiren herhangi bir API'nin sonunda bu yöntemi çağırmalıdır. (Devralındığı yer: Freezable) |
| WritePreamble() |
öğesinin Freezable dondurulmadığını ve geçerli bir iş parçacığı bağlamından erişildiğini doğrular. Freezable devralanların, bağımlılık özellikleri olmayan veri üyelerine yazan herhangi bir API'nin başında bu yöntemi çağırması gerekir. (Devralındığı yer: Freezable) |
Ekinlikler
| Name | Description |
|---|---|
| Changed |
veya içerdiği bir nesne değiştirildiğinde Freezable gerçekleşir. (Devralındığı yer: Freezable) |
| IsFrontBufferAvailableChanged |
Özellik değiştiğinde IsFrontBufferAvailable gerçekleşir. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Belirtilen biçimi kullanarak geçerli örneğin değerini biçimlendirin. (Devralındığı yer: ImageSource) |