Mac上的SetPixel等价物?

时间:2015-01-15 19:48:56

标签: c macos pixels

我目前正在编写一个软件渲染器,在我开始在Windows上工作后,我开始考虑将其移植到Mac上。

我的问题是:与Win32 GDI SetPixel功能相同的是什么? 我需要做的就是在(x,y)处绘制一个像素。

我是mac开发的新手,我发现的最接近的答案就是使用一个人们可以使用的OpenGL纹理。但是,如果我必须使用OpenGL,这种方式会破坏软件渲染......

甚至可以在o​​sx中​​绘制单个像素吗?

1 个答案:

答案 0 :(得分:2)

简短回答

只需使用LibSDL(最好是2.0版)。

答案很长

无论如何,您必须将像素数据从系统内存中提取到图形内存中。一种方法是使用OpenGL。您可以将OpenGL视为一种花哨的API,它可以将数据从系统内存推送到图形内存。由于这正是您想要做的,因此使用OpenGL是有意义的。

  

但是,如果我必须使用OpenGL,这种方式会破坏软件渲染......

无论您喜欢与否,显卡都会在屏幕上合成像素,因此您不会因为避免使用OpenGL而获得任何特定的便携性优势。回到90年代你可以得到一个指向帧缓冲区的指针并在那里推动像素,但那些日子已经过去了。

LibSDL很不错,因为它为您提供了一个API,可以将像素推送到缓冲区,然后LibSDL负责将缓冲区放在屏幕上。

无论如何,

SetPixel()非常慢,所以你也应该在Windows上使用LibSDL。