我现在正在开发NES模拟器,但是我遇到了如何渲染像素的问题。我使用一个三维数组来保存每个像素的RGB值。对于256 x 224的屏幕大小,数组定义如下:
byte screenData[224][256][3];
例如,
[0][0][0]
保存了像素在屏幕位置[0][0]
处的蓝色值,[0][0][1]
保存了绿色值,[0][0][2]
保存了红色值。当vblank标志变高时,需要渲染屏幕。当SDL开始渲染屏幕时,screenData数组将充满每个像素的RGB值。我找到了一个名为
SDL_CreateRGBSurfaceFrom
的函数,看起来可能适合我想做的事情。然而,我所见过的所有示例都使用一维数组来保存RGB值,而不是三维数组。最好的方法是什么,可以让我渲染我的像素?如果该函数能够以某种方式调整表面大小,那就更好了,这样我就不必使用256 x 224的窗口大小。