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