在win32中绘制像素的最快方法是啥
Posted
技术标签:
【中文标题】在win32中绘制像素的最快方法是啥【英文标题】:what is the fastest way to draw pixel in win32在win32中绘制像素的最快方法是什么 【发布时间】:2013-04-17 13:51:18 【问题描述】:我正在编写一个简单的软件渲染器, 加载 3d 模型,处理顶点,光栅化,纹理,照明, 所有的事情,都完成了。 我使用 SDL(不使用 OpenGL 模式)在其 SDL_Surface 上绘制像素, 并调用 SDL_Flip,因此出现一帧。
由于某种原因,我现在不想使用 SDL, 我只需要一个双缓冲区来绘制像素。
我知道有办法做到这一点, OpenGL、Direct3D、gdi、 也许他们对于这个项目来说太“先进”了, 在 win32 上将像素绘制到后台缓冲区的直接(或最快)方法是什么?
【问题讨论】:
【参考方案1】:我建议为此使用图形 API(OpenGL 或 Direct3D),但 GDI 将是最简单的选择。您可以使用CreateDIBSection
函数创建一个DIB(设备独立位图),该函数返回一个指向位图内存的指针。然后,您可以随意修改位图的像素并将其绘制到窗口的客户区。请参阅 Charles Petzold 的 Programming Windows(第 5 期)第 15 章,了解源代码和该技术的解释。
【讨论】:
在这种情况下,您需要使用 OpenGL 或 DirectX。 DirectX 对您来说可能更容易上手,但我个人更喜欢 OpenGL。以上是关于在win32中绘制像素的最快方法是啥的主要内容,如果未能解决你的问题,请参考以下文章