C# 我可以改变屏幕上像素的颜色吗?
我有一个画图程序,我想在你点击时改变一个特定的像素。我该怎么做C# 我可以改变屏幕上像素的颜色吗?,c#,xna,C#,Xna,我有一个画图程序,我想在你点击时改变一个特定的像素。我该怎么做 我知道我可以创建背景图像的颜色[],但我需要它在屏幕更改时快速更新对于C#/XNA,您可以在CPU内存中创建动态纹理缓冲区和位图图像,每当进行更改时,您都可以将其复制到GPU动态缓冲区。。。bitmap类具有处理像素的方法,因此您真正需要解决的唯一部分是如何映射GPU内存并将位图复制到纹理缓冲区。这个复制操作相当快。。我们使用类似的技术让我们的HTML HUD显示在游戏引擎中(不幸的是,不是基于XNA的),即使每帧都有更新,我们仍然
我知道我可以创建背景图像的颜色[],但我需要它在屏幕更改时快速更新对于C#/XNA,您可以在CPU内存中创建动态纹理缓冲区和位图图像,每当进行更改时,您都可以将其复制到GPU动态缓冲区。。。bitmap类具有处理像素的方法,因此您真正需要解决的唯一部分是如何映射GPU内存并将位图复制到纹理缓冲区。这个复制操作相当快。。我们使用类似的技术让我们的HTML HUD显示在游戏引擎中(不幸的是,不是基于XNA的),即使每帧都有更新,我们仍然超过了60帧。有趣的是,我们投了反对票,没有对原因发表评论。。嗯,我猜是因为选民认为你的答案太抽象了;使用非XNA术语;没有任何实际代码。它也有一个非XNA血统也没有帮助。最后,由
CPU
更新一个合理大小的缓冲区,只发送到GPU每一帧
是低效的。StackOverflow不是用来请求代码的。它是用来回答问题的。差不多没什么。如果答案包括代码,可能是因为拥有代码是有意义的,但这不是一个要求。长话短说,OP的要求不能只用XNA技术来完成,而@Ascendion所说的是他将要得到的最接近的。我当然包括了足够多的关键术语,OP可以通过谷歌搜索实现我所描述的示例。。。至于缓冲区更新率,我描述了什么是可能的,像素编辑应用程序的更新频率可能会比这少得多,除非用户使用画笔绘制,在这种情况下,每帧更新是非常可能的。它可能效率不高,但实际上没有太多替代方法将CPU上的动态位图放入GPU上的纹理缓冲区。我注意到我的HUD代码的非XNA血统,因为我已经多年没有使用XNA了。。。但我正在使用DirectX,这是相同的底层技术,我知道XNA在某种程度上支持动态纹理更新。我需要更多地了解您的程序目前正在做什么。