第二天(11/16/2010)

step 2: abstract

1. RenderCapability 类:

 Dispatcher object and to register for notification of changes.
RenderCapability.Tier 属性Gets a value that indicates the rendering tier for the current thread

 

返回值

呈现层

说明

0x00000000

 0

没有图形硬件加速可用于设备中的应用程序。

0x00010000

 1

这对应于高于或等于 7.0 并且低于 9.0 的 DirectX 版本。

0x00020000

 2

这对应于高于或等于 9.0 的 DirectX 版本。

2. RenderOptions 类:

Provides options for controlling the rendering behavior of objects.
RenderOptions.ProcessRenderMode 属性Specifies the render mode preference for the current process.
 说明:

如果改变软件呈现首选项,您可以避免很多在 WPF 应用程序中出现的并由外部问题引发的呈现问题。

此外,您可能希望在应用程序运行时启用用户设置。

软件呈现的优先顺序为:

  1. DisableHWAcceleration 注册表项
  2. ProcessRenderMode
  3. RenderMode(每个目标)
    该系统的其他部分可能会重写此首选项,并强制系统使用软件呈现。

3. HwndTarget 类:

表示到支持可视化撰写的窗口句柄的绑定
HwndTarget.RenderMode 属性:获取或设置由此 .Default

例:

HwndSource hwndSource = PresentationSource.FromVisual(visual) as System.Windows.Interop.HwndSource; 
HwndTarget hwndTarget = hwndSource.CompositionTarget; 
hwndTarget
.RenderMode = renderMode;

 
 总结:
  •  可以使用三种方式改变rendering方式,他们的顺序为
  1. DisableHWAcceleration 注册表项
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration,0为启用硬件加速,1为禁止硬件加速
  2. ProcessRenderMode (静态属性,对应每个进程)
    RenderOptions.ProcessRenderMode = RenderMode.Default;
    RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
  3. renderMode;
  • RenderCapability.Tier只指示当前的机器具有多大的能力实现硬件加速,它在当前现实的内容改变显示器现实,或者从这个显示器拖动到另外一个显示器现实的时候会改变
    RenderCapability.TierChanged事件会在RenderCapability.Tier改变时触发

相关文章: