当我使用视频卡在屏幕上渲染内容时,如果我理解正确的话,只有三个选项可用。这些是
我对DirectX或OpenGL的经验很少,但据我所知,你必须编写一个像素着色器程序,告诉渲染管道如何处理每个像素。这些着色器在HLSL中编程。但据我所知,DirectX和OpenGL都无法返回指向内存的指针,我可以从我的C#程序中编写一些byte[]
缓冲区并将其渲染。或者我错了?
另外,根据我在搜索更多相关信息时发现的信息,在DOS的旧时代,有一个地址0B00或类似的地方,允许开发人员直接绘制到屏幕缓冲区。它已经消失了,我想不再可用了,但我已经阅读了兼容性原因这个内存空间仍然保留。有可能以某种方式利用它吗?
从C#访问视频内存的最简单方法是什么,以便我可以直接在屏幕上书写? DirectX或OpenGL是否提供了这样的功能,这使我能够直接复制某处的字节数组并将其呈现?
答案 0 :(得分:0)
通过使用OpenGL或Direct3D的内置纹理渲染功能,您可以将像素数据从客户端内存复制到服务器端内存,然后让它在屏幕上渲染纹理。
注意:对于客户端内存,我指的是程序可访问的内存(在CPU和RAM中),而服务器端内存则指的是显卡上的内存。这与网络无关