最近学习SDL2中用到了垂直同步这一技术,实现动画的处理,通过百科可知,垂直同步又称场同步,场信号一般是50Hz,或者60Hz,从CRT显示器的显示原理来看,单个像素组成了水平扫描线,水平扫描线在垂直方向的堆积形成了完整的画面,电脑中图象是通过显卡来显示的,比较高端的显卡生成图像更快些,垂直同步这一技术是让显卡生成图象时收到垂直同步信号的制约,使得画面更流畅些。如果没有垂直同步,图像速度就会提升,但是也会导致画面不流畅,出现跳帧现象,画面有撕裂现象,一般都是建议开启垂直同步,使得画面看起来狠舒适,
下面代码是加上垂直同步的代码
//Using SDL and standard IO
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
#define NUMBER_CLIPS 16
bool init();
bool loadMedia();
void close();
SDL_Texture* loadTexture(char* path);
SDL_Window* gWindow = NULL;
SDL_Texture* gSpriteSheetText