Tive umas idéias de coisas que podem melhorar a performance do Horus Eye.
- Ao invés de criar uma textura para a imagem inteira, criar uma textura cada frame.
Vantagens:
- Mais improvável de superar o tamanho máximo de uma textura.
- Ao mover a textura para a memória de video (glBindTexture), uma quantia menor de dados tem que ser transferida assim como uma quantia menor de memória de video é utilizada.
- Evita fazer as contas para localizar a posição do frame desejado.
- Simplifica o funcionamento do DrawTo da classe Image.
Desvantagens:
- Aumenta o número de texturas.
- Impossibilita que o frame_size seja alterado.
- Requer que o frame_size seja especificado quando carrega a imagem.
Sobre as desvantagens, eu não sei se a primeira é ruim. A segunda é algo que ja deveria ser desde o começo e a terceira é uma das coisas planejadas quando for implementado o “Image Descriptor” (ou outro nome, não lembro bem, perguntem ao Wilson).
- Ouch, já esqueci…
Mas bem, isso é algo que eu suspeito que seja benéfico (em particular pelo que li de como o glBindTexture funciona), mas talvez não esteja correto.