Usando libpng para "dividir" uma imagem em segmentos

Estou tentando usar a libpng para dividir uma imagem em diferentes partes. O motivo é que não consigo carregar uma textura maior que 512x512 no hardware em que estou trabalhando atualmente. Eu fiz isso antes com uma mistura de SDL e SDL_Image. Basicamente, usei o argumento srcrect no SDL_BlitSurface para copiar apenas uma parte da imagem que depois converti em uma textura OpenGL. Combine isso com um simples loop horizontalmente e verticalmente, e consegui obter uma matriz de texturas cada uma com no máximo 512x512. Depois, era apenas uma questão de renderizá-los na posição correta.

No momento, eu não tenho o luxo de usar SDL, então imaginei que é possível fazer isso diretamente diretamente via libpng. Com base em algumas pesquisas no Google, acho que é apenas uma questão de usar png_read_rows para ler exatamente quais partes eu preciso. Mas é aí que estou preso, não sei exatamente como fazer isso.

Além disso, se você se pergunta por que eu não apenas divido as imagens em gimp / photoshop / paint ou o que for, é porque eu não as controlo e as estou baixando em tempo de execução.

Obrigado pela ajuda antecipadamente.

questionAnswers(1)

yourAnswerToTheQuestion