首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接视频缓存访问

直接视频缓存访问
EN

Stack Overflow用户
提问于 2012-08-06 12:13:10
回答 1查看 1.7K关注 0票数 4

当我谈到使用显卡在屏幕上渲染东西时,如果我理解正确的话,只有三个选项可用。这些是

  1. DirectX (或XNA)
  2. OpenGL
  3. Windows驱动程序工具包和创建图形驱动程序的最小实现

我对DirectX或OpenGL的经验很少,但据我所知,您必须编写一个像素着色器程序,告诉渲染管道如何处理每个像素。这些着色器是在HLSL中编程的。但据我所知,DirectX和OpenGL都无法返回指向内存的指针,以便从OpenGL程序中编写一些byte[]缓冲区并使其呈现。还是我搞错了?

WDK可能是一个更好的选择,因为实现图形驱动程序的绝对最小的实现是可能的,它只会返回指向我可以写入RGB数据的内存的指针。因此,一方面,我可以摆脱DirectX或OpenGL提供的所有抽象(而且我不需要这些抽象),但另一方面,驱动程序开发的复杂性并不完全是一种节省时间的方法。

此外,根据我在搜索更多这方面的信息,在以前的DOS中有一个地址0B00或类似的地址,允许开发人员直接绘制到屏幕缓冲区上。当然了,我想它已经不再可用了,但出于兼容性的考虑,我仍然保留了这个内存空间。有可能以某种方式利用它吗?

从C#访问视频内存的最简单方法是什么,这样我就可以直接写到屏幕上了?DirectX或OpenGL是否提供了这样的功能,从而使我能够直接复制和数组某个地方的字节并将其呈现出来?

EN

回答 1

Stack Overflow用户

发布于 2012-08-06 12:35:22

通过使用OpenGL或Direct3D的内置纹理呈现功能,您可以将像素数据从客户端内存复制到服务器端内存,然后让它在屏幕上呈现纹理。

注意:对于客户端内存,我指的是从程序中访问的内存(在CPU和RAM中),对于服务器端的内存,我指的是显卡上的内存。这和网络无关

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11828052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档