0

我正在编写一个简单的软件渲染器,加载 3d 模型,处理顶点,光栅化,纹理,照明,所有这些都完成了。我使用 SDL(不使用 OpenGL 模式)在其 SDL_Surface 上绘制像素,并调用 SDL_Flip,因此出现一帧。

出于某种原因,现在我不想使用 SDL,我只需要一个双缓冲区来绘制像素。

我知道有办法做到这一点,OpenGL,Direct3D,gdi,也许它们对于这个项目来说太“先进”了,在 win32 上将像素绘制到后缓冲区的直接(或最快)方法是什么?

4

1 回答 1

4

我建议为此使用图形 API(OpenGL 或 Direct3D),但 GDI 将是最简单的选择。CreateDIBSection您可以使用返回指向位图内存的指针的函数创建 DIB(设备独立位图) 。然后,您可以随意修改位图的像素并将其绘制到窗口的客户区。有关该技术的源代码和解释,请参阅 Charles Petzold的Programming Windows (5th)第 15 章。

于 2013-04-17T14:39:20.840 回答