gpt4 book ai didi

c# - 银光 + 位图缓存 : can't get it to work

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:46 24 4
gpt4 key购买 nike

我正在优化一个使用大量图像(GIS 样式、显示平铺图像、缩放/平移/等)的 silverlight 应用程序,并且我正在考虑使用位图缓存功能,它应该将一堆东西卸载到显卡。

但是,我似乎无法让它工作。我的主机页面包含正确的参数(我认为?):

    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="EnableCacheVisualization" value="true" />
<param name="EnableGPUAcceleration" value="true" />
<param name="EnableFramerateCounter" value="true" />
<param name="source" value="ClientBin/BitmapCaching.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="5.0.61118.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>

我的 xaml 也应该启用缓存:

<UserControl x:Class="BitmapCaching.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White" CacheMode="BitmapCache">
<Rectangle x:Name="img" Width="200" Height="200" Stroke="Black">
<Rectangle.Fill>
<ImageBrush ImageSource="/BitmapCaching;component/download.jpg" />
</Rectangle.Fill>
<Rectangle.RenderTransform>
<RotateTransform />
</Rectangle.RenderTransform>
</Rectangle>
<Button Content="Scale" Height="40" Width="100" Click="Button_Click" />
</Grid>
</UserControl>

(是的,我知道将缓存模式放在根元素上并不明智)

但是,当我启动该应用程序时,完整的应用程序显示为红色覆盖层。这应该表示没有缓存任何内容。

我听说您的 GFX 卡需要一个最新的驱动程序,但这应该没问题。这台机器有一个 ATI Radeon HD5450 视频卡和最新的驱动程序。我无法想象这还不够?

我被难住了。如果有人知道如何解决这个问题,请不要让我发疯!

最佳答案

我相信微软搞砸了这个属性的文档。

文档指出,如果未加速,则会显示色调,如果加速,则会显示无色。这是真的,但对于不同的属性:enableRedrawRegions!

此属性类似于 EnableCacheVisualization,但它会在每次重绘时更改颜色。因此,如果您打开 enableRedrawRegions,您将在重绘发生时看到它们。我发现这更容易可视化正在发生的重绘。

通过打开/关闭 GPU 加速,您将看到在打开 GPU 的情况下,不会重绘由 cpu(由 gpu 完成)动画对象。关闭它,您会看到许多重绘。

然后关闭 enableRedrawRegions 并打开 EnableCacheVisualization。您会看到关闭 GPU 加速后,一切看起来都很正常。打开它,一切看起来都是彩色的。这意味着彩色确实意味着加速,与文档中的相反。

一个很好的测试项目来自这个博客:http://andybeaulieu.com/Home/tabid/67/EntryID/193/Default.aspx .它显示了一个受益于 CPU 加速的旋转手机,通过切换属性,您可以看到 GPU 正在发生什么。

格雷格

关于c# - 银光 + 位图缓存 : can't get it to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com