A parte de lo de los ; que te comenta CalgaryCorpus, revisa tu manual de gl:
Código C:
Ver originalvoid glViewport(
GLint x,
GLint y,
GLsizei width,
GLsizei height
);
Compara la definicion con tu llamada a la funcion:
Código C:
Ver originalglViewport (0.0, (GLint)ancho, (Glint)alto);
Necesitas 4 enteros, pero tu le envias un decimal y dos enteros. De todas formas ni en GLint ni el GLsizei no tienes que castearlos porque ya son un typedef de int
Saludos
vosk