问题标签 [win2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
777 浏览

c# - 防止清除 Win2D 动画画布

我想保留最后绘制的帧以在其上CanvasAnimatedControl绘制。
是否有内置功能可以做到这一点,或者我必须使用双缓冲。

我想用win2d实现这个。

0 投票
1 回答
422 浏览

c++ - 如何通过 Win2d 使用顶点着色器

我已经阅读并查看了很多有关 Win2D 的信息,发现我可以使用自定义像素和顶点着色器

我找到了如何创建自定义像素着色器资源

但我找不到如何通过 Win2D 创建顶点着色器资源。

提前致谢

0 投票
2 回答
437 浏览

c# - 从 Windows.UI.Color 转换为 System.Numerics.Vector4 的正确快速方法

我应该如何从 Windows.UI.Color 转换为 System.Numerics.Vector4?

Colors.White应该是Vector4.One,但对于其他颜色?我需要这个,因为 Win2D 的方法CanvasSpriteBatch.DrawFromSpritesheet接受 Vector4(色调)作为颜色参数。

我认为该功能可能是:

0 投票
2 回答
365 浏览

c# - CanvasSpriteBatch、Begin/End 方法用相同的 SpriteBatch 绘制大量精灵

我编写了一个简单的类来管理位图的绘制。

这是实现的好方法吗Begin()-End()从不同对象绘制多个精灵的方法(如在 XNA 的 omonime 方法中)?

我知道这很简单,但这只是出于“爱好”的目的。

如果您不想为每个绘制的实体创建一个新的 SpriteBatch 对象,我认为这种方法是一种改进,例如当您以这种方式绘制对象时:

0 投票
1 回答
337 浏览

c# - Win2D梯形校正

我正在尝试使用 Win2D/C# 使用投影仪投影图像,我需要使用 Win2D 效果来进行梯形校正(预变形图像)作为最后一步。

基本上我正在绘制一个矩形,然后在渲染之前尝试使用 Transform3DEffect 对其进行变形。我不知道使用什么矩阵转换组合来让它工作。做一个完整的相机投影似乎有点过头了,因为我只需要在一个方向上变形(见下图)。我应该使用什么转换?

在此处输入图像描述

0 投票
1 回答
819 浏览

c# - 为什么这个简单的 C# UWP Win2D 程序偶尔渲染图片失败

嗨,我的第一篇文章,所以请温柔:)

我编写了这个简单的 C# UWP Win2D 程序,它有时会随机无法在屏幕上渲染图像。该程序在大约 90% 的时间内运行没有问题,并且它应该渲染图像,但奇怪的是,它时不时地无法渲染它。

当它失败时,它仍然将画布清除为正确的颜色,但它不会渲染任何其他内容。该程序似乎运行正常,但是当我在 draw 方法或 update 方法上放置一个断点时,不会发生中断。

'Break all' 确实破坏了程序,但它告诉我“您的应用程序已进入中断状态,但没有代码可显示,因为所有线程都在执行外部代码(通常是系统或框架代码)”

我希望这能解释我目前面临的情况,我已经包含了导致这个问题的代码,希望比我更有知识的人可以帮助我找到补救措施。

这是我的 XAML 代码...

这是背后的 C# 代码...

提前感谢您提供的任何帮助,如果需要更多信息,请告诉我。

编辑 1.) 我试图通过删除来简化问题

args.TrackAsyncAction(Canvas_CreateResourcesAsync(sender).AsAsyncAction());

async Task Canvas_CreateResourcesAsync(CanvasAnimatedControl sender) { bitmap1 = await CanvasBitmap.LoadAsync(sender, "Assets/Images/testimage.png"); }

并更换

args.DrawingSession.DrawImage(bitmap1, 256, 256);

args.DrawingSession.DrawCircle(256, 256, 128, Colors.Black, 16);

这似乎可以防止问题发生,所以我只能假设这是我正在使用的异步模式的问题。

0 投票
1 回答
505 浏览

memory-leaks - Application Insights 在 Win2D 游戏中导致不必要的 GC

所以我正在开发一个 Win2D 游戏,并注意到偶尔会跳过一些帧。我以为是 GC,所以我拍了几张内存快照来看看发生了什么。在解决了我的部分问题并在游戏开始时分配了所有内存后,我注意到在游戏过程中仍在创建大量Task<IReadOnlyList<Windows.Storage.StorageFile>>对象。这也发生在一个空的通用应用程序项目中,环顾四周后,我发现默认情况下启用了 Application Insights 并导致了这一切。

我对 Application Insights 了解不多,但它似乎很不错。所以我的问题是:我是否仍然可以使用 Application Insights 但阻止它创建所有这些任务对象并访问文件系统?

0 投票
2 回答
1087 浏览

c# - 如何使用 Win2D 模拟 DeviceLost 事件?

我有CanvasControl一个 UWP 应用程序,我注意到当我将 Surface 单独放置一段时间并自动进入睡眠状态时,CanvasControl恢复后不再工作。先前绘制的位图现在是空白的。

我尝试在 Visual Studio 2015 中模拟挂起/恢复,但这似乎不会导致问题。它恢复正常。

我感觉它与CanvasDevice.DeviceLost事件有关,尽管我通过事件来管理它,但我CanvasControl.CreateResources找不到轻松测试它的方法。

我尝试了以下方法:

有没有办法以编程方式调用CanvasDevice.DeviceLost事件?我怎么能伪造它?

0 投票
1 回答
537 浏览

c# - Win2D 库:CanvasImageBrush 使用 Canvas 坐标绘制?

G'day伙计们,

我已经开始探索 Windows 10 UAP 应用程序的 Win2D 库。

我正在绘制一个椭圆并使用先前定义的 CanvasImageBrush 填充它。看起来用作填充的坐标是基于绘制椭圆的屏幕坐标。

换句话说,左上角的椭圆看起来不错,但在页面的其他地方,椭圆被黑色填充。我将 ExtendX 和 ExtendY 属性设置为“Wrap”来测试我的假设,并且绘制的椭圆就像暴露了画笔使用的平铺图像一样。

我附上了一个截图来显示行为。用于创建 CanvasImageBrush 的图像是一个包含三角形的 162x148 矩形。显示画笔行为的屏幕截图

由于我无法想象这是预期的行为,我一定是在做一些愚蠢的事情。如果有人能指出什么,我将不胜感激。

这是代码

0 投票
1 回答
906 浏览

xaml - UWP 10 RenderTargetBitmap UWP 10 中 UIElement 的裁剪区域

如何裁剪 RenderTargetBitmap?相当于:

这个问题似乎很简单,但似乎没有真正的方法。以上在语义上总结了我的用例。我想渲染Xaml 树的一部分。这是一个完全合法的用例。

保存到文件,这似乎是最常见的裁剪方式,确实不是一个好的答案。当然,也许有一天我会将裁剪的图像保存到我的媒体库中,但不是今天。