有什么函数能替代SetPixel?

我在c++上用SetPixel做了一个程序:
先声明一个三维数组screen[x][y][3]=0,并用这个数组和SetPixel做了一个在控制台上输出数组对应颜色的程序。但SetPixel效率太低,我想做到像视频一样一帧一帧播放的效果
求解决方案!

用图形库OpenGL 或 DirectX来实现吧。
SetPixe函数用的是软件渲染,效率比较低。

示例:

#include <GL/glew.h>
#include <GL/freeglut.h>

int screen[800][600][3] = {}; // 三维数组,保存每个像素的颜色值

void display()
{
    glClear(GL_COLOR_BUFFER_BIT); // 清空窗口

    glBegin(GL_POINTS); // 开始绘制点

    for (int x = 0; x < 800; x++)
    {
        for (int y = 0; y < 600; y++)
        {
            glColor3ub(screen[x][y][0], screen[x][y][1], screen[x][y][2]); // 设置点的颜色
            glVertex2i(x, y); // 设置点的坐标
        }
    }

    glEnd(); // 结束绘制点

    glFlush(); // 刷新窗口
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv); // 初始化OpenGL库和窗口系统

    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 设置窗口显示模式

    glutInitWindowSize(800, 600); // 设置窗口大小

    glutCreateWindow("My Screen"); // 创建窗口

    glMatrixMode(GL_PROJECTION); // 设置投影矩阵
    glLoadIdentity();
    glOrtho(0, 800, 0, 600, -1, 1);

    glMatrixMode(GL_MODELVIEW); // 设置模型视图矩阵
    glLoadIdentity();

    glutDisplayFunc(display); // 注册窗口显示回调函数

    glutMainLoop(); // 进入事件循环

    return 0;
}

 
如果答案对您有所帮助,望采纳。

视频那个是视频加速的,用的是Direct2D API

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^