所以这是我的代码问题:
我创建了一个显示屏:
displayScreen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE|SDL_DOUBLEBUF);
然后我创建了一个背景:
background = load_image("gliderGameBackground1.png");
// I optimize the image
然后我有一个中间表面:
screen = SDL_CreateRGBSurface(SDL_SWSURFACE|SDL_SRCALPHA, 300, 300, 32,
rmask, gmask, bmask, amask);
然后我应用表面:
apply_surface(0, 0, background, screen);
apply_surface(0, 0, screen, displayScreen);
我有一个中间屏幕的原因是我的程序将在游戏循环中始终如一地制作1920 x 1080表面,然后根据用户需要缩小它,然后显示该表面。我有一个上网本,所以我注意到帧速率下降很快,这显着下降。我打算做colorkey和每像素alpha blitting以及全屏以防万一对标志很重要。
那么我做错了是什么让这个很慢?