【问题标题】:Windows Embedded XAML Rendering with OpenGL ES使用 OpenGL ES 进行 Windows 嵌入式 XAML 渲染
【发布时间】:2013-05-15 15:25:15
【问题描述】:

我们在 Freescale iMX53 平台上使用 OpenGLES 加速 Silverlight 时存在渲染问题:BSP 带有环境标志 bsp_xrplugin_opengl=1,它将 XAML 渲染引擎配置为使用 OpenGLES。但是,在使用此标志时,我们遇到了一些伪影和图形渲染问题。例如,当拉起 Microsoft (Silverlight) 软输入面板时,大部分窗口,有时甚至是整个窗口,都呈现为纯黑色。

在我们的 Silverlight 应用程序中,我们遇到了图形消失的问题,有时区域会被黑色填充。该应用程序是使用 XAML in Hand 框架用 C# 编写的,但我们还创建了一个 C++ Silverlight 测试应用程序,它产生了相同的结果 - 所以这似乎是一个 Silverlight 渲染问题。

当禁用硬件加速的 XAML 渲染时,图形会正确渲染,但会导致我们不希望的更高 CPU 成本。

我们已经安装了所有最新的 WCE7 更新。任何人都可以提出解决方案,或者提出任何尝试的建议吗?

【问题讨论】:

  • 克里斯,您的问题有任何更新,您解决或找到原因了吗?
  • 您好。是的,有点。我将添加问题的答案。

标签: silverlight opengl-es windows-ce silverlight-3.0 windows-embedded-compact


【解决方案1】:

在与飞思卡尔进行了漫长而艰巨的支持会议后,我们找到了部分解决方案。当我在图像中包含这些环境变量时:

<Entry Name="gsl_tgthal">mx53</Entry>
<Entry Name="egl_platform">z430</Entry>

...在具有 OpenGL 渲染的本机应用程序中使用嵌入式 XAML 时,图形问题消失了。但是,我使用了“部分解决方案”这个短语,因为当在托管应用程序中使用 XAML In The Hand 库中的嵌入式 XAML 时,它并没有解决问题。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我在 Microsoft 源文件之一中发现了该错误,它位于 OpenGL 插件上,因此它发生在所有启用了 OpenGL 的平台上(似乎也发生在 compact 2013 中)。 文件:

    C:\WINCE700\public\COMMON\oak\xamlrenderplugin\opengl\opengldevice.cpp

    在第 537 行:

    MatrixProjection.SetToTranslation(-1.0f*(uWidth/2), -1.0f*(uHeight/2), -1.0f*uWidth);

    替换为:

    MatrixProjection.SetToTranslation(-1.0f*(((float)uWidth)/2), -1.0f*(((float)uHeight)/2), -1.0f*uWidth);

    为 OpenGL 重新编译 xamlrenderplugin,然后制作图像。

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多