我是使用SDL2引擎的C++。
我不明白为什么用宽度为10000的线条绘制比循环10000次并绘制构成线条的所有点要快。
绘制一条线:
SDL_RenderDrawLine(Renderer, 0, 100, 10000, 100);
绘制10000个点:
for(unsigned k=0; k<10000; k++) {
SDL_RenderDrawPoint(Renderer, 0+k, 100);
}
为什么绘制所有点会影响程序性能? 我认为draw_line函数也是这样做的...
我想知道为什么会这样,因为我正在尝试创建一些关于着色器的函数...
SDL_RenderDrawPoints
(末尾带有s
)。我无法回答您的问题,因为我不知道它为什么会变慢,但我的假设是在每次绘制调用的开头和/或结尾发生了一些非常昂贵的操作。 - Garrett GutierrezSDL_RenderDrawPoints
来完全避免。 - Garrett Gutierrez