Откуда вы взяли, что glTexSubImage2D требует указатель на полный буфер текстур?
Из приведенной выше документации мне кажется, что последний параметр - это указатель на буфер, содержащий только ваши новые данные. Другие параметры - это то, что вы используете, чтобы указать, какой объект текстуры обновлять (просто идентификатор OpenGL, указатель на исходные данные не требуется), а также смещение и размер, на который копируются ваши новые данные.
TL; DR: glTexSubImage2D получает указатель на ваши новые данные и делает именно то, что вы думаете, что должно быть в вашем примере:)