SDL可以呈现多少图像是否合理限制?

时间:2014-12-25 22:18:20

标签: c++ memory sdl sdl-2

我正在使用SDL创建一个粒子模拟器,并且我正在从动态数组/向量渲染rects。当模拟器达到500个粒子时,我开始弹出向量中的粒子。在500个粒子处,使用的内存为16 MB。然而,SDL在尝试渲染所有500个粒子时的时间最差,即使它们的长度和宽度为1个像素。帧速率从200个粒子的60 fps到500的10 fps。

如何减轻RenderCopy的税?这是一个片段:

for (int i = 0; i < DynamicParticles.size(); i++)
{
  //make particles fall 1 pixel each frame
  DynamicParticles.at(i).Advance();



  SDL_RenderCopy(Main_Renderer,
                 DynamicParticles.at(i).particle_texture,
                 NULL, &DynamicParticles.at(i).location);
}

此处DynamicParticles是一个持有class Particles的向量。当存在500个项目时,此类占用大约15 MB,而RenderCopy仅接受纹理成员和dstrect成员。

enter image description here

0 个答案:

没有答案