我正在编写一个包装 DirectX 9 并提供简化接口来执行 2D 像素级绘图的 C# 控件。.NET 要求我将此代码包装在一个不安全的代码块中,并使用允许不安全代码选项进行编译。
我锁定了整个表面,然后返回一个指向锁定的内存区域的指针。然后我可以使用“简单”指针算法直接写入像素数据。我对此进行了性能测试,发现与我所知道的其他“安全”方法相比,速度有了很大提高。
这是在 C# .NET 应用程序中操作单个像素的最快方法吗?有没有更好、更安全的方法?如果有一种同样快速的方法不需要指针操作,那么我更喜欢使用它。
(我知道这是 2008 年,我们都应该使用 DirectX 3D、OpenGL等,但是这个控件专门用于 2D 像素渲染,根本不需要 3D 渲染。)