Oi Daniel,
Quando compilo e o progama vai mostrar a tela do OpenGL ele trava.
Bem, a unica razão que eu posso imaginar para travar nesse ponte seria tela não conter (uma cópia d)a imagem original.
Por exemplo, se no main:
- no passo 2, a imagem for carregada diretamente em tela e
- o seu programa não fizer mais nada nos passos 3, 4 e 5
então na chamada para myInit no passo 6 cuidará para que a janela com a imagem será criada e exibida. Teste isto.
Além disso o programa imprime algumas mensagens no shell, tais como
Arquivo 'ppm/imagem.ppm' com a imagem foi aberto.
A imagem foi carregada e o arquivo 'ppm/imagem.ppm' foi fechado.
Tecle: 'r' para mostrar uma (r)egiao na tela
'o' para mostrar a imagem (o)riginal na tela
'l' para (l)impar a tela
'g' para (g)ravar a imagem atual em um arquivo
'q' para (q)uit, encerrar o programa.
Clique: em um pixel para alterar a cor
Essa mensagens podem indicar onde o programa explodiu.
O ponto onde ele explode não é necessariamente onde está o erro, mas já é um começo.
Resumindo, pelo comportameto que você descreve, o programa não chegar a mostrar a imagem e travar ai, sugere para mim que há algum em um dos seguintes passos:
/* 3 crie a tela (imagem) em que trabalharemos */
[...]
/* 4 copie a imagem lida para a tela */
[...]
Verifique as funções mallocImagemRGB e copieImagemRGB. Em particular, na função copieImagemRGB, não deixe de copiar os campos height e width da origem para o destino.