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