SDL/OpenGL little weird "lags" when screen moves

Hi, I’m writing a little simple game and I’ve got a problem with smooth movement and I really don’t know how to solve it. I don’t even know if it can look better than now. Here is a link to video presenting how does it look right now(it’s 150mb, but it has to be 60fps to see the problem): https://mega.nz/#!jN9yEB6D!VWsdFDiyisFp6c_kb2_MdQVVMXp8ggBm-xweJmF7WCE
If you look closely you might see sometimes a little… I don’t know… “vibrating”, “lags”? When I’m running that from visual(debug mode) it’s more laggy but I recorded just exe file.

I’m using VSync in my code(I guess :D) and it looks something like that:

int main(int agrc, char* args[])
{
	//init everything
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
	//some not important declarations and definitions
	SDL_Window *window = SDL_CreateWindow("game", 50, 50, win_size.x, win_size.y, SDL_WINDOW_OPENGL);
	SDL_GLContext context = SDL_GL_CreateContext(window);
	SDL_GL_SetSwapInterval(1);

	glViewport(win_pos.x, win_pos.y, win_size.x, win_size.y);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glDisable(GL_DEPTH_TEST);
	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	//a little more declarations and definitions

	while (run)
	{
		while (SDL_PollEvent(&event))
		{
			//input, not so important
		}
		//logic, speed=5(pixels)
		if (moveUp && win_pos.y > 0)
			win_pos.y -= speed;
		if (moveDown && win_pos.y < map_height - win_size.y)
			win_pos.y += speed;
		if (moveLeft && win_pos.x > 0)
			win_pos.x -= speed;
		if (moveRight && win_pos.x < map_width - win_size.x)
			win_pos.x += speed;

		//rendering
		glClear(GL_COLOR_BUFFER_BIT);
		glPushMatrix();
		glOrtho(win_pos.x, win_size.x + win_pos.x, win_size.y + win_pos.y, win_pos.y, -1, 1);
		glTranslatef(win_pos.x, win_pos.y, 0.0f);
		map.draw(win_pos.x, win_pos.y, win_size.x, win_size.y); //drawing function
		glPopMatrix();

		SDL_GL_SwapWindow(window);
	}
	//quit
}
//and a drawing code(for one tile, because map is tile based):
void Tile::draw(int x, int y)
{
	pos.x = x;
	pos.y = y;
	glColor4ub(255, 255, 255, 255);
	glEnable(GL_TEXTURE_2D);
	switch (type)
	{
		case GROUND:
			glBindTexture(GL_TEXTURE_2D, ground_texture);
			break;
		case ROOM:
			glBindTexture(GL_TEXTURE_2D, room_texture);
			break;
	}
	glBegin(GL_QUADS);
	glTexCoord2d(0, 0); glVertex2i(x, y);
	glTexCoord2d(1, 0); glVertex2i(x + size.x, y);
	glTexCoord2d(1, 1); glVertex2i(x + size.x, y + size.y);
	glTexCoord2d(0, 1); glVertex2i(x, y + size.y);
	glEnd();
	glDisable(GL_TEXTURE_2D);
}